File tree Expand file tree Collapse file tree 2 files changed +22
-5
lines changed
include/zenkit-capi/world Expand file tree Collapse file tree 2 files changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -19,8 +19,11 @@ typedef struct ZkInternal_WayEdge ZkWayEdge;
1919#endif
2020
2121typedef ZkBool (*ZkWayPointEnumerator)(void * ctx, ZkWayPoint const * point);
22+ typedef ZkBool (*ZkWayEdgeEnumerator)(void * ctx, ZkWayEdge const * edge);
2223
23- ZKC_API ZkWayEdge const * ZkWayNet_getEdges (ZkWayNet const * slf, ZkSize* count);
24+ ZKC_API ZkSize ZkWayNet_getEdgeCount (ZkWayNet const * slf);
25+ ZKC_API ZkWayEdge const * ZkWayNet_getEdge (ZkWayNet const * slf, ZkSize i);
26+ ZKC_API void ZkWayNet_enumerateEdges (ZkWayNet const * slf, ZkWayEdgeEnumerator cb, void * ctx);
2427
2528ZKC_API ZkSize ZkWayNet_getPointCount (ZkWayNet const * slf);
2629ZKC_API ZkWayPoint const * ZkWayNet_getPoint (ZkWayNet const * slf, ZkSize i);
Original file line number Diff line number Diff line change 44
55#include " ../Internal.hh"
66
7- ZkWayEdge const * ZkWayNet_getEdges (ZkWayNet const * slf, ZkSize* count ) {
7+ ZkSize ZkWayNet_getEdgeCount (ZkWayNet const * slf) {
88 ZKC_TRACE_FN ();
9- ZKC_CHECK_NULL (slf, count);
9+ ZKC_CHECK_NULL (slf);
10+ return slf->edges .size ();
11+ }
12+
13+ ZkWayEdge const * ZkWayNet_getEdge (ZkWayNet const * slf, ZkSize i) {
14+ ZKC_TRACE_FN ();
15+ ZKC_CHECK_NULL (slf);
16+ ZKC_CHECK_LEN (slf->edges , i);
17+ return &slf->edges [i];
18+ }
1019
11- *count = slf->edges .size ();
12- return slf->edges .data ();
20+ void ZkWayNet_enumerateEdges (ZkWayNet const * slf, ZkWayEdgeEnumerator cb, void * ctx) {
21+ ZKC_TRACE_FN ();
22+ ZKC_CHECK_NULLV (slf, cb);
23+
24+ for (auto & edge : slf->edges ) {
25+ if (cb (ctx, &edge)) break ;
26+ }
1327}
1428
1529ZkSize ZkWayNet_getPointCount (ZkWayNet const * slf) {
You can’t perform that action at this time.
0 commit comments