diff --git a/DebugUtils/Include/RecastDump.h b/DebugUtils/Include/RecastDump.h index b0e00fe..e61a976 100644 --- a/DebugUtils/Include/RecastDump.h +++ b/DebugUtils/Include/RecastDump.h @@ -37,4 +37,7 @@ bool duReadContourSet(struct rcContourSet& cset, duFileIO* io); bool duDumpCompactHeightfield(struct rcCompactHeightfield& chf, duFileIO* io); bool duReadCompactHeightfield(struct rcCompactHeightfield& chf, duFileIO* io); +void duLogBuildTimes(rcBuildContext* ctx, const int totalTileUsec); + + #endif // RECAST_DUMP_H diff --git a/DebugUtils/Source/RecastDump.cpp b/DebugUtils/Source/RecastDump.cpp index 21211b7..d78123b 100644 --- a/DebugUtils/Source/RecastDump.cpp +++ b/DebugUtils/Source/RecastDump.cpp @@ -398,3 +398,42 @@ bool duReadCompactHeightfield(struct rcCompactHeightfield& chf, duFileIO* io) return true; } + +static void logLine(rcBuildContext* ctx, rcBuilTimeLabel label, const char* name, const float pc) +{ + const int t = ctx->getBuildTime(label); + if (t < 0) return; + ctx->log(RC_LOG_PROGRESS, "%s:\t%.2fms\t(%.1f%%)", name, t/1000.0f, t*pc); +} + +void duLogBuildTimes(rcBuildContext* ctx, const int totalTimeUsec) +{ + const float pc = 100.0f / totalTimeUsec; + + ctx->log(RC_LOG_PROGRESS, "Build Times"); + logLine(ctx, RC_TIME_RASTERIZE_TRIANGLES, "- Rasterize", pc); + logLine(ctx, RC_TIME_BUILD_COMPACTHEIGHFIELD, "- Build Compact", pc); + logLine(ctx, RC_TIME_FILTER_BORDER, "- Filter Border", pc); + logLine(ctx, RC_TIME_FILTER_WALKABLE, "- Filter Walkable", pc); + logLine(ctx, RC_TIME_ERODE_AREA, "- Erode Area", pc); + logLine(ctx, RC_TIME_MEDIAN_AREA, "- Median Area", pc); + logLine(ctx, RC_TIME_MARK_BOX_AREA, "- Mark Box Area", pc); + logLine(ctx, RC_TIME_MARK_CONVEXPOLY_AREA, "- Mark Convex Area", pc); + logLine(ctx, RC_TIME_BUILD_DISTANCEFIELD, "- Build Disntace Field", pc); + logLine(ctx, RC_TIME_BUILD_DISTANCEFIELD_DIST, " - Distance", pc); + logLine(ctx, RC_TIME_BUILD_DISTANCEFIELD_BLUR, " - Blur", pc); + logLine(ctx, RC_TIME_BUILD_REGIONS, "- Build Regions", pc); + logLine(ctx, RC_TIME_BUILD_REGIONS_WATERSHED, " - Watershed", pc); + logLine(ctx, RC_TIME_BUILD_REGIONS_EXPAND, " - Expand", pc); + logLine(ctx, RC_TIME_BUILD_REGIONS_FLOOD, " - Find Basins", pc); + logLine(ctx, RC_TIME_BUILD_REGIONS_FILTER, " - Filter", pc); + logLine(ctx, RC_TIME_BUILD_CONTOURS, "- Build Contours", pc); + logLine(ctx, RC_TIME_BUILD_CONTOURS_TRACE, " - Trace", pc); + logLine(ctx, RC_TIME_BUILD_CONTOURS_SIMPLIFY, " - Simplify", pc); + logLine(ctx, RC_TIME_BUILD_POLYMESH, "- Build Polymesh", pc); + logLine(ctx, RC_TIME_BUILD_POLYMESHDETAIL, "- Build Polymesh Detail", pc); + logLine(ctx, RC_TIME_MERGE_POLYMESH, "- Merge Polymeshes", pc); + logLine(ctx, RC_TIME_MERGE_POLYMESHDETAIL, "- Merge Polymesh Details", pc); + ctx->log(RC_LOG_PROGRESS, "=== TOTAL:\t%.2fms", totalTimeUsec/1000.0f); +} + diff --git a/Detour/Source/DetourNavMeshQuery.cpp b/Detour/Source/DetourNavMeshQuery.cpp index cbf4bf8..e10bf88 100644 --- a/Detour/Source/DetourNavMeshQuery.cpp +++ b/Detour/Source/DetourNavMeshQuery.cpp @@ -871,6 +871,7 @@ dtQueryState dtNavMeshQuery::updateSlicedFindPath(const int maxIter) } } + // Exhausted all nodes, but could not find path. if (m_openList->empty()) m_query.state = DT_QUERY_READY; @@ -880,7 +881,11 @@ dtQueryState dtNavMeshQuery::updateSlicedFindPath(const int maxIter) int dtNavMeshQuery::finalizeSlicedFindPath(dtPolyRef* path, const int maxPathSize) { if (m_query.state != DT_QUERY_READY) + { + // Reset query. + memset(&m_query, 0, sizeof(dtQueryData)); return 0; + } // Reverse the path. dtAssert(m_query.lastBestNode); diff --git a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast index 4536443..c75aaba 100755 Binary files a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast and b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast differ diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index bc321f0..e930b56 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -13,14 +13,13 @@ activeExecutable = 6B8632970F78114600E2684A /* Recast */; activeTarget = 8D1107260486CEB800E47090 /* Recast */; addToTargets = ( - 8D1107260486CEB800E47090 /* Recast */, ); breakpoints = ( 6BBB4C4C115B7BAD00CF791D /* Sample_TileMesh.cpp:279 */, 6B42164711806B2F006C347B /* DetourDebugDraw.cpp:344 */, - 6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1398 */, + 6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1311 */, 6BAF3EB31212906D008CFCDF /* CrowdTool.cpp:774 */, - 6BAF42D6121AF2AC008CFCDF /* NavMeshTesterTool.cpp:149 */, + 6BAF42D6121AF2AC008CFCDF /* NavMeshTesterTool.cpp:148 */, ); codeSenseManager = 6B8632AA0F78115100E2684A /* Code sense */; executables = ( @@ -825,6 +824,494 @@ 6BAF4348121AFD0B008CFCDF /* PBXTextBookmark */ = 6BAF4348121AFD0B008CFCDF /* PBXTextBookmark */; 6BAF4349121AFD0B008CFCDF /* PBXTextBookmark */ = 6BAF4349121AFD0B008CFCDF /* PBXTextBookmark */; 6BAF434F121B00EF008CFCDF /* PBXTextBookmark */ = 6BAF434F121B00EF008CFCDF /* PBXTextBookmark */; + 6BAF4350121B02B2008CFCDF /* PBXTextBookmark */ = 6BAF4350121B02B2008CFCDF /* PBXTextBookmark */; + 6BAF4353121B0D2C008CFCDF /* PBXTextBookmark */ = 6BAF4353121B0D2C008CFCDF /* PBXTextBookmark */; + 6BAF437A121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF437A121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF437B121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF437B121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF437C121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF437C121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF437D121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF437D121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF437E121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF437E121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF437F121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF437F121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4380121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4380121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4381121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4381121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4382121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4382121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4383121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4383121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4384121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4384121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4385121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4385121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4386121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4386121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4387121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4387121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4388121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4388121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4389121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4389121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF438A121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF438A121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF438B121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF438B121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF438C121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF438C121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF438D121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF438D121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF438E121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF438E121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF438F121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF438F121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4390121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4390121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4391121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4391121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4392121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4392121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4393121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4393121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4394121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4394121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4395121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4395121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4396121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4396121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4397121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4397121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4398121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4398121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF4399121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF4399121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF439A121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF439A121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF439B121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF439B121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF439C121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF439C121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF439D121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF439D121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF439E121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF439E121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF439F121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF439F121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43A0121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43A0121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43A1121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43A1121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43A2121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43A2121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43A3121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43A3121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43A4121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43A4121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43A5121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43A5121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43A6121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43A6121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43A7121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43A7121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43A8121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43A8121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43A9121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43A9121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43AA121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43AA121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43AB121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43AB121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43AC121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43AC121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43AD121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43AD121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43AE121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43AE121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43AF121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43AF121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43B0121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43B0121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43B1121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43B1121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43B2121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43B2121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43B3121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43B3121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43B4121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43B4121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43B5121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43B5121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43B6121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43B6121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43B7121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43B7121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43B8121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43B8121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43B9121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43B9121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43BA121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43BA121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43BB121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43BB121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43BC121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43BC121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43BD121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43BD121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43BE121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43BE121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43BF121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43BF121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43C0121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43C0121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43C1121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43C1121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43C2121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43C2121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43C3121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43C3121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43C4121C1F3D008CFCDF /* PBXTextBookmark */ = 6BAF43C4121C1F3D008CFCDF /* PBXTextBookmark */; + 6BAF43CA121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43CA121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43CB121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43CB121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43CC121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43CC121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43CD121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43CD121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43CE121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43CE121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43CF121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43CF121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43D0121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43D0121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43D1121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43D1121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43D2121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43D2121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43D3121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43D3121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43D4121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43D4121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43D5121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43D5121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43D6121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43D6121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43D7121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43D7121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43D8121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43D8121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43D9121C2164008CFCDF /* PBXTextBookmark */ = 6BAF43D9121C2164008CFCDF /* PBXTextBookmark */; + 6BAF43DE121C225B008CFCDF /* PBXTextBookmark */ = 6BAF43DE121C225B008CFCDF /* PBXTextBookmark */; + 6BAF43DF121C225B008CFCDF /* PBXTextBookmark */ = 6BAF43DF121C225B008CFCDF /* PBXTextBookmark */; + 6BAF43E0121C225B008CFCDF /* PBXTextBookmark */ = 6BAF43E0121C225B008CFCDF /* PBXTextBookmark */; + 6BAF43E1121C225B008CFCDF /* PBXTextBookmark */ = 6BAF43E1121C225B008CFCDF /* PBXTextBookmark */; + 6BAF43E2121C225B008CFCDF /* PBXTextBookmark */ = 6BAF43E2121C225B008CFCDF /* PBXTextBookmark */; + 6BAF43E3121C225B008CFCDF /* PBXTextBookmark */ = 6BAF43E3121C225B008CFCDF /* PBXTextBookmark */; + 6BAF43E4121C225B008CFCDF /* PBXTextBookmark */ = 6BAF43E4121C225B008CFCDF /* PBXTextBookmark */; + 6BAF43E5121C225B008CFCDF /* PBXTextBookmark */ = 6BAF43E5121C225B008CFCDF /* PBXTextBookmark */; + 6BAF43E6121C225B008CFCDF /* PBXTextBookmark */ = 6BAF43E6121C225B008CFCDF /* PBXTextBookmark */; + 6BAF43E7121C225B008CFCDF /* PBXTextBookmark */ = 6BAF43E7121C225B008CFCDF /* PBXTextBookmark */; + 6BAF43F8121C241D008CFCDF /* PBXTextBookmark */ = 6BAF43F8121C241D008CFCDF /* PBXTextBookmark */; + 6BAF43F9121C241D008CFCDF /* PBXTextBookmark */ = 6BAF43F9121C241D008CFCDF /* PBXTextBookmark */; + 6BAF43FA121C241D008CFCDF /* PBXTextBookmark */ = 6BAF43FA121C241D008CFCDF /* PBXTextBookmark */; + 6BAF43FB121C241D008CFCDF /* PBXTextBookmark */ = 6BAF43FB121C241D008CFCDF /* PBXTextBookmark */; + 6BAF43FC121C241D008CFCDF /* PBXTextBookmark */ = 6BAF43FC121C241D008CFCDF /* PBXTextBookmark */; + 6BAF43FD121C241D008CFCDF /* PBXTextBookmark */ = 6BAF43FD121C241D008CFCDF /* PBXTextBookmark */; + 6BAF43FE121C241D008CFCDF /* PBXTextBookmark */ = 6BAF43FE121C241D008CFCDF /* PBXTextBookmark */; + 6BAF43FF121C241D008CFCDF /* PBXTextBookmark */ = 6BAF43FF121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4400121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4400121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4401121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4401121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4402121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4402121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4403121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4403121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4404121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4404121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4405121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4405121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4406121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4406121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4407121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4407121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4408121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4408121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4409121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4409121C241D008CFCDF /* PBXTextBookmark */; + 6BAF440A121C241D008CFCDF /* PBXTextBookmark */ = 6BAF440A121C241D008CFCDF /* PBXTextBookmark */; + 6BAF440B121C241D008CFCDF /* PBXTextBookmark */ = 6BAF440B121C241D008CFCDF /* PBXTextBookmark */; + 6BAF440C121C241D008CFCDF /* PBXTextBookmark */ = 6BAF440C121C241D008CFCDF /* PBXTextBookmark */; + 6BAF440D121C241D008CFCDF /* PBXTextBookmark */ = 6BAF440D121C241D008CFCDF /* PBXTextBookmark */; + 6BAF440E121C241D008CFCDF /* PBXTextBookmark */ = 6BAF440E121C241D008CFCDF /* PBXTextBookmark */; + 6BAF440F121C241D008CFCDF /* PBXTextBookmark */ = 6BAF440F121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4410121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4410121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4411121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4411121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4412121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4412121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4413121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4413121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4414121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4414121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4415121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4415121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4416121C241D008CFCDF /* PBXTextBookmark */ = 6BAF4416121C241D008CFCDF /* PBXTextBookmark */; + 6BAF4420121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF4420121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF4421121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF4421121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF4422121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF4422121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF4423121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF4423121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF4424121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF4424121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF4425121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF4425121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF4426121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF4426121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF4427121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF4427121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF4428121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF4428121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF4429121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF4429121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF442A121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF442A121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF442B121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF442B121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF442C121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF442C121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF442D121C25E3008CFCDF /* PBXTextBookmark */ = 6BAF442D121C25E3008CFCDF /* PBXTextBookmark */; + 6BAF4432121C2A3F008CFCDF /* PBXTextBookmark */ = 6BAF4432121C2A3F008CFCDF /* PBXTextBookmark */; + 6BAF4433121C2A3F008CFCDF /* PBXTextBookmark */ = 6BAF4433121C2A3F008CFCDF /* PBXTextBookmark */; + 6BAF4434121C2A3F008CFCDF /* PBXTextBookmark */ = 6BAF4434121C2A3F008CFCDF /* PBXTextBookmark */; + 6BAF4435121C2A3F008CFCDF /* PBXTextBookmark */ = 6BAF4435121C2A3F008CFCDF /* PBXTextBookmark */; + 6BAF4436121C2A3F008CFCDF /* PBXTextBookmark */ = 6BAF4436121C2A3F008CFCDF /* PBXTextBookmark */; + 6BAF4437121C2A3F008CFCDF /* PBXTextBookmark */ = 6BAF4437121C2A3F008CFCDF /* PBXTextBookmark */; + 6BAF443B121C2E5D008CFCDF /* PBXTextBookmark */ = 6BAF443B121C2E5D008CFCDF /* PBXTextBookmark */; + 6BAF443C121C2E5D008CFCDF /* PBXTextBookmark */ = 6BAF443C121C2E5D008CFCDF /* PBXTextBookmark */; + 6BAF443D121C2E5D008CFCDF /* PBXTextBookmark */ = 6BAF443D121C2E5D008CFCDF /* PBXTextBookmark */; + 6BAF443E121C2E5D008CFCDF /* PBXTextBookmark */ = 6BAF443E121C2E5D008CFCDF /* PBXTextBookmark */; + 6BAF4444121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4444121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4445121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4445121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4446121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4446121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4447121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4447121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4448121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4448121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4449121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4449121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF444A121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF444A121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF444B121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF444B121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF444C121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF444C121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF444D121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF444D121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF444E121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF444E121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF444F121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF444F121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4450121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4450121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4451121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4451121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4452121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4452121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4453121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4453121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4454121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4454121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4455121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4455121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4456121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4456121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4457121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4457121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4458121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4458121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4459121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4459121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF445A121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF445A121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF445B121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF445B121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF445C121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF445C121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF445D121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF445D121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF445E121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF445E121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF445F121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF445F121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF4460121C40AC008CFCDF /* PBXTextBookmark */ = 6BAF4460121C40AC008CFCDF /* PBXTextBookmark */; + 6BAF446B121C4895008CFCDF /* PBXTextBookmark */ = 6BAF446B121C4895008CFCDF /* PBXTextBookmark */; + 6BAF446C121C4895008CFCDF /* PBXTextBookmark */ = 6BAF446C121C4895008CFCDF /* PBXTextBookmark */; + 6BAF446D121C4895008CFCDF /* PBXTextBookmark */ = 6BAF446D121C4895008CFCDF /* PBXTextBookmark */; + 6BAF446E121C4895008CFCDF /* PBXTextBookmark */ = 6BAF446E121C4895008CFCDF /* PBXTextBookmark */; + 6BAF446F121C4895008CFCDF /* PBXTextBookmark */ = 6BAF446F121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4470121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4470121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4471121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4471121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4472121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4472121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4473121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4473121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4474121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4474121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4475121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4475121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4476121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4476121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4477121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4477121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4478121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4478121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4479121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4479121C4895008CFCDF /* PBXTextBookmark */; + 6BAF447A121C4895008CFCDF /* PBXTextBookmark */ = 6BAF447A121C4895008CFCDF /* PBXTextBookmark */; + 6BAF447B121C4895008CFCDF /* PBXTextBookmark */ = 6BAF447B121C4895008CFCDF /* PBXTextBookmark */; + 6BAF447C121C4895008CFCDF /* PBXTextBookmark */ = 6BAF447C121C4895008CFCDF /* PBXTextBookmark */; + 6BAF447D121C4895008CFCDF /* PBXTextBookmark */ = 6BAF447D121C4895008CFCDF /* PBXTextBookmark */; + 6BAF447E121C4895008CFCDF /* PBXTextBookmark */ = 6BAF447E121C4895008CFCDF /* PBXTextBookmark */; + 6BAF447F121C4895008CFCDF /* PBXTextBookmark */ = 6BAF447F121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4480121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4480121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4481121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4481121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4482121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4482121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4483121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4483121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4484121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4484121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4485121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4485121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4486121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4486121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4487121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4487121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4488121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4488121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4489121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4489121C4895008CFCDF /* PBXTextBookmark */; + 6BAF448A121C4895008CFCDF /* PBXTextBookmark */ = 6BAF448A121C4895008CFCDF /* PBXTextBookmark */; + 6BAF448B121C4895008CFCDF /* PBXTextBookmark */ = 6BAF448B121C4895008CFCDF /* PBXTextBookmark */; + 6BAF448C121C4895008CFCDF /* PBXTextBookmark */ = 6BAF448C121C4895008CFCDF /* PBXTextBookmark */; + 6BAF448D121C4895008CFCDF /* PBXTextBookmark */ = 6BAF448D121C4895008CFCDF /* PBXTextBookmark */; + 6BAF448E121C4895008CFCDF /* PBXTextBookmark */ = 6BAF448E121C4895008CFCDF /* PBXTextBookmark */; + 6BAF448F121C4895008CFCDF /* PBXTextBookmark */ = 6BAF448F121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4490121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4490121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4491121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4491121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4492121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4492121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4493121C4895008CFCDF /* PBXTextBookmark */ = 6BAF4493121C4895008CFCDF /* PBXTextBookmark */; + 6BAF4495121C48D7008CFCDF /* PBXTextBookmark */ = 6BAF4495121C48D7008CFCDF /* PBXTextBookmark */; + 6BAF4497121C4930008CFCDF /* PBXTextBookmark */ = 6BAF4497121C4930008CFCDF /* PBXTextBookmark */; + 6BAF4498121C498D008CFCDF /* PBXTextBookmark */ = 6BAF4498121C498D008CFCDF /* PBXTextBookmark */; + 6BAF449A121C49A7008CFCDF /* PBXTextBookmark */ = 6BAF449A121C49A7008CFCDF /* PBXTextBookmark */; + 6BAF449C121C49CF008CFCDF /* PBXTextBookmark */ = 6BAF449C121C49CF008CFCDF /* PBXTextBookmark */; + 6BAF449D121C49F4008CFCDF /* PBXTextBookmark */ = 6BAF449D121C49F4008CFCDF /* PBXTextBookmark */; + 6BAF449E121C49F4008CFCDF /* PBXTextBookmark */ = 6BAF449E121C49F4008CFCDF /* PBXTextBookmark */; + 6BAF449F121C4A43008CFCDF /* PBXTextBookmark */ = 6BAF449F121C4A43008CFCDF /* PBXTextBookmark */; + 6BAF44A0121C4A43008CFCDF /* PBXTextBookmark */ = 6BAF44A0121C4A43008CFCDF /* PBXTextBookmark */; + 6BAF44A1121C4A43008CFCDF /* PBXTextBookmark */ = 6BAF44A1121C4A43008CFCDF /* PBXTextBookmark */; + 6BAF44A2121C4A43008CFCDF /* PBXTextBookmark */ = 6BAF44A2121C4A43008CFCDF /* PBXTextBookmark */; + 6BAF44A5121C4AFD008CFCDF /* PBXTextBookmark */ = 6BAF44A5121C4AFD008CFCDF /* PBXTextBookmark */; + 6BAF44A6121C4B07008CFCDF /* PBXTextBookmark */ = 6BAF44A6121C4B07008CFCDF /* PBXTextBookmark */; + 6BAF44A7121C4B1D008CFCDF /* PBXTextBookmark */ = 6BAF44A7121C4B1D008CFCDF /* PBXTextBookmark */; + 6BAF44A8121C4B1D008CFCDF /* PBXTextBookmark */ = 6BAF44A8121C4B1D008CFCDF /* PBXTextBookmark */; + 6BAF44A9121C4B74008CFCDF /* PBXTextBookmark */ = 6BAF44A9121C4B74008CFCDF /* PBXTextBookmark */; + 6BAF44AA121C4B78008CFCDF /* PBXTextBookmark */ = 6BAF44AA121C4B78008CFCDF /* PBXTextBookmark */; + 6BAF44AB121C4BD8008CFCDF /* PBXTextBookmark */ = 6BAF44AB121C4BD8008CFCDF /* PBXTextBookmark */; + 6BAF44AC121C4BD8008CFCDF /* PBXTextBookmark */ = 6BAF44AC121C4BD8008CFCDF /* PBXTextBookmark */; + 6BAF44AD121C4BD8008CFCDF /* PBXTextBookmark */ = 6BAF44AD121C4BD8008CFCDF /* PBXTextBookmark */; + 6BAF44AE121C4BD8008CFCDF /* PBXTextBookmark */ = 6BAF44AE121C4BD8008CFCDF /* PBXTextBookmark */; + 6BAF44AF121C4BE5008CFCDF /* PBXTextBookmark */ = 6BAF44AF121C4BE5008CFCDF /* PBXTextBookmark */; + 6BAF44B0121C4BE5008CFCDF /* PBXTextBookmark */ = 6BAF44B0121C4BE5008CFCDF /* PBXTextBookmark */; + 6BAF44B3121C4BF1008CFCDF /* PBXTextBookmark */ = 6BAF44B3121C4BF1008CFCDF /* PBXTextBookmark */; + 6BAF44B7121C4CCD008CFCDF /* PBXTextBookmark */ = 6BAF44B7121C4CCD008CFCDF /* PBXTextBookmark */; + 6BAF44B8121C4CF7008CFCDF /* PBXTextBookmark */ = 6BAF44B8121C4CF7008CFCDF /* PBXTextBookmark */; + 6BAF44B9121C4D04008CFCDF /* PBXTextBookmark */ = 6BAF44B9121C4D04008CFCDF /* PBXTextBookmark */; + 6BAF44BC121C4D30008CFCDF /* PBXTextBookmark */ = 6BAF44BC121C4D30008CFCDF /* PBXTextBookmark */; + 6BAF44BD121C4D30008CFCDF /* PBXTextBookmark */ = 6BAF44BD121C4D30008CFCDF /* PBXTextBookmark */; + 6BAF44BE121C4D30008CFCDF /* PBXTextBookmark */ = 6BAF44BE121C4D30008CFCDF /* PBXTextBookmark */; + 6BAF44BF121C4D30008CFCDF /* PBXTextBookmark */ = 6BAF44BF121C4D30008CFCDF /* PBXTextBookmark */; + 6BAF44C0121C4D30008CFCDF /* PBXTextBookmark */ = 6BAF44C0121C4D30008CFCDF /* PBXTextBookmark */; + 6BAF44C1121C4D30008CFCDF /* PBXTextBookmark */ = 6BAF44C1121C4D30008CFCDF /* PBXTextBookmark */; + 6BAF44C2121C4D30008CFCDF /* PBXTextBookmark */ = 6BAF44C2121C4D30008CFCDF /* PBXTextBookmark */; + 6BAF44C3121C4D39008CFCDF /* PBXTextBookmark */ = 6BAF44C3121C4D39008CFCDF /* PBXTextBookmark */; + 6BAF44C4121C4D45008CFCDF /* PBXTextBookmark */ = 6BAF44C4121C4D45008CFCDF /* PBXTextBookmark */; + 6BAF44C5121C4D45008CFCDF /* PBXTextBookmark */ = 6BAF44C5121C4D45008CFCDF /* PBXTextBookmark */; + 6BAF44C6121C4D65008CFCDF /* PBXTextBookmark */ = 6BAF44C6121C4D65008CFCDF /* PBXTextBookmark */; + 6BAF44C7121C4D65008CFCDF /* PBXTextBookmark */ = 6BAF44C7121C4D65008CFCDF /* PBXTextBookmark */; + 6BAF44C8121C4D65008CFCDF /* PBXTextBookmark */ = 6BAF44C8121C4D65008CFCDF /* PBXTextBookmark */; + 6BAF44C9121C4D65008CFCDF /* PBXTextBookmark */ = 6BAF44C9121C4D65008CFCDF /* PBXTextBookmark */; + 6BAF44CA121C4D65008CFCDF /* PBXTextBookmark */ = 6BAF44CA121C4D65008CFCDF /* PBXTextBookmark */; + 6BAF44CB121C4D65008CFCDF /* PBXTextBookmark */ = 6BAF44CB121C4D65008CFCDF /* PBXTextBookmark */; + 6BAF44CC121C4D79008CFCDF /* PBXTextBookmark */ = 6BAF44CC121C4D79008CFCDF /* PBXTextBookmark */; + 6BAF44CD121C4D79008CFCDF /* PBXTextBookmark */ = 6BAF44CD121C4D79008CFCDF /* PBXTextBookmark */; + 6BAF44CE121C4D7B008CFCDF /* PBXTextBookmark */ = 6BAF44CE121C4D7B008CFCDF /* PBXTextBookmark */; + 6BAF44D1121C4DB4008CFCDF /* PBXTextBookmark */ = 6BAF44D1121C4DB4008CFCDF /* PBXTextBookmark */; + 6BAF44D2121C4DB4008CFCDF /* PBXTextBookmark */ = 6BAF44D2121C4DB4008CFCDF /* PBXTextBookmark */; + 6BAF44D3121C4DB4008CFCDF /* PBXTextBookmark */ = 6BAF44D3121C4DB4008CFCDF /* PBXTextBookmark */; + 6BAF44D4121C4DB4008CFCDF /* PBXTextBookmark */ = 6BAF44D4121C4DB4008CFCDF /* PBXTextBookmark */; + 6BAF44D5121C4DBB008CFCDF /* PBXTextBookmark */ = 6BAF44D5121C4DBB008CFCDF /* PBXTextBookmark */; + 6BAF44D6121C4DD6008CFCDF /* PBXTextBookmark */ = 6BAF44D6121C4DD6008CFCDF /* PBXTextBookmark */; + 6BAF44D7121C4DEB008CFCDF /* PBXTextBookmark */ = 6BAF44D7121C4DEB008CFCDF /* PBXTextBookmark */; + 6BAF44D8121C4DEB008CFCDF /* PBXTextBookmark */ = 6BAF44D8121C4DEB008CFCDF /* PBXTextBookmark */; + 6BAF44D9121C4DFC008CFCDF /* PBXTextBookmark */ = 6BAF44D9121C4DFC008CFCDF /* PBXTextBookmark */; + 6BAF44DA121C4DFC008CFCDF /* PBXTextBookmark */ = 6BAF44DA121C4DFC008CFCDF /* PBXTextBookmark */; + 6BAF44DB121C4DFC008CFCDF /* PBXTextBookmark */ = 6BAF44DB121C4DFC008CFCDF /* PBXTextBookmark */; + 6BAF44DC121C4DFC008CFCDF /* PBXTextBookmark */ = 6BAF44DC121C4DFC008CFCDF /* PBXTextBookmark */; + 6BAF44DE121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44DE121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44DF121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44DF121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44E0121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44E0121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44E1121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44E1121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44E2121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44E2121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44E3121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44E3121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44E4121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44E4121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44E5121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44E5121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44E6121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44E6121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44E7121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44E7121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44E8121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44E8121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44E9121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44E9121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44EA121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44EA121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44EB121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44EB121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44EC121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44EC121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44ED121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44ED121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44EE121C54D4008CFCDF /* PBXTextBookmark */ = 6BAF44EE121C54D4008CFCDF /* PBXTextBookmark */; + 6BAF44F0121C55F4008CFCDF /* PBXTextBookmark */ = 6BAF44F0121C55F4008CFCDF /* PBXTextBookmark */; + 6BAF44F1121C55F4008CFCDF /* PBXTextBookmark */ = 6BAF44F1121C55F4008CFCDF /* PBXTextBookmark */; + 6BAF44F2121C55F4008CFCDF /* PBXTextBookmark */ = 6BAF44F2121C55F4008CFCDF /* PBXTextBookmark */; + 6BAF44F3121C55F4008CFCDF /* PBXTextBookmark */ = 6BAF44F3121C55F4008CFCDF /* PBXTextBookmark */; + 6BAF44F4121C55F4008CFCDF /* PBXTextBookmark */ = 6BAF44F4121C55F4008CFCDF /* PBXTextBookmark */; + 6BAF44F7121C5713008CFCDF /* PBXTextBookmark */ = 6BAF44F7121C5713008CFCDF /* PBXTextBookmark */; + 6BAF44F8121C5713008CFCDF /* PBXTextBookmark */ = 6BAF44F8121C5713008CFCDF /* PBXTextBookmark */; + 6BAF44F9121C5713008CFCDF /* PBXTextBookmark */ = 6BAF44F9121C5713008CFCDF /* PBXTextBookmark */; + 6BAF44FA121C5713008CFCDF /* PBXTextBookmark */ = 6BAF44FA121C5713008CFCDF /* PBXTextBookmark */; + 6BAF44FB121C5713008CFCDF /* PBXTextBookmark */ = 6BAF44FB121C5713008CFCDF /* PBXTextBookmark */; + 6BAF44FC121C5713008CFCDF /* PBXTextBookmark */ = 6BAF44FC121C5713008CFCDF /* PBXTextBookmark */; + 6BAF44FD121C5713008CFCDF /* PBXTextBookmark */ = 6BAF44FD121C5713008CFCDF /* PBXTextBookmark */; + 6BAF44FE121C5713008CFCDF /* PBXTextBookmark */ = 6BAF44FE121C5713008CFCDF /* PBXTextBookmark */; + 6BAF44FF121C5772008CFCDF /* PBXTextBookmark */ = 6BAF44FF121C5772008CFCDF /* PBXTextBookmark */; + 6BAF4500121C5772008CFCDF /* PBXTextBookmark */ = 6BAF4500121C5772008CFCDF /* PBXTextBookmark */; + 6BAF4502121C577E008CFCDF /* PBXTextBookmark */ = 6BAF4502121C577E008CFCDF /* PBXTextBookmark */; + 6BAF4503121C57D5008CFCDF /* PBXTextBookmark */ = 6BAF4503121C57D5008CFCDF /* PBXTextBookmark */; + 6BAF4504121C57D5008CFCDF /* PBXTextBookmark */ = 6BAF4504121C57D5008CFCDF /* PBXTextBookmark */; + 6BAF4505121C57D5008CFCDF /* PBXTextBookmark */ = 6BAF4505121C57D5008CFCDF /* PBXTextBookmark */; + 6BAF4506121C57D5008CFCDF /* PBXTextBookmark */ = 6BAF4506121C57D5008CFCDF /* PBXTextBookmark */; + 6BAF4507121C57D5008CFCDF /* PBXTextBookmark */ = 6BAF4507121C57D5008CFCDF /* PBXTextBookmark */; + 6BAF4509121C57DF008CFCDF /* PBXTextBookmark */ = 6BAF4509121C57DF008CFCDF /* PBXTextBookmark */; + 6BAF450A121C5810008CFCDF /* PBXTextBookmark */ = 6BAF450A121C5810008CFCDF /* PBXTextBookmark */; + 6BAF450B121C5810008CFCDF /* PBXTextBookmark */ = 6BAF450B121C5810008CFCDF /* PBXTextBookmark */; + 6BAF450C121C5810008CFCDF /* PBXTextBookmark */ = 6BAF450C121C5810008CFCDF /* PBXTextBookmark */; + 6BAF450D121C5810008CFCDF /* PBXTextBookmark */ = 6BAF450D121C5810008CFCDF /* PBXTextBookmark */; + 6BAF450E121C5810008CFCDF /* PBXTextBookmark */ = 6BAF450E121C5810008CFCDF /* PBXTextBookmark */; + 6BAF4510121C5874008CFCDF /* PBXTextBookmark */ = 6BAF4510121C5874008CFCDF /* PBXTextBookmark */; + 6BAF4511121C5874008CFCDF /* PBXTextBookmark */ = 6BAF4511121C5874008CFCDF /* PBXTextBookmark */; + 6BAF4512121C5874008CFCDF /* PBXTextBookmark */ = 6BAF4512121C5874008CFCDF /* PBXTextBookmark */; + 6BAF4513121C5874008CFCDF /* PBXTextBookmark */ = 6BAF4513121C5874008CFCDF /* PBXTextBookmark */; + 6BAF4514121C5874008CFCDF /* PBXTextBookmark */ = 6BAF4514121C5874008CFCDF /* PBXTextBookmark */; + 6BAF4518121C5920008CFCDF /* PBXTextBookmark */ = 6BAF4518121C5920008CFCDF /* PBXTextBookmark */; + 6BAF4520121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4520121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4521121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4521121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4522121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4522121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4523121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4523121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4524121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4524121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4525121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4525121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4526121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4526121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4527121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4527121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4528121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4528121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4529121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4529121D1723008CFCDF /* PBXTextBookmark */; + 6BAF452A121D1723008CFCDF /* PBXTextBookmark */ = 6BAF452A121D1723008CFCDF /* PBXTextBookmark */; + 6BAF452B121D1723008CFCDF /* PBXTextBookmark */ = 6BAF452B121D1723008CFCDF /* PBXTextBookmark */; + 6BAF452C121D1723008CFCDF /* PBXTextBookmark */ = 6BAF452C121D1723008CFCDF /* PBXTextBookmark */; + 6BAF452D121D1723008CFCDF /* PBXTextBookmark */ = 6BAF452D121D1723008CFCDF /* PBXTextBookmark */; + 6BAF452E121D1723008CFCDF /* PBXTextBookmark */ = 6BAF452E121D1723008CFCDF /* PBXTextBookmark */; + 6BAF452F121D1723008CFCDF /* PBXTextBookmark */ = 6BAF452F121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4530121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4530121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4531121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4531121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4532121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4532121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4533121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4533121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4534121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4534121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4535121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4535121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4536121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4536121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4537121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4537121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4538121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4538121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4539121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4539121D1723008CFCDF /* PBXTextBookmark */; + 6BAF453A121D1723008CFCDF /* PBXTextBookmark */ = 6BAF453A121D1723008CFCDF /* PBXTextBookmark */; + 6BAF453B121D1723008CFCDF /* PBXTextBookmark */ = 6BAF453B121D1723008CFCDF /* PBXTextBookmark */; + 6BAF453C121D1723008CFCDF /* PBXTextBookmark */ = 6BAF453C121D1723008CFCDF /* PBXTextBookmark */; + 6BAF453D121D1723008CFCDF /* PBXTextBookmark */ = 6BAF453D121D1723008CFCDF /* PBXTextBookmark */; + 6BAF453E121D1723008CFCDF /* PBXTextBookmark */ = 6BAF453E121D1723008CFCDF /* PBXTextBookmark */; + 6BAF453F121D1723008CFCDF /* PBXTextBookmark */ = 6BAF453F121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4540121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4540121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4541121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4541121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4542121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4542121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4543121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4543121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4544121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4544121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4545121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4545121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4546121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4546121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4547121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4547121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4548121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4548121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4549121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4549121D1723008CFCDF /* PBXTextBookmark */; + 6BAF454A121D1723008CFCDF /* PBXTextBookmark */ = 6BAF454A121D1723008CFCDF /* PBXTextBookmark */; + 6BAF454B121D1723008CFCDF /* PBXTextBookmark */ = 6BAF454B121D1723008CFCDF /* PBXTextBookmark */; + 6BAF454C121D1723008CFCDF /* PBXTextBookmark */ = 6BAF454C121D1723008CFCDF /* PBXTextBookmark */; + 6BAF454D121D1723008CFCDF /* PBXTextBookmark */ = 6BAF454D121D1723008CFCDF /* PBXTextBookmark */; + 6BAF454E121D1723008CFCDF /* PBXTextBookmark */ = 6BAF454E121D1723008CFCDF /* PBXTextBookmark */; + 6BAF454F121D1723008CFCDF /* PBXTextBookmark */ = 6BAF454F121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4550121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4550121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4551121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4551121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4552121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4552121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4553121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4553121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4554121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4554121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4555121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4555121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4556121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4556121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4557121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4557121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4558121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4558121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4559121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4559121D1723008CFCDF /* PBXTextBookmark */; + 6BAF455A121D1723008CFCDF /* PBXTextBookmark */ = 6BAF455A121D1723008CFCDF /* PBXTextBookmark */; + 6BAF455B121D1723008CFCDF /* PBXTextBookmark */ = 6BAF455B121D1723008CFCDF /* PBXTextBookmark */; + 6BAF455C121D1723008CFCDF /* PBXTextBookmark */ = 6BAF455C121D1723008CFCDF /* PBXTextBookmark */; + 6BAF455D121D1723008CFCDF /* PBXTextBookmark */ = 6BAF455D121D1723008CFCDF /* PBXTextBookmark */; + 6BAF455E121D1723008CFCDF /* PBXTextBookmark */ = 6BAF455E121D1723008CFCDF /* PBXTextBookmark */; + 6BAF455F121D1723008CFCDF /* PBXTextBookmark */ = 6BAF455F121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4560121D1723008CFCDF /* PBXTextBookmark */ = 6BAF4560121D1723008CFCDF /* PBXTextBookmark */; + 6BAF4562121D1849008CFCDF /* PBXTextBookmark */ = 6BAF4562121D1849008CFCDF /* PBXTextBookmark */; + 6BAF4563121D1849008CFCDF /* PBXTextBookmark */ = 6BAF4563121D1849008CFCDF /* PBXTextBookmark */; + 6BAF4564121D1849008CFCDF /* PBXTextBookmark */ = 6BAF4564121D1849008CFCDF /* PBXTextBookmark */; + 6BAF4565121D1849008CFCDF /* PBXTextBookmark */ = 6BAF4565121D1849008CFCDF /* PBXTextBookmark */; + 6BAF4566121D1849008CFCDF /* PBXTextBookmark */ = 6BAF4566121D1849008CFCDF /* PBXTextBookmark */; + 6BAF4567121D1849008CFCDF /* PBXTextBookmark */ = 6BAF4567121D1849008CFCDF /* PBXTextBookmark */; + 6BAF4568121D1849008CFCDF /* PBXTextBookmark */ = 6BAF4568121D1849008CFCDF /* PBXTextBookmark */; + 6BAF4569121D1849008CFCDF /* PBXTextBookmark */ = 6BAF4569121D1849008CFCDF /* PBXTextBookmark */; + 6BAF456A121D1849008CFCDF /* PBXTextBookmark */ = 6BAF456A121D1849008CFCDF /* PBXTextBookmark */; + 6BAF456B121D1849008CFCDF /* PBXTextBookmark */ = 6BAF456B121D1849008CFCDF /* PBXTextBookmark */; + 6BAF456C121D1849008CFCDF /* PBXTextBookmark */ = 6BAF456C121D1849008CFCDF /* PBXTextBookmark */; + 6BAF456D121D1849008CFCDF /* PBXTextBookmark */ = 6BAF456D121D1849008CFCDF /* PBXTextBookmark */; + 6BAF456E121D1849008CFCDF /* PBXTextBookmark */ = 6BAF456E121D1849008CFCDF /* PBXTextBookmark */; + 6BAF456F121D1849008CFCDF /* PBXTextBookmark */ = 6BAF456F121D1849008CFCDF /* PBXTextBookmark */; + 6BAF4570121D18A5008CFCDF /* PBXTextBookmark */ = 6BAF4570121D18A5008CFCDF /* PBXTextBookmark */; + 6BAF4571121D18A5008CFCDF /* PBXTextBookmark */ = 6BAF4571121D18A5008CFCDF /* PBXTextBookmark */; + 6BAF4572121D18A5008CFCDF /* PBXTextBookmark */ = 6BAF4572121D18A5008CFCDF /* PBXTextBookmark */; + 6BAF4573121D18A5008CFCDF /* PBXTextBookmark */ = 6BAF4573121D18A5008CFCDF /* PBXTextBookmark */; + 6BAF4574121D18A5008CFCDF /* PBXTextBookmark */ = 6BAF4574121D18A5008CFCDF /* PBXTextBookmark */; + 6BAF4575121D18A5008CFCDF /* PBXTextBookmark */ = 6BAF4575121D18A5008CFCDF /* PBXTextBookmark */; + 6BAF4576121D18A5008CFCDF /* PBXTextBookmark */ = 6BAF4576121D18A5008CFCDF /* PBXTextBookmark */; + 6BAF4577121D18A5008CFCDF /* PBXTextBookmark */ = 6BAF4577121D18A5008CFCDF /* PBXTextBookmark */; + 6BAF4578121D18A5008CFCDF /* PBXTextBookmark */ = 6BAF4578121D18A5008CFCDF /* PBXTextBookmark */; + 6BAF4579121D18A5008CFCDF /* PBXTextBookmark */ = 6BAF4579121D18A5008CFCDF /* PBXTextBookmark */; + 6BAF457C121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF457C121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF457D121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF457D121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF457E121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF457E121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF457F121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF457F121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF4580121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF4580121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF4581121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF4581121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF4582121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF4582121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF4583121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF4583121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF4584121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF4584121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF4585121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF4585121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF4586121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF4586121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF4587121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF4587121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF4588121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF4588121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF4589121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF4589121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF458A121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF458A121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF458B121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF458B121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF458C121D19CB008CFCDF /* PBXTextBookmark */ = 6BAF458C121D19CB008CFCDF /* PBXTextBookmark */; + 6BAF458D121D1A1C008CFCDF /* PBXTextBookmark */ = 6BAF458D121D1A1C008CFCDF /* PBXTextBookmark */; + 6BAF458E121D1A1C008CFCDF /* PBXTextBookmark */ = 6BAF458E121D1A1C008CFCDF /* PBXTextBookmark */; + 6BAF458F121D1A1C008CFCDF /* PBXTextBookmark */ = 6BAF458F121D1A1C008CFCDF /* PBXTextBookmark */; + 6BAF4590121D1A1C008CFCDF /* PBXTextBookmark */ = 6BAF4590121D1A1C008CFCDF /* PBXTextBookmark */; + 6BAF4592121D1B18008CFCDF /* PBXTextBookmark */ = 6BAF4592121D1B18008CFCDF /* PBXTextBookmark */; + 6BAF4593121D1B18008CFCDF /* PBXTextBookmark */ = 6BAF4593121D1B18008CFCDF /* PBXTextBookmark */; + 6BAF4594121D1B18008CFCDF /* PBXTextBookmark */ = 6BAF4594121D1B18008CFCDF /* PBXTextBookmark */; + 6BAF4595121D1B18008CFCDF /* PBXTextBookmark */ = 6BAF4595121D1B18008CFCDF /* PBXTextBookmark */; + 6BAF4596121D1B18008CFCDF /* PBXTextBookmark */ = 6BAF4596121D1B18008CFCDF /* PBXTextBookmark */; + 6BAF4597121D1B18008CFCDF /* PBXTextBookmark */ = 6BAF4597121D1B18008CFCDF /* PBXTextBookmark */; + 6BAF4598121D1B18008CFCDF /* PBXTextBookmark */ = 6BAF4598121D1B18008CFCDF /* PBXTextBookmark */; + 6BAF4599121D1B18008CFCDF /* PBXTextBookmark */ = 6BAF4599121D1B18008CFCDF /* PBXTextBookmark */; + 6BAF459A121D1B18008CFCDF /* PBXTextBookmark */ = 6BAF459A121D1B18008CFCDF /* PBXTextBookmark */; + 6BAF459B121D1C15008CFCDF /* PBXTextBookmark */ = 6BAF459B121D1C15008CFCDF /* PBXTextBookmark */; + 6BAF459C121D1C15008CFCDF /* PBXTextBookmark */ = 6BAF459C121D1C15008CFCDF /* PBXTextBookmark */; + 6BAF459D121D1C15008CFCDF /* PBXTextBookmark */ = 6BAF459D121D1C15008CFCDF /* PBXTextBookmark */; + 6BAF459E121D1C15008CFCDF /* PBXTextBookmark */ = 6BAF459E121D1C15008CFCDF /* PBXTextBookmark */; + 6BAF459F121D1C15008CFCDF /* PBXTextBookmark */ = 6BAF459F121D1C15008CFCDF /* PBXTextBookmark */; + 6BAF45A0121D1C15008CFCDF /* PBXTextBookmark */ = 6BAF45A0121D1C15008CFCDF /* PBXTextBookmark */; + 6BAF45A1121D1C15008CFCDF /* PBXTextBookmark */ = 6BAF45A1121D1C15008CFCDF /* PBXTextBookmark */; + 6BAF45A2121D1C15008CFCDF /* PBXTextBookmark */ = 6BAF45A2121D1C15008CFCDF /* PBXTextBookmark */; + 6BAF45A4121D1C1E008CFCDF /* PBXTextBookmark */ = 6BAF45A4121D1C1E008CFCDF /* PBXTextBookmark */; + 6BAF45A6121D1C49008CFCDF /* PBXTextBookmark */ = 6BAF45A6121D1C49008CFCDF /* PBXTextBookmark */; + 6BAF45A7121D1C49008CFCDF /* PBXTextBookmark */ = 6BAF45A7121D1C49008CFCDF /* PBXTextBookmark */; + 6BAF45A8121D1C49008CFCDF /* PBXTextBookmark */ = 6BAF45A8121D1C49008CFCDF /* PBXTextBookmark */; + 6BAF45A9121D1C49008CFCDF /* PBXTextBookmark */ = 6BAF45A9121D1C49008CFCDF /* PBXTextBookmark */; + 6BAF45AA121D2C03008CFCDF /* PBXTextBookmark */ = 6BAF45AA121D2C03008CFCDF /* PBXTextBookmark */; + 6BAF45AB121D2C03008CFCDF /* PBXTextBookmark */ = 6BAF45AB121D2C03008CFCDF /* PBXTextBookmark */; + 6BAF45AC121D2C03008CFCDF /* PBXTextBookmark */ = 6BAF45AC121D2C03008CFCDF /* PBXTextBookmark */; + 6BAF45AD121D2C03008CFCDF /* PBXTextBookmark */ = 6BAF45AD121D2C03008CFCDF /* PBXTextBookmark */; + 6BAF45AE121D2C03008CFCDF /* PBXTextBookmark */ = 6BAF45AE121D2C03008CFCDF /* PBXTextBookmark */; + 6BAF45AF121D2C03008CFCDF /* PBXTextBookmark */ = 6BAF45AF121D2C03008CFCDF /* PBXTextBookmark */; + 6BAF45B0121D2C03008CFCDF /* PBXTextBookmark */ = 6BAF45B0121D2C03008CFCDF /* PBXTextBookmark */; + 6BAF45B1121D2C03008CFCDF /* PBXTextBookmark */ = 6BAF45B1121D2C03008CFCDF /* PBXTextBookmark */; + 6BAF45B2121D2C03008CFCDF /* PBXTextBookmark */ = 6BAF45B2121D2C03008CFCDF /* PBXTextBookmark */; + 6BAF45B7121D2F37008CFCDF /* PBXTextBookmark */ = 6BAF45B7121D2F37008CFCDF /* PBXTextBookmark */; + 6BAF45B8121D2F37008CFCDF /* PBXTextBookmark */ = 6BAF45B8121D2F37008CFCDF /* PBXTextBookmark */; + 6BAF45B9121D2F37008CFCDF /* PBXTextBookmark */ = 6BAF45B9121D2F37008CFCDF /* PBXTextBookmark */; + 6BAF45BA121D2F37008CFCDF /* PBXTextBookmark */ = 6BAF45BA121D2F37008CFCDF /* PBXTextBookmark */; + 6BAF45BB121D2F37008CFCDF /* PBXTextBookmark */ = 6BAF45BB121D2F37008CFCDF /* PBXTextBookmark */; + 6BAF45BC121D2F37008CFCDF /* PBXTextBookmark */ = 6BAF45BC121D2F37008CFCDF /* PBXTextBookmark */; + 6BAF45BD121D2F42008CFCDF /* PBXTextBookmark */ = 6BAF45BD121D2F42008CFCDF /* PBXTextBookmark */; + 6BAF45BE121D2F4E008CFCDF /* PBXTextBookmark */ = 6BAF45BE121D2F4E008CFCDF /* PBXTextBookmark */; + 6BAF45BF121D2F57008CFCDF /* PBXTextBookmark */ = 6BAF45BF121D2F57008CFCDF /* PBXTextBookmark */; + 6BAF45C0121D2F57008CFCDF /* PBXTextBookmark */ = 6BAF45C0121D2F57008CFCDF /* PBXTextBookmark */; + 6BAF45C2121D2F68008CFCDF /* PBXTextBookmark */ = 6BAF45C2121D2F68008CFCDF /* PBXTextBookmark */; 6BBB4AA1115B4F3400CF791D = 6BBB4AA1115B4F3400CF791D /* PBXTextBookmark */; 6BBB4AA5115B4F3400CF791D = 6BBB4AA5115B4F3400CF791D /* PBXTextBookmark */; 6BBB4AA6115B4F3400CF791D = 6BBB4AA6115B4F3400CF791D /* PBXTextBookmark */; @@ -901,7 +1388,7 @@ fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 1412"; rLen = 0; - rLoc = 37514; + rLoc = 35146; rType = 0; vrLen = 0; vrLoc = 33043; @@ -911,7 +1398,7 @@ fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; name = "RecastLog.cpp: 55"; rLen = 0; - rLoc = 1559; + rLoc = 1562; rType = 0; vrLen = 470; vrLoc = 1361; @@ -921,7 +1408,7 @@ fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; name = "RecastLog.h: 73"; rLen = 0; - rLoc = 2182; + rLoc = 2210; rType = 0; vrLen = 759; vrLoc = 1433; @@ -931,12 +1418,12 @@ fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; name = "RecastLog.cpp: 55"; rLen = 0; - rLoc = 1559; + rLoc = 1562; rType = 0; vrLen = 470; vrLoc = 1361; }; - 6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1398 */ = { + 6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1311 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -948,7 +1435,7 @@ functionName = "rcMergeInternalVertices(rcPolyMesh& mesh, const int mergeThreshold)"; hitCount = 0; ignoreCount = 0; - lineNumber = 1398; + lineNumber = 1311; location = Recast; modificationTime = 303756251.189612; state = 1; @@ -990,9 +1477,9 @@ }; 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 3328}}"; - sepNavSelRange = "{4075, 0}"; - sepNavVisRange = "{3867, 526}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 3312}}"; + sepNavSelRange = "{4217, 0}"; + sepNavVisRange = "{3888, 550}"; }; }; 6B137C6E0F7FCBBB00459200 /* SDLMain.m */ = { @@ -1025,121 +1512,145 @@ }; 6B137C7E0F7FCBFE00459200 /* Recast.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 10224}}"; - sepNavSelRange = "{2896, 0}"; - sepNavVisRange = "{2420, 1025}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 11008}}"; + sepNavSelRange = "{2042, 777}"; + sepNavVisRange = "{2197, 1197}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; 6B137C800F7FCBFE00459200 /* RecastLog.h */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.h; + name = RecastLog.h; + path = /Users/memon/Code/recastnavigation/Recast/Include/RecastLog.h; + sourceTree = ""; uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 1376}}"; - sepNavSelRange = "{1657, 501}"; - sepNavVisRange = "{1634, 680}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 1280}}"; + sepNavSelRange = "{1219, 0}"; + sepNavVisRange = "{989, 732}"; }; }; 6B137C810F7FCBFE00459200 /* RecastTimer.h */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.h; + name = RecastTimer.h; + path = /Users/memon/Code/recastnavigation/Recast/Include/RecastTimer.h; + sourceTree = ""; uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 571}}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 544}}"; sepNavSelRange = "{1170, 0}"; - sepNavVisRange = "{0, 1197}"; + sepNavVisRange = "{249, 948}"; sepNavWindowFrame = "{{15, 78}, {1011, 695}}"; }; }; 6B137C820F7FCC1100459200 /* Recast.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 6080}}"; - sepNavSelRange = "{7341, 0}"; - sepNavVisRange = "{6363, 1145}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 6208}}"; + sepNavSelRange = "{1087, 0}"; + sepNavVisRange = "{789, 592}"; }; }; 6B137C830F7FCC1100459200 /* RecastContour.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {838, 13456}}"; - sepNavSelRange = "{15891, 0}"; - sepNavVisRange = "{15541, 907}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 12784}}"; + sepNavSelRange = "{1078, 0}"; + sepNavVisRange = "{64, 1235}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; 6B137C850F7FCC1100459200 /* RecastFilter.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 3348}}"; - sepNavSelRange = "{3177, 33}"; - sepNavVisRange = "{2853, 653}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 2976}}"; + sepNavSelRange = "{1033, 0}"; + sepNavVisRange = "{0, 1197}"; sepNavWindowFrame = "{{15, 78}, {1011, 695}}"; }; }; 6B137C860F7FCC1100459200 /* RecastLog.cpp */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.cpp.cpp; + name = RecastLog.cpp; + path = /Users/memon/Code/recastnavigation/Recast/Source/RecastLog.cpp; + sourceTree = ""; uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {909, 1248}}"; - sepNavSelRange = "{1559, 0}"; - sepNavVisRange = "{1361, 470}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 1104}}"; + sepNavSelRange = "{1014, 0}"; + sepNavVisRange = "{923, 512}"; }; }; 6B137C870F7FCC1100459200 /* RecastMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1112, 21744}}"; - sepNavSelRange = "{15256, 0}"; - sepNavVisRange = "{15093, 350}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 21180}}"; + sepNavSelRange = "{1078, 0}"; + sepNavVisRange = "{0, 1149}"; }; }; 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 5872}}"; - sepNavSelRange = "{3499, 0}"; - sepNavVisRange = "{3201, 598}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 5904}}"; + sepNavSelRange = "{1058, 0}"; + sepNavVisRange = "{596, 1023}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; 6B137C890F7FCC1100459200 /* RecastRegion.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {859, 19920}}"; - sepNavSelRange = "{6621, 0}"; - sepNavVisRange = "{5911, 933}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 19296}}"; + sepNavSelRange = "{1117, 0}"; + sepNavVisRange = "{0, 1134}"; }; }; 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.cpp.cpp; + name = RecastTimer.cpp; + path = /Users/memon/Code/recastnavigation/Recast/Source/RecastTimer.cpp; + sourceTree = ""; uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {933, 1024}}"; - sepNavSelRange = "{1438, 0}"; - sepNavVisRange = "{672, 731}"; + sepNavSelRange = "{924, 715}"; + sepNavVisRange = "{1106, 534}"; }; }; 6B25B6100FFA62AD004F1BC4 /* Sample.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 2560}}"; - sepNavSelRange = "{4191, 0}"; - sepNavVisRange = "{3739, 966}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 2144}}"; + sepNavSelRange = "{971, 0}"; + sepNavVisRange = "{789, 681}"; }; }; 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 4860}}"; - sepNavSelRange = "{2953, 0}"; - sepNavVisRange = "{2871, 371}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 3536}}"; + sepNavSelRange = "{1276, 0}"; + sepNavVisRange = "{1108, 540}"; }; }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 14784}}"; - sepNavSelRange = "{20355, 0}"; - sepNavVisRange = "{20012, 541}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 14592}}"; + sepNavSelRange = "{4016, 0}"; + sepNavVisRange = "{3720, 624}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 1328}}"; - sepNavSelRange = "{1278, 0}"; - sepNavVisRange = "{1077, 464}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 1664}}"; + sepNavSelRange = "{1054, 0}"; + sepNavVisRange = "{446, 936}"; sepNavWindowFrame = "{{15, 78}, {1011, 695}}"; }; }; 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1223, 16864}}"; - sepNavSelRange = "{11262, 0}"; - sepNavVisRange = "{10849, 874}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 19408}}"; + sepNavSelRange = "{21691, 0}"; + sepNavVisRange = "{21149, 784}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; @@ -1148,7 +1659,7 @@ fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; name = "RecastTimer.cpp: 43"; rLen = 0; - rLoc = 1359; + rLoc = 1128; rType = 0; vrLen = 580; vrLoc = 1053; @@ -1223,9 +1734,9 @@ }; 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1112, 6800}}"; - sepNavSelRange = "{8069, 0}"; - sepNavVisRange = "{9857, 457}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 7328}}"; + sepNavSelRange = "{7194, 0}"; + sepNavVisRange = "{6855, 670}"; }; }; 6B555DF6100B273500247EA3 /* stb_truetype.h */ = { @@ -1237,9 +1748,9 @@ }; 6B624169103434880002E346 /* RecastMeshDetail.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {852, 19104}}"; - sepNavSelRange = "{26667, 0}"; - sepNavVisRange = "{26308, 822}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 18672}}"; + sepNavSelRange = "{1091, 26}"; + sepNavVisRange = "{133, 1134}"; sepNavWindowFrame = "{{61, 36}, {1011, 695}}"; }; }; @@ -1248,23 +1759,23 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 74"; rLen = 0; - rLoc = 2589; + rLoc = 2645; rType = 0; vrLen = 1497; vrLoc = 1662; }; 6B8036AC113BAABE005ED67B /* Sample_Debug.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 960}}"; - sepNavSelRange = "{1508, 0}"; - sepNavVisRange = "{1270, 566}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 944}}"; + sepNavSelRange = "{1048, 0}"; + sepNavVisRange = "{446, 875}"; }; }; 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 6000}}"; - sepNavSelRange = "{4504, 0}"; - sepNavVisRange = "{4303, 667}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 6080}}"; + sepNavSelRange = "{3974, 0}"; + sepNavVisRange = "{4357, 941}"; }; }; 6B8632970F78114600E2684A /* Recast */ = { @@ -1377,16 +1888,16 @@ }; 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 2016}}"; - sepNavSelRange = "{2977, 19}"; - sepNavVisRange = "{2519, 831}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 1792}}"; + sepNavSelRange = "{1064, 27}"; + sepNavVisRange = "{446, 968}"; }; }; 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1048, 18780}}"; - sepNavSelRange = "{11302, 87}"; - sepNavVisRange = "{10885, 848}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 17952}}"; + sepNavSelRange = "{1163, 1}"; + sepNavVisRange = "{968, 627}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; @@ -1405,7 +1916,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 711"; rLen = 0; - rLoc = 20744; + rLoc = 20695; rType = 0; vrLen = 1336; vrLoc = 19893; @@ -1456,9 +1967,9 @@ }; 6B98470511E733B600FA177B /* RecastAlloc.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1112, 1232}}"; - sepNavSelRange = "{2131, 0}"; - sepNavVisRange = "{1933, 365}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 1120}}"; + sepNavSelRange = "{1347, 0}"; + sepNavVisRange = "{946, 639}"; }; }; 6B98471011E734A100FA177B /* PBXTextBookmark */ = { @@ -1516,7 +2027,7 @@ fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; name = "RecastRegion.cpp: 998"; rLen = 0; - rLoc = 24090; + rLoc = 16281; rType = 0; vrLen = 935; vrLoc = 23518; @@ -1526,7 +2037,7 @@ fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; name = "RecastContour.cpp: 716"; rLen = 0; - rLoc = 18992; + rLoc = 15801; rType = 0; vrLen = 1104; vrLoc = 18553; @@ -1553,7 +2064,7 @@ fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; name = "TestCase.cpp: 218"; rLen = 4; - rLoc = 5170; + rLoc = 5146; rType = 0; vrLen = 522; vrLoc = 4828; @@ -1573,23 +2084,23 @@ fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; name = "RecastMeshDetail.cpp: 1086"; rLen = 0; - rLoc = 26667; + rLoc = 6523; rType = 0; vrLen = 822; vrLoc = 26308; }; 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1048, 11504}}"; - sepNavSelRange = "{7826, 0}"; - sepNavVisRange = "{7304, 958}"; + sepNavIntBoundsRect = "{{0, 0}, {936, 10832}}"; + sepNavSelRange = "{20286, 0}"; + sepNavVisRange = "{19487, 816}"; }; }; 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 1248}}"; - sepNavSelRange = "{1336, 22}"; - sepNavVisRange = "{920, 577}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 1168}}"; + sepNavSelRange = "{923, 0}"; + sepNavVisRange = "{446, 908}"; }; }; 6BAF37D411FEAC16008CFCDF /* PBXTextBookmark */ = { @@ -1597,7 +2108,7 @@ fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; name = "RecastContour.cpp: 607"; rLen = 0; - rLoc = 15891; + rLoc = 15801; rType = 0; vrLen = 907; vrLoc = 15541; @@ -1607,7 +2118,7 @@ fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; name = "RecastContour.cpp: 607"; rLen = 0; - rLoc = 15891; + rLoc = 15801; rType = 0; vrLen = 907; vrLoc = 15541; @@ -1627,7 +2138,7 @@ fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; name = "Sample_SoloMeshTiled.h: 115"; rLen = 19; - rLoc = 2977; + rLoc = 2925; rType = 0; vrLen = 831; vrLoc = 2519; @@ -1637,7 +2148,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1111"; rLen = 0; - rLoc = 33582; + rLoc = 32800; rType = 0; vrLen = 1395; vrLoc = 32716; @@ -1647,7 +2158,7 @@ fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; name = "Sample_SoloMeshTiled.h: 115"; rLen = 19; - rLoc = 2977; + rLoc = 2925; rType = 0; vrLen = 831; vrLoc = 2519; @@ -1657,7 +2168,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 632"; rLen = 9; - rLoc = 18357; + rLoc = 18332; rType = 0; vrLen = 1041; vrLoc = 17720; @@ -1667,7 +2178,7 @@ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; name = "Recast.cpp: 286"; rLen = 0; - rLoc = 7341; + rLoc = 5882; rType = 0; vrLen = 1145; vrLoc = 6363; @@ -1677,7 +2188,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 120"; rLen = 0; - rLoc = 5914; + rLoc = 2027; rType = 0; vrLen = 1620; vrLoc = 3695; @@ -1697,7 +2208,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 69"; rLen = 0; - rLoc = 4083; + rLoc = 2027; rType = 0; vrLen = 1023; vrLoc = 2725; @@ -1756,8 +2267,8 @@ isa = PBXTextBookmark; fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 527"; - rLen = 84; - rLoc = 16413; + rLen = 0; + rLoc = 11795; rType = 0; vrLen = 787; vrLoc = 15823; @@ -1766,8 +2277,8 @@ isa = PBXTextBookmark; fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 527"; - rLen = 84; - rLoc = 16413; + rLen = 0; + rLoc = 11795; rType = 0; vrLen = 710; vrLoc = 15823; @@ -1777,7 +2288,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 65"; rLen = 0; - rLoc = 2114; + rLoc = 1823; rType = 0; vrLen = 840; vrLoc = 1757; @@ -1787,7 +2298,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 367"; rLen = 18; - rLoc = 11240; + rLoc = 11191; rType = 0; vrLen = 1339; vrLoc = 10423; @@ -1937,7 +2448,7 @@ fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 35"; rLen = 72; - rLoc = 1200; + rLoc = 1178; rType = 0; vrLen = 855; vrLoc = 2648; @@ -2027,7 +2538,7 @@ fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; name = "Sample_TileMesh.h: 37"; rLen = 0; - rLoc = 1278; + rLoc = 1226; rType = 0; vrLen = 683; vrLoc = 1104; @@ -2037,7 +2548,7 @@ fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; name = "Sample_TileMesh.h: 37"; rLen = 0; - rLoc = 1278; + rLoc = 1226; rType = 0; vrLen = 683; vrLoc = 1104; @@ -2326,8 +2837,8 @@ isa = PBXTextBookmark; fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 525"; - rLen = 353; - rLoc = 16345; + rLen = 0; + rLoc = 11795; rType = 0; vrLen = 863; vrLoc = 15801; @@ -2337,7 +2848,7 @@ fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; name = "Sample_Debug.h: 33"; rLen = 7; - rLoc = 1223; + rLoc = 1200; rType = 0; vrLen = 787; vrLoc = 952; @@ -2347,7 +2858,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 218"; rLen = 0; - rLoc = 5069; + rLoc = 5053; rType = 0; vrLen = 864; vrLoc = 4482; @@ -2357,7 +2868,7 @@ fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 1082"; rLen = 0; - rLoc = 31918; + rLoc = 12698; rType = 0; vrLen = 632; vrLoc = 28465; @@ -2367,7 +2878,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 224"; rLen = 0; - rLoc = 5134; + rLoc = 5118; rType = 0; vrLen = 844; vrLoc = 4598; @@ -2376,8 +2887,8 @@ isa = PBXTextBookmark; fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 1122"; - rLen = 12; - rLoc = 31687; + rLen = 0; + rLoc = 12698; rType = 0; vrLen = 728; vrLoc = 29530; @@ -2387,7 +2898,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 138"; rLen = 0; - rLoc = 3416; + rLoc = 3393; rType = 0; vrLen = 764; vrLoc = 3114; @@ -2397,7 +2908,7 @@ fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 704"; rLen = 0; - rLoc = 20227; + rLoc = 12698; rType = 0; vrLen = 793; vrLoc = 18151; @@ -2407,7 +2918,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 335"; rLen = 0; - rLoc = 7580; + rLoc = 7564; rType = 0; vrLen = 508; vrLoc = 7362; @@ -2417,7 +2928,7 @@ fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; name = "Sample_Debug.h: 33"; rLen = 7; - rLoc = 1223; + rLoc = 1200; rType = 0; vrLen = 758; vrLoc = 952; @@ -2427,7 +2938,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 222"; rLen = 0; - rLoc = 5093; + rLoc = 5077; rType = 0; vrLen = 887; vrLoc = 4429; @@ -2437,7 +2948,7 @@ fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 585"; rLen = 0; - rLoc = 15137; + rLoc = 12698; rType = 0; vrLen = 471; vrLoc = 14603; @@ -2447,7 +2958,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 138"; rLen = 0; - rLoc = 3416; + rLoc = 3393; rType = 0; vrLen = 777; vrLoc = 3092; @@ -2457,7 +2968,7 @@ fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 587"; rLen = 0; - rLoc = 15155; + rLoc = 12698; rType = 0; vrLen = 658; vrLoc = 14757; @@ -2467,7 +2978,7 @@ fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 1176"; rLen = 0; - rLoc = 30990; + rLoc = 12698; rType = 0; vrLen = 886; vrLoc = 30501; @@ -2477,7 +2988,7 @@ fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 1176"; rLen = 0; - rLoc = 30990; + rLoc = 12698; rType = 0; vrLen = 886; vrLoc = 30501; @@ -2487,7 +2998,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 220"; rLen = 0; - rLoc = 5076; + rLoc = 5060; rType = 0; vrLen = 853; vrLoc = 4305; @@ -2497,7 +3008,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 725"; rLen = 0; - rLoc = 18150; + rLoc = 21616; rType = 0; vrLen = 1322; vrLoc = 17194; @@ -2507,7 +3018,7 @@ fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; name = "RecastRasterization.cpp: 129"; rLen = 0; - rLoc = 3499; + rLoc = 3482; rType = 0; vrLen = 598; vrLoc = 3201; @@ -2517,7 +3028,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 696"; rLen = 0; - rLoc = 20040; + rLoc = 19991; rType = 0; vrLen = 1334; vrLoc = 19553; @@ -2527,7 +3038,7 @@ fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; name = "RecastRasterization.cpp: 129"; rLen = 0; - rLoc = 3499; + rLoc = 3482; rType = 0; vrLen = 598; vrLoc = 3201; @@ -2554,16 +3065,16 @@ }; 6BAF3C571211663A008CFCDF /* CrowdTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 3136}}"; - sepNavSelRange = "{3025, 0}"; - sepNavVisRange = "{2893, 631}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 3040}}"; + sepNavSelRange = "{1371, 14}"; + sepNavVisRange = "{964, 705}"; }; }; 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 21488}}"; - sepNavSelRange = "{27822, 0}"; - sepNavVisRange = "{27461, 521}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 21168}}"; + sepNavSelRange = "{12358, 0}"; + sepNavVisRange = "{11920, 819}"; }; }; 6BAF3C6512116712008CFCDF /* PBXTextBookmark */ = { @@ -2571,7 +3082,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 84"; rLen = 0; - rLoc = 2559; + rLoc = 1823; rType = 0; vrLen = 633; vrLoc = 2030; @@ -2581,7 +3092,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 114"; rLen = 86; - rLoc = 2925; + rLoc = 2900; rType = 0; vrLen = 670; vrLoc = 2428; @@ -2591,7 +3102,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 222"; rLen = 0; - rLoc = 5651; + rLoc = 5626; rType = 0; vrLen = 755; vrLoc = 4946; @@ -2601,7 +3112,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 38"; rLen = 23; - rLoc = 1399; + rLoc = 1374; rType = 0; vrLen = 952; vrLoc = 521; @@ -2611,7 +3122,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 39"; rLen = 0; - rLoc = 1427; + rLoc = 1402; rType = 0; vrLen = 813; vrLoc = 711; @@ -2621,7 +3132,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 358"; rLen = 0; - rLoc = 7973; + rLoc = 7957; rType = 0; vrLen = 338; vrLoc = 7722; @@ -2631,7 +3142,7 @@ fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; name = "Sample_Debug.h: 47"; rLen = 0; - rLoc = 1508; + rLoc = 1485; rType = 0; vrLen = 566; vrLoc = 1270; @@ -2641,7 +3152,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 30"; rLen = 0; - rLoc = 1189; + rLoc = 1165; rType = 0; vrLen = 1048; vrLoc = 446; @@ -2651,7 +3162,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 133"; rLen = 16; - rLoc = 3694; + rLoc = 3036; rType = 0; vrLen = 786; vrLoc = 3444; @@ -2661,7 +3172,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 82"; rLen = 0; - rLoc = 2150; + rLoc = 2125; rType = 0; vrLen = 411; vrLoc = 1946; @@ -2681,7 +3192,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 358"; rLen = 0; - rLoc = 7973; + rLoc = 7957; rType = 0; vrLen = 338; vrLoc = 7722; @@ -2721,7 +3232,7 @@ fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; name = "Sample_Debug.h: 47"; rLen = 0; - rLoc = 1508; + rLoc = 1485; rType = 0; vrLen = 566; vrLoc = 1270; @@ -2731,7 +3242,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 116"; rLen = 0; - rLoc = 2755; + rLoc = 2730; rType = 0; vrLen = 441; vrLoc = 2410; @@ -2781,7 +3292,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 92"; rLen = 0; - rLoc = 2354; + rLoc = 2329; rType = 0; vrLen = 576; vrLoc = 1854; @@ -2791,7 +3302,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 131"; rLen = 0; - rLoc = 3009; + rLoc = 2984; rType = 0; vrLen = 657; vrLoc = 2664; @@ -2801,7 +3312,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 139"; rLen = 44; - rLoc = 3957; + rLoc = 3299; rType = 0; vrLen = 984; vrLoc = 3411; @@ -2811,7 +3322,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 139"; rLen = 0; - rLoc = 4000; + rLoc = 3342; rType = 0; vrLen = 859; vrLoc = 3260; @@ -2821,7 +3332,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 99"; rLen = 0; - rLoc = 3011; + rLoc = 2270; rType = 0; vrLen = 665; vrLoc = 2506; @@ -2871,7 +3382,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 126"; rLen = 0; - rLoc = 2947; + rLoc = 2922; rType = 0; vrLen = 588; vrLoc = 2615; @@ -2881,7 +3392,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 92"; rLen = 12; - rLoc = 2342; + rLoc = 2317; rType = 0; vrLen = 582; vrLoc = 1943; @@ -2891,7 +3402,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 97"; rLen = 0; - rLoc = 2960; + rLoc = 2219; rType = 0; vrLen = 665; vrLoc = 2506; @@ -2901,7 +3412,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 92"; rLen = 0; - rLoc = 2354; + rLoc = 2329; rType = 0; vrLen = 576; vrLoc = 1854; @@ -2911,7 +3422,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 131"; rLen = 0; - rLoc = 3009; + rLoc = 2984; rType = 0; vrLen = 657; vrLoc = 2664; @@ -2921,7 +3432,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 907"; rLen = 0; - rLoc = 21397; + rLoc = 20980; rType = 0; vrLen = 649; vrLoc = 20977; @@ -2931,7 +3442,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 907"; rLen = 0; - rLoc = 21397; + rLoc = 20980; rType = 0; vrLen = 649; vrLoc = 20977; @@ -2941,7 +3452,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 145"; rLen = 0; - rLoc = 4253; + rLoc = 3595; rType = 0; vrLen = 1027; vrLoc = 3592; @@ -2951,7 +3462,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 273"; rLen = 0; - rLoc = 6150; + rLoc = 4567; rType = 0; vrLen = 547; vrLoc = 5681; @@ -3038,7 +3549,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 507"; rLen = 0; - rLoc = 15843; + rLoc = 11795; rType = 0; vrLen = 1054; vrLoc = 15060; @@ -3118,7 +3629,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 452"; rLen = 0; - rLoc = 11717; + rLoc = 11637; rType = 0; vrLen = 749; vrLoc = 11336; @@ -3128,7 +3639,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 901"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 1017; vrLoc = 24722; @@ -3398,7 +3909,7 @@ fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; name = "Sample_SoloMeshSimple.h: 38"; rLen = 22; - rLoc = 1336; + rLoc = 1284; rType = 0; vrLen = 577; vrLoc = 920; @@ -3418,7 +3929,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 372"; rLen = 18; - rLoc = 11285; + rLoc = 11236; rType = 0; vrLen = 1302; vrLoc = 10569; @@ -3428,7 +3939,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 120"; rLen = 27; - rLoc = 3415; + rLoc = 2674; rType = 0; vrLen = 804; vrLoc = 3054; @@ -3438,7 +3949,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 223"; rLen = 20; - rLoc = 4571; + rLoc = 2988; rType = 0; vrLen = 629; vrLoc = 3847; @@ -3458,7 +3969,7 @@ fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; name = "Sample_SoloMeshSimple.h: 38"; rLen = 22; - rLoc = 1336; + rLoc = 1284; rType = 0; vrLen = 577; vrLoc = 920; @@ -3468,7 +3979,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 371"; rLen = 0; - rLoc = 11213; + rLoc = 11164; rType = 0; vrLen = 1276; vrLoc = 10575; @@ -3488,7 +3999,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 372"; rLen = 18; - rLoc = 11285; + rLoc = 11236; rType = 0; vrLen = 1302; vrLoc = 10569; @@ -3498,7 +4009,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 120"; rLen = 27; - rLoc = 3415; + rLoc = 2674; rType = 0; vrLen = 804; vrLoc = 3054; @@ -3508,7 +4019,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 207"; rLen = 0; - rLoc = 4243; + rLoc = 2660; rType = 0; vrLen = 630; vrLoc = 3846; @@ -3518,23 +4029,23 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 207"; rLen = 0; - rLoc = 4243; + rLoc = 2660; rType = 0; vrLen = 629; vrLoc = 3846; }; 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 5648}}"; - sepNavSelRange = "{14986, 7}"; - sepNavVisRange = "{14379, 762}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 5280}}"; + sepNavSelRange = "{8002, 0}"; + sepNavVisRange = "{6956, 1836}"; }; }; 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 37920}}"; - sepNavSelRange = "{23224, 0}"; - sepNavVisRange = "{23011, 629}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 36608}}"; + sepNavSelRange = "{15601, 0}"; + sepNavVisRange = "{15331, 1157}"; }; }; 6BAF40F012197F3D008CFCDF /* PBXTextBookmark */ = { @@ -3542,7 +4053,7 @@ fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */; name = "RecastTimer.h: 31"; rLen = 0; - rLoc = 1170; + rLoc = 1176; rType = 0; vrLen = 1197; vrLoc = 0; @@ -3552,7 +4063,7 @@ fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; name = "RecastTimer.cpp: 51"; rLen = 0; - rLoc = 1438; + rLoc = 1128; rType = 0; vrLen = 731; vrLoc = 672; @@ -3561,8 +4072,8 @@ isa = PBXTextBookmark; fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; name = "RecastLog.h: 53"; - rLen = 501; - rLoc = 1657; + rLen = 526; + rLoc = 1660; rType = 0; vrLen = 680; vrLoc = 1634; @@ -3572,7 +4083,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 66"; rLen = 0; - rLoc = 2896; + rLoc = 2027; rType = 0; vrLen = 1025; vrLoc = 2420; @@ -3622,7 +4133,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 146"; rLen = 0; - rLoc = 4252; + rLoc = 3594; rType = 0; vrLen = 1208; vrLoc = 3489; @@ -3632,7 +4143,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 145"; rLen = 0; - rLoc = 3055; + rLoc = 1472; rType = 0; vrLen = 501; vrLoc = 2807; @@ -3662,7 +4173,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 659"; rLen = 0; - rLoc = 20178; + rLoc = 11795; rType = 0; vrLen = 1369; vrLoc = 19826; @@ -3672,7 +4183,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1105"; rLen = 0; - rLoc = 33171; + rLoc = 21404; rType = 0; vrLen = 1088; vrLoc = 32927; @@ -3682,7 +4193,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 375"; rLen = 0; - rLoc = 8588; + rLoc = 8628; rType = 0; vrLen = 593; vrLoc = 8440; @@ -3712,7 +4223,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 213"; rLen = 0; - rLoc = 4346; + rLoc = 2763; rType = 0; vrLen = 755; vrLoc = 3913; @@ -3722,7 +4233,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 47"; rLen = 0; - rLoc = 3057; + rLoc = 2027; rType = 0; vrLen = 1651; vrLoc = 942; @@ -3732,7 +4243,7 @@ fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */; name = "RecastTimer.h: 31"; rLen = 0; - rLoc = 1170; + rLoc = 1176; rType = 0; vrLen = 1197; vrLoc = 0; @@ -3742,7 +4253,7 @@ fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; name = "RecastTimer.cpp: 51"; rLen = 0; - rLoc = 1438; + rLoc = 1128; rType = 0; vrLen = 731; vrLoc = 672; @@ -3752,7 +4263,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 61"; rLen = 0; - rLoc = 3320; + rLoc = 2027; rType = 0; vrLen = 1010; vrLoc = 1987; @@ -3762,7 +4273,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 69"; rLen = 0; - rLoc = 3164; + rLoc = 2027; rType = 0; vrLen = 783; vrLoc = 2107; @@ -3771,8 +4282,8 @@ isa = PBXTextBookmark; fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; name = "RecastLog.h: 53"; - rLen = 501; - rLoc = 1657; + rLen = 526; + rLoc = 1660; rType = 0; vrLen = 680; vrLoc = 1634; @@ -3782,7 +4293,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 66"; rLen = 0; - rLoc = 2896; + rLoc = 2027; rType = 0; vrLen = 1025; vrLoc = 2420; @@ -4412,7 +4923,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 1187"; rLen = 0; - rLoc = 38401; + rLoc = 38519; rType = 0; vrLen = 873; vrLoc = 31973; @@ -4432,7 +4943,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 107"; rLen = 0; - rLoc = 3095; + rLoc = 2354; rType = 0; vrLen = 642; vrLoc = 3040; @@ -4442,7 +4953,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 281"; rLen = 0; - rLoc = 6219; + rLoc = 4636; rType = 0; vrLen = 618; vrLoc = 5675; @@ -4452,7 +4963,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 146"; rLen = 0; - rLoc = 4252; + rLoc = 3594; rType = 0; vrLen = 1208; vrLoc = 3489; @@ -4462,7 +4973,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 145"; rLen = 0; - rLoc = 3055; + rLoc = 1472; rType = 0; vrLen = 501; vrLoc = 2807; @@ -4472,7 +4983,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 653"; rLen = 0; - rLoc = 20054; + rLoc = 11795; rType = 0; vrLen = 996; vrLoc = 19639; @@ -4532,7 +5043,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 659"; rLen = 0; - rLoc = 20178; + rLoc = 11795; rType = 0; vrLen = 1369; vrLoc = 19826; @@ -4542,7 +5053,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1105"; rLen = 0; - rLoc = 33171; + rLoc = 21404; rType = 0; vrLen = 1088; vrLoc = 32927; @@ -4552,7 +5063,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 375"; rLen = 0; - rLoc = 8588; + rLoc = 8628; rType = 0; vrLen = 593; vrLoc = 8440; @@ -4611,8 +5122,8 @@ isa = PBXTextBookmark; fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 657"; - rLen = 1; - rLoc = 20162; + rLen = 0; + rLoc = 11795; rType = 0; vrLen = 580; vrLoc = 19826; @@ -4621,8 +5132,8 @@ isa = PBXTextBookmark; fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1108"; - rLen = 1; - rLoc = 33216; + rLen = 0; + rLoc = 21404; rType = 0; vrLen = 574; vrLoc = 32927; @@ -4632,7 +5143,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 37"; rLen = 0; - rLoc = 1398; + rLoc = 1373; rType = 0; vrLen = 553; vrLoc = 987; @@ -4642,7 +5153,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 354"; rLen = 0; - rLoc = 7857; + rLoc = 7841; rType = 0; vrLen = 394; vrLoc = 7692; @@ -4672,7 +5183,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 144"; rLen = 0; - rLoc = 4191; + rLoc = 3533; rType = 0; vrLen = 966; vrLoc = 3739; @@ -4682,7 +5193,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 152"; rLen = 0; - rLoc = 3109; + rLoc = 1526; rType = 0; vrLen = 452; vrLoc = 2871; @@ -4692,7 +5203,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1086"; rLen = 0; - rLoc = 32740; + rLoc = 32715; rType = 0; vrLen = 815; vrLoc = 30646; @@ -4722,7 +5233,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 144"; rLen = 0; - rLoc = 4061; + rLoc = 3403; rType = 0; vrLen = 1192; vrLoc = 3563; @@ -4732,7 +5243,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 35"; rLen = 31; - rLoc = 1303; + rLoc = 1278; rType = 0; vrLen = 618; vrLoc = 950; @@ -4742,7 +5253,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 146"; rLen = 72; - rLoc = 4123; + rLoc = 3465; rType = 0; vrLen = 1170; vrLoc = 3585; @@ -4762,7 +5273,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 24"; rLen = 0; - rLoc = 1018; + rLoc = 1021; rType = 0; vrLen = 1062; vrLoc = 133; @@ -4781,8 +5292,8 @@ isa = PBXTextBookmark; fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 657"; - rLen = 1; - rLoc = 20162; + rLen = 0; + rLoc = 11795; rType = 0; vrLen = 580; vrLoc = 19826; @@ -4791,8 +5302,8 @@ isa = PBXTextBookmark; fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1108"; - rLen = 1; - rLoc = 33216; + rLen = 0; + rLoc = 21404; rType = 0; vrLen = 574; vrLoc = 32927; @@ -4802,7 +5313,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 37"; rLen = 0; - rLoc = 1398; + rLoc = 1373; rType = 0; vrLen = 553; vrLoc = 987; @@ -4812,7 +5323,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 354"; rLen = 0; - rLoc = 7857; + rLoc = 7841; rType = 0; vrLen = 394; vrLoc = 7692; @@ -4832,7 +5343,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 156"; rLen = 0; - rLoc = 3516; + rLoc = 3491; rType = 0; vrLen = 536; vrLoc = 4108; @@ -4852,7 +5363,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 187"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 527; vrLoc = 4664; @@ -4872,7 +5383,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 186"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 567; vrLoc = 4680; @@ -4882,7 +5393,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 144"; rLen = 0; - rLoc = 4191; + rLoc = 3533; rType = 0; vrLen = 966; vrLoc = 3739; @@ -4892,7 +5403,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 152"; rLen = 0; - rLoc = 3109; + rLoc = 1526; rType = 0; vrLen = 452; vrLoc = 2871; @@ -4902,7 +5413,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1086"; rLen = 0; - rLoc = 32740; + rLoc = 32715; rType = 0; vrLen = 815; vrLoc = 30646; @@ -4932,7 +5443,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 143"; rLen = 0; - rLoc = 2953; + rLoc = 1359; rType = 0; vrLen = 360; vrLoc = 2871; @@ -4942,7 +5453,7 @@ fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; name = "Sample_TileMesh.h: 37"; rLen = 0; - rLoc = 1278; + rLoc = 1226; rType = 0; vrLen = 464; vrLoc = 1077; @@ -4962,7 +5473,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 306"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 522; vrLoc = 7759; @@ -4972,7 +5483,7 @@ fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; name = "TestCase.h: 74"; rLen = 0; - rLoc = 1865; + rLoc = 1881; rType = 0; vrLen = 497; vrLoc = 1510; @@ -4982,7 +5493,7 @@ fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; name = "TestCase.cpp: 221"; rLen = 0; - rLoc = 5265; + rLoc = 5241; rType = 0; vrLen = 501; vrLoc = 5108; @@ -4992,7 +5503,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 864"; rLen = 0; - rLoc = 20355; + rLoc = 19946; rType = 0; vrLen = 541; vrLoc = 20012; @@ -5002,7 +5513,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 379"; rLen = 87; - rLoc = 11302; + rLoc = 11277; rType = 0; vrLen = 848; vrLoc = 10885; @@ -5022,7 +5533,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 243"; rLen = 0; - rLoc = 7826; + rLoc = 7801; rType = 0; vrLen = 958; vrLoc = 7304; @@ -5032,7 +5543,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 204"; rLen = 0; - rLoc = 4504; + rLoc = 4488; rType = 0; vrLen = 667; vrLoc = 4303; @@ -5042,7 +5553,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 480"; rLen = 0; - rLoc = 11262; + rLoc = 15143; rType = 0; vrLen = 434; vrLoc = 10933; @@ -5172,7 +5683,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 143"; rLen = 0; - rLoc = 2953; + rLoc = 1359; rType = 0; vrLen = 360; vrLoc = 2871; @@ -5182,7 +5693,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 327"; rLen = 0; - rLoc = 7291; + rLoc = 7297; rType = 0; vrLen = 503; vrLoc = 7181; @@ -5192,7 +5703,7 @@ fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; name = "Sample_TileMesh.h: 37"; rLen = 0; - rLoc = 1278; + rLoc = 1226; rType = 0; vrLen = 464; vrLoc = 1077; @@ -5202,7 +5713,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 380"; rLen = 0; - rLoc = 8701; + rLoc = 8741; rType = 0; vrLen = 404; vrLoc = 8330; @@ -5222,7 +5733,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 659"; rLen = 0; - rLoc = 20178; + rLoc = 11795; rType = 0; vrLen = 527; vrLoc = 19826; @@ -5232,7 +5743,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 306"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 522; vrLoc = 7759; @@ -5242,7 +5753,7 @@ fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; name = "TestCase.cpp: 160"; rLen = 26; - rLoc = 3373; + rLoc = 3394; rType = 0; vrLen = 452; vrLoc = 3326; @@ -5252,7 +5763,7 @@ fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; name = "TestCase.h: 74"; rLen = 0; - rLoc = 1889; + rLoc = 1905; rType = 0; vrLen = 491; vrLoc = 1510; @@ -5262,7 +5773,7 @@ fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; name = "TestCase.cpp: 229"; rLen = 1; - rLoc = 5424; + rLoc = 5400; rType = 0; vrLen = 501; vrLoc = 5108; @@ -5272,7 +5783,7 @@ fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; name = "TestCase.h: 74"; rLen = 0; - rLoc = 1865; + rLoc = 1881; rType = 0; vrLen = 497; vrLoc = 1510; @@ -5282,7 +5793,7 @@ fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; name = "TestCase.cpp: 221"; rLen = 0; - rLoc = 5265; + rLoc = 5241; rType = 0; vrLen = 501; vrLoc = 5108; @@ -5292,7 +5803,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 864"; rLen = 0; - rLoc = 20355; + rLoc = 19946; rType = 0; vrLen = 541; vrLoc = 20012; @@ -5302,7 +5813,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 204"; rLen = 18; - rLoc = 4506; + rLoc = 4490; rType = 0; vrLen = 680; vrLoc = 4303; @@ -5312,7 +5823,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 379"; rLen = 87; - rLoc = 11302; + rLoc = 11277; rType = 0; vrLen = 848; vrLoc = 10885; @@ -5332,7 +5843,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 243"; rLen = 0; - rLoc = 7826; + rLoc = 7801; rType = 0; vrLen = 958; vrLoc = 7304; @@ -5352,7 +5863,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 204"; rLen = 0; - rLoc = 4504; + rLoc = 4488; rType = 0; vrLen = 667; vrLoc = 4303; @@ -5362,7 +5873,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 480"; rLen = 0; - rLoc = 11262; + rLoc = 15143; rType = 0; vrLen = 434; vrLoc = 10933; @@ -5582,7 +6093,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 813"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 548; vrLoc = 22421; @@ -5612,7 +6123,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 971"; rLen = 0; - rLoc = 32542; + rLoc = 32660; rType = 0; vrLen = 565; vrLoc = 25850; @@ -5652,7 +6163,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 813"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 548; vrLoc = 22421; @@ -5852,7 +6363,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 971"; rLen = 0; - rLoc = 32542; + rLoc = 32660; rType = 0; vrLen = 565; vrLoc = 25850; @@ -6212,7 +6723,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 1067"; rLen = 0; - rLoc = 34908; + rLoc = 35026; rType = 0; vrLen = 873; vrLoc = 27849; @@ -6222,7 +6733,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 1940"; rLen = 0; - rLoc = 58138; + rLoc = 58256; rType = 0; vrLen = 786; vrLoc = 52107; @@ -6232,7 +6743,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 2061"; rLen = 1; - rLoc = 61698; + rLoc = 61816; rType = 0; vrLen = 885; vrLoc = 54109; @@ -6242,7 +6753,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 2061"; rLen = 1; - rLoc = 61698; + rLoc = 61816; rType = 0; vrLen = 885; vrLoc = 54109; @@ -6282,7 +6793,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 2061"; rLen = 1; - rLoc = 61698; + rLoc = 61816; rType = 0; vrLen = 885; vrLoc = 54109; @@ -6342,7 +6853,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 2042"; rLen = 1; - rLoc = 61379; + rLoc = 61497; rType = 0; vrLen = 458; vrLoc = 54536; @@ -6400,7 +6911,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 2042"; rLen = 1; - rLoc = 61379; + rLoc = 61497; rType = 0; vrLen = 458; vrLoc = 54536; @@ -6460,7 +6971,7 @@ comments = "error: 'class dtNavMesh' has no member named 'getPolyByRef'"; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; rLen = 0; - rLoc = 148; + rLoc = 147; rType = 1; }; 6BAF4254121AD7D7008CFCDF /* PBXTextBookmark */ = { @@ -6508,7 +7019,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 829"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 516; vrLoc = 22476; @@ -6531,7 +7042,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 815"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 516; vrLoc = 22476; @@ -6601,7 +7112,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 815"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 516; vrLoc = 22476; @@ -6699,7 +7210,7 @@ 6BAF427A121ADCC2008CFCDF /* DetourAssert.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {933, 480}}"; - sepNavSelRange = "{946, 0}"; + sepNavSelRange = "{0, 1092}"; sepNavVisRange = "{0, 1092}"; }; }; @@ -6798,7 +7309,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 1893"; rLen = 0; - rLoc = 56802; + rLoc = 56920; rType = 0; vrLen = 1207; vrLoc = 0; @@ -7356,7 +7867,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 148"; rLen = 0; - rLoc = 4228; + rLoc = 4203; rType = 0; vrLen = 594; vrLoc = 4104; @@ -7396,7 +7907,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 169"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 641; vrLoc = 4163; @@ -7416,7 +7927,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 169"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 572; vrLoc = 4090; @@ -7436,7 +7947,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 148"; rLen = 0; - rLoc = 4228; + rLoc = 4203; rType = 0; vrLen = 594; vrLoc = 4104; @@ -7456,7 +7967,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 500"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 734; vrLoc = 12922; @@ -7466,7 +7977,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 497"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 764; vrLoc = 12877; @@ -7486,12 +7997,12 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 497"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 556; vrLoc = 12981; }; - 6BAF42D6121AF2AC008CFCDF /* NavMeshTesterTool.cpp:149 */ = { + 6BAF42D6121AF2AC008CFCDF /* NavMeshTesterTool.cpp:148 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -7503,7 +8014,7 @@ functionName = "NavMeshTesterTool::handleUpdate(const float dt)"; hitCount = 3; ignoreCount = 0; - lineNumber = 149; + lineNumber = 148; location = Recast; modificationTime = 303756345.607579; state = 1; @@ -7513,7 +8024,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 493"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 767; vrLoc = 12819; @@ -7523,7 +8034,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 493"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 767; vrLoc = 12819; @@ -7533,7 +8044,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 492"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 836; vrLoc = 12742; @@ -7560,7 +8071,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 493"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 767; vrLoc = 12819; @@ -7580,7 +8091,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 492"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 836; vrLoc = 12742; @@ -7639,7 +8150,7 @@ isa = PBXTextBookmark; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; rLen = 0; - rLoc = 148; + rLoc = 147; rType = 1; }; 6BAF42F0121AF43D008CFCDF /* PBXTextBookmark */ = { @@ -7647,7 +8158,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 497"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 554; vrLoc = 12979; @@ -7667,7 +8178,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 492"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 554; vrLoc = 12979; @@ -7687,7 +8198,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 492"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 554; vrLoc = 12979; @@ -7707,7 +8218,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 207"; rLen = 0; - rLoc = 5601; + rLoc = 5576; rType = 0; vrLen = 821; vrLoc = 5476; @@ -7727,7 +8238,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 490"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 840; vrLoc = 12742; @@ -7747,7 +8258,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 565"; rLen = 0; - rLoc = 4259; + rLoc = 4234; rType = 0; vrLen = 1140; vrLoc = 14317; @@ -7767,7 +8278,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 548"; rLen = 0; - rLoc = 5507; + rLoc = 5482; rType = 0; vrLen = 1097; vrLoc = 14041; @@ -7787,7 +8298,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 226"; rLen = 0; - rLoc = 5507; + rLoc = 5482; rType = 0; vrLen = 876; vrLoc = 5516; @@ -7807,7 +8318,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 207"; rLen = 0; - rLoc = 5601; + rLoc = 5576; rType = 0; vrLen = 821; vrLoc = 5476; @@ -8017,7 +8528,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 480"; rLen = 0; - rLoc = 11262; + rLoc = 15143; rType = 0; vrLen = 874; vrLoc = 10849; @@ -8027,7 +8538,7 @@ comments = "error: 'class dtNavMeshQuery' has no member named 'findPathBegin'"; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; rLen = 1; - rLoc = 736; + rLoc = 735; rType = 1; }; 6BAF4327121AF998008CFCDF /* PBXTextBookmark */ = { @@ -8185,7 +8696,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 148"; rLen = 0; - rLoc = 4219; + rLoc = 4194; rType = 0; vrLen = 442; vrLoc = 3910; @@ -8235,7 +8746,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 147"; rLen = 1; - rLoc = 4193; + rLoc = 4168; rType = 0; vrLen = 481; vrLoc = 3933; @@ -8305,7 +8816,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 480"; rLen = 0; - rLoc = 11262; + rLoc = 15143; rType = 0; vrLen = 874; vrLoc = 10849; @@ -8315,7 +8826,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 737"; rLen = 0; - rLoc = 20098; + rLoc = 20073; rType = 0; vrLen = 684; vrLoc = 19661; @@ -8325,7 +8836,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 215"; rLen = 0; - rLoc = 5747; + rLoc = 5722; rType = 0; vrLen = 852; vrLoc = 5645; @@ -8345,7 +8856,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 215"; rLen = 0; - rLoc = 5747; + rLoc = 5722; rType = 0; vrLen = 852; vrLoc = 5645; @@ -8355,7 +8866,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 894"; rLen = 0; - rLoc = 23399; + rLoc = 23517; rType = 0; vrLen = 640; vrLoc = 23011; @@ -8365,16 +8876,4902 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 887"; rLen = 0; - rLoc = 23224; + rLoc = 23342; rType = 0; vrLen = 629; vrLoc = 23011; }; + 6BAF4350121B02B2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 874"; + rLen = 0; + rLoc = 22976; + rType = 0; + vrLen = 687; + vrLoc = 22656; + }; + 6BAF4353121B0D2C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 878"; + rLen = 0; + rLoc = 23060; + rType = 0; + vrLen = 687; + vrLoc = 22656; + }; + 6BAF437A121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 878"; + rLen = 0; + rLoc = 23060; + rType = 0; + vrLen = 687; + vrLoc = 22656; + }; + 6BAF437B121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; + name = "DetourNavMeshQuery.h: 113"; + rLen = 644; + rLoc = 4496; + rType = 0; + vrLen = 1376; + vrLoc = 3766; + }; + 6BAF437C121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 778"; + rLen = 0; + rLoc = 20949; + rType = 0; + vrLen = 895; + vrLoc = 20555; + }; + 6BAF437D121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 37"; + rLen = 0; + rLoc = 1347; + rType = 0; + vrLen = 639; + vrLoc = 946; + }; + 6BAF437E121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */; + name = "RecastTimer.h: 31"; + rLen = 0; + rLoc = 1170; + rType = 0; + vrLen = 948; + vrLoc = 249; + }; + 6BAF437F121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; + name = "RecastTimer.cpp: 19"; + rLen = 0; + rLoc = 926; + rType = 0; + vrLen = 1207; + vrLoc = 0; + }; + 6BAF4380121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; + name = "RecastLog.h: 22"; + rLen = 0; + rLoc = 969; + rType = 0; + vrLen = 698; + vrLoc = 521; + }; + 6BAF4381121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; + name = "RecastLog.cpp: 23"; + rLen = 0; + rLoc = 987; + rType = 0; + vrLen = 481; + vrLoc = 789; + }; + 6BAF4382121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 263"; + rLen = 0; + rLoc = 6523; + rType = 0; + vrLen = 689; + vrLoc = 6293; + }; + 6BAF4383121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 361"; + rLen = 0; + rLoc = 9649; + rType = 0; + vrLen = 608; + vrLoc = 9244; + }; + 6BAF4384121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 338"; + rLen = 0; + rLoc = 3921; + rType = 0; + vrLen = 968; + vrLoc = 8949; + }; + 6BAF4385121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 51"; + rLen = 0; + rLoc = 1548; + rType = 0; + vrLen = 770; + vrLoc = 1166; + }; + 6BAF4386121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 172"; + rLen = 0; + rLoc = 1078; + rType = 0; + vrLen = 793; + vrLoc = 4668; + }; + 6BAF4387121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 411"; + rLen = 0; + rLoc = 1146; + rType = 0; + vrLen = 903; + vrLoc = 10079; + }; + 6BAF4388121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 1230"; + rLen = 44; + rLoc = 30582; + rType = 0; + vrLen = 979; + vrLoc = 30101; + }; + 6BAF4389121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 803"; + rLen = 35; + rLoc = 21520; + rType = 0; + vrLen = 968; + vrLoc = 20897; + }; + 6BAF438A121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 1168"; + rLen = 0; + rLoc = 12698; + rType = 0; + vrLen = 868; + vrLoc = 30524; + }; + 6BAF438B121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 878"; + rLen = 0; + rLoc = 23060; + rType = 0; + vrLen = 687; + vrLoc = 22656; + }; + 6BAF438C121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; + name = "DetourNavMeshQuery.h: 113"; + rLen = 644; + rLoc = 4496; + rType = 0; + vrLen = 1376; + vrLoc = 3766; + }; + 6BAF438D121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 778"; + rLen = 0; + rLoc = 20949; + rType = 0; + vrLen = 895; + vrLoc = 20555; + }; + 6BAF438E121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 620"; + rLen = 0; + rLoc = 25814; + rType = 0; + vrLen = 1503; + vrLoc = 22790; + }; + 6BAF438F121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 504"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 1587; + vrLoc = 17647; + }; + 6BAF4390121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 273"; + rLen = 0; + rLoc = 3921; + rType = 0; + vrLen = 942; + vrLoc = 6762; + }; + 6BAF4391121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */; + name = "RecastTimer.h: 28"; + rLen = 0; + rLoc = 1111; + rType = 0; + vrLen = 942; + vrLoc = 249; + }; + 6BAF4392121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; + name = "RecastTimer.cpp: 44"; + rLen = 0; + rLoc = 1128; + rType = 0; + vrLen = 460; + vrLoc = 970; + }; + 6BAF4393121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */; + name = "RecastTimer.h: 28"; + rLen = 0; + rLoc = 1111; + rType = 0; + vrLen = 984; + vrLoc = 207; + }; + 6BAF4394121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 503"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 1235; + vrLoc = 17821; + }; + 6BAF4395121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 335"; + rLen = 0; + rLoc = 3921; + rType = 0; + vrLen = 828; + vrLoc = 9176; + }; + 6BAF4396121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 180"; + rLen = 0; + rLoc = 5415; + rType = 0; + vrLen = 674; + vrLoc = 4888; + }; + 6BAF4397121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */; + name = "RecastTimer.h: 21"; + rLen = 0; + rLoc = 988; + rType = 0; + vrLen = 984; + vrLoc = 207; + }; + 6BAF4398121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; + name = "RecastTimer.cpp: 55"; + rLen = 0; + rLoc = 1564; + rType = 0; + vrLen = 557; + vrLoc = 789; + }; + 6BAF4399121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 338"; + rLen = 0; + rLoc = 3921; + rType = 0; + vrLen = 858; + vrLoc = 9158; + }; + 6BAF439A121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 461"; + rLen = 0; + rLoc = 12455; + rType = 0; + vrLen = 875; + vrLoc = 12242; + }; + 6BAF439B121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 1126"; + rLen = 0; + rLoc = 6523; + rType = 0; + vrLen = 755; + vrLoc = 29444; + }; + 6BAF439C121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 454"; + rLen = 0; + rLoc = 12351; + rType = 0; + vrLen = 668; + vrLoc = 12242; + }; + 6BAF439D121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 162"; + rLen = 0; + rLoc = 1078; + rType = 0; + vrLen = 666; + vrLoc = 4836; + }; + 6BAF439E121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 336"; + rLen = 0; + rLoc = 3921; + rType = 0; + vrLen = 838; + vrLoc = 9098; + }; + 6BAF439F121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */; + name = "RecastTimer.h: 29"; + rLen = 18; + rLoc = 1116; + rType = 0; + vrLen = 984; + vrLoc = 207; + }; + 6BAF43A0121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; + name = "RecastTimer.cpp: 45"; + rLen = 0; + rLoc = 1375; + rType = 0; + vrLen = 455; + vrLoc = 1178; + }; + 6BAF43A1121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 242"; + rLen = 0; + rLoc = 5884; + rType = 0; + vrLen = 852; + vrLoc = 5593; + }; + 6BAF43A2121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 342"; + rLen = 0; + rLoc = 3921; + rType = 0; + vrLen = 843; + vrLoc = 9134; + }; + 6BAF43A3121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 168"; + rLen = 0; + rLoc = 1078; + rType = 0; + vrLen = 708; + vrLoc = 4794; + }; + 6BAF43A4121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 463"; + rLen = 1; + rLoc = 12460; + rType = 0; + vrLen = 668; + vrLoc = 12242; + }; + 6BAF43A5121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 1196"; + rLen = 0; + rLoc = 6523; + rType = 0; + vrLen = 707; + vrLoc = 29444; + }; + 6BAF43A6121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 37"; + rLen = 0; + rLoc = 1347; + rType = 0; + vrLen = 639; + vrLoc = 946; + }; + 6BAF43A7121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */; + name = "RecastTimer.h: 31"; + rLen = 0; + rLoc = 1170; + rType = 0; + vrLen = 948; + vrLoc = 249; + }; + 6BAF43A8121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; + name = "RecastTimer.cpp: 19"; + rLen = 0; + rLoc = 926; + rType = 0; + vrLen = 1038; + vrLoc = 0; + }; + 6BAF43A9121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 32"; + rLen = 0; + rLoc = 1877; + rType = 0; + vrLen = 955; + vrLoc = 842; + }; + 6BAF43AA121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; + name = "RecastLog.cpp: 61"; + rLen = 0; + rLoc = 1670; + rType = 0; + vrLen = 581; + vrLoc = 1228; + }; + 6BAF43AB121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 35"; + rLen = 0; + rLoc = 1142; + rType = 0; + vrLen = 684; + vrLoc = 842; + }; + 6BAF43AC121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; + name = "RecastTimer.cpp: 19"; + rLen = 0; + rLoc = 926; + rType = 0; + vrLen = 1207; + vrLoc = 0; + }; + 6BAF43AD121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; + name = "RecastLog.cpp: 61"; + rLen = 0; + rLoc = 1670; + rType = 0; + vrLen = 581; + vrLoc = 1228; + }; + 6BAF43AE121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; + name = "RecastLog.h: 52"; + rLen = 526; + rLoc = 1657; + rType = 0; + vrLen = 759; + vrLoc = 1472; + }; + 6BAF43AF121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 68"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 740; + vrLoc = 1496; + }; + 6BAF43B0121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; + name = "RecastLog.h: 22"; + rLen = 0; + rLoc = 969; + rType = 0; + vrLen = 698; + vrLoc = 521; + }; + 6BAF43B1121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; + name = "RecastLog.cpp: 23"; + rLen = 0; + rLoc = 987; + rType = 0; + vrLen = 481; + vrLoc = 789; + }; + 6BAF43B2121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 253"; + rLen = 0; + rLoc = 5884; + rType = 0; + vrLen = 1196; + vrLoc = 5845; + }; + 6BAF43B3121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 332"; + rLen = 0; + rLoc = 3921; + rType = 0; + vrLen = 1143; + vrLoc = 8834; + }; + 6BAF43B4121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 18"; + rLen = 0; + rLoc = 923; + rType = 0; + vrLen = 1367; + vrLoc = 0; + }; + 6BAF43B5121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 619"; + rLen = 0; + rLoc = 15806; + rType = 0; + vrLen = 975; + vrLoc = 15775; + }; + 6BAF43B6121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 263"; + rLen = 0; + rLoc = 6523; + rType = 0; + vrLen = 689; + vrLoc = 6293; + }; + 6BAF43B7121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 366"; + rLen = 1; + rLoc = 9770; + rType = 0; + vrLen = 735; + vrLoc = 9235; + }; + 6BAF43B8121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 155"; + rLen = 1; + rLoc = 3902; + rType = 0; + vrLen = 683; + vrLoc = 3774; + }; + 6BAF43B9121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 22"; + rLen = 0; + rLoc = 1006; + rType = 0; + vrLen = 1336; + vrLoc = 0; + }; + 6BAF43BA121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 60"; + rLen = 0; + rLoc = 1874; + rType = 0; + vrLen = 865; + vrLoc = 1370; + }; + 6BAF43BB121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 361"; + rLen = 0; + rLoc = 9649; + rType = 0; + vrLen = 608; + vrLoc = 9244; + }; + 6BAF43BC121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 338"; + rLen = 0; + rLoc = 3921; + rType = 0; + vrLen = 968; + vrLoc = 8949; + }; + 6BAF43BD121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 172"; + rLen = 0; + rLoc = 1078; + rType = 0; + vrLen = 790; + vrLoc = 4671; + }; + 6BAF43BE121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 417"; + rLen = 96; + rLoc = 11351; + rType = 0; + vrLen = 678; + vrLoc = 10727; + }; + 6BAF43BF121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 172"; + rLen = 0; + rLoc = 1078; + rType = 0; + vrLen = 793; + vrLoc = 4668; + }; + 6BAF43C0121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 411"; + rLen = 0; + rLoc = 1146; + rType = 0; + vrLen = 903; + vrLoc = 10079; + }; + 6BAF43C1121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 1230"; + rLen = 44; + rLoc = 30582; + rType = 0; + vrLen = 979; + vrLoc = 30101; + }; + 6BAF43C2121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 802"; + rLen = 1; + rLoc = 21518; + rType = 0; + vrLen = 960; + vrLoc = 20905; + }; + 6BAF43C3121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 803"; + rLen = 35; + rLoc = 21520; + rType = 0; + vrLen = 968; + vrLoc = 20897; + }; + 6BAF43C4121C1F3D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 1168"; + rLen = 0; + rLoc = 12698; + rType = 0; + vrLen = 899; + vrLoc = 30440; + }; + 6BAF43CA121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 1168"; + rLen = 0; + rLoc = 12698; + rType = 0; + vrLen = 835; + vrLoc = 30504; + }; + 6BAF43CB121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 1200"; + rLen = 0; + rLoc = 6523; + rType = 0; + vrLen = 632; + vrLoc = 29617; + }; + 6BAF43CC121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 127"; + rLen = 0; + rLoc = 3155; + rType = 0; + vrLen = 299; + vrLoc = 3106; + }; + 6BAF43CD121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 31"; + rLen = 0; + rLoc = 1150; + rType = 0; + vrLen = 405; + vrLoc = 1089; + }; + 6BAF43CE121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 64"; + rLen = 0; + rLoc = 1850; + rType = 0; + vrLen = 438; + vrLoc = 1597; + }; + 6BAF43CF121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; + name = "RecastLog.h: 22"; + rLen = 0; + rLoc = 969; + rType = 0; + vrLen = 475; + vrLoc = 596; + }; + 6BAF43D0121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 51"; + rLen = 0; + rLoc = 1548; + rType = 0; + vrLen = 595; + vrLoc = 1166; + }; + 6BAF43D1121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 1171"; + rLen = 0; + rLoc = 12698; + rType = 0; + vrLen = 899; + vrLoc = 30440; + }; + 6BAF43D2121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 1200"; + rLen = 0; + rLoc = 6523; + rType = 0; + vrLen = 632; + vrLoc = 29617; + }; + 6BAF43D3121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 127"; + rLen = 0; + rLoc = 3155; + rType = 0; + vrLen = 299; + vrLoc = 3106; + }; + 6BAF43D4121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 31"; + rLen = 0; + rLoc = 1150; + rType = 0; + vrLen = 408; + vrLoc = 1089; + }; + 6BAF43D5121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 64"; + rLen = 0; + rLoc = 1850; + rType = 0; + vrLen = 422; + vrLoc = 1599; + }; + 6BAF43D6121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 31"; + rLen = 0; + rLoc = 1150; + rType = 0; + vrLen = 405; + vrLoc = 1089; + }; + 6BAF43D7121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 64"; + rLen = 0; + rLoc = 1850; + rType = 0; + vrLen = 438; + vrLoc = 1597; + }; + 6BAF43D8121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; + name = "RecastLog.h: 22"; + rLen = 0; + rLoc = 969; + rType = 0; + vrLen = 475; + vrLoc = 596; + }; + 6BAF43D9121C2164008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 71"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 545; + vrLoc = 1703; + }; + 6BAF43DE121C225B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 64"; + rLen = 27; + rLoc = 1850; + rType = 0; + vrLen = 436; + vrLoc = 1599; + }; + 6BAF43DF121C225B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 33"; + rLen = 27; + rLoc = 1177; + rType = 0; + vrLen = 408; + vrLoc = 1077; + }; + 6BAF43E0121C225B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 71"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 589; + vrLoc = 1731; + }; + 6BAF43E1121C225B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: request for member 'getMessageCount' in 'log', which is of non-class type 'double ()(double)'"; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + rLen = 1; + rLoc = 809; + rType = 1; + }; + 6BAF43E2121C225B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 73"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 617; + vrLoc = 1703; + }; + 6BAF43E3121C225B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 33"; + rLen = 0; + rLoc = 1177; + rType = 0; + vrLen = 408; + vrLoc = 1077; + }; + 6BAF43E4121C225B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 64"; + rLen = 27; + rLoc = 1850; + rType = 0; + vrLen = 436; + vrLoc = 1599; + }; + 6BAF43E5121C225B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 33"; + rLen = 27; + rLoc = 1177; + rType = 0; + vrLen = 408; + vrLoc = 1077; + }; + 6BAF43E6121C225B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 71"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 589; + vrLoc = 1731; + }; + 6BAF43E7121C225B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 814"; + rLen = 0; + rLoc = 18802; + rType = 0; + vrLen = 427; + vrLoc = 18610; + }; + 6BAF43F8121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 532"; + rLen = 80; + rLoc = 18409; + rType = 0; + vrLen = 420; + vrLoc = 12042; + }; + 6BAF43F9121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 125"; + rLen = 0; + rLoc = 2757; + rType = 0; + vrLen = 633; + vrLoc = 3442; + }; + 6BAF43FA121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 145"; + rLen = 0; + rLoc = 1409; + rType = 0; + vrLen = 383; + vrLoc = 2870; + }; + 6BAF43FB121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */; + name = "ChunkyTriMesh.cpp: 35"; + rLen = 1; + rLoc = 1247; + rType = 0; + vrLen = 514; + vrLoc = 970; + }; + 6BAF43FC121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 60"; + rLen = 0; + rLoc = 1925; + rType = 0; + vrLen = 787; + vrLoc = 1577; + }; + 6BAF43FD121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 200"; + rLen = 0; + rLoc = 4816; + rType = 0; + vrLen = 477; + vrLoc = 4518; + }; + 6BAF43FE121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 74"; + rLen = 0; + rLoc = 1849; + rType = 0; + vrLen = 527; + vrLoc = 1491; + }; + 6BAF43FF121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 165"; + rLen = 0; + rLoc = 3478; + rType = 0; + vrLen = 505; + vrLoc = 3326; + }; + 6BAF4400121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: no matching function for call to 'TestCase::doTests(dtNavMesh*, dtNavMeshQuery*)'"; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + rLen = 1; + rLoc = 854; + rType = 1; + }; + 6BAF4401121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 62"; + rLen = 0; + rLoc = 1942; + rType = 0; + vrLen = 653; + vrLoc = 1585; + }; + 6BAF4402121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 532"; + rLen = 80; + rLoc = 18409; + rType = 0; + vrLen = 420; + vrLoc = 12042; + }; + 6BAF4403121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 125"; + rLen = 0; + rLoc = 2757; + rType = 0; + vrLen = 693; + vrLoc = 3442; + }; + 6BAF4404121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 144"; + rLen = 0; + rLoc = 1409; + rType = 0; + vrLen = 394; + vrLoc = 2870; + }; + 6BAF4405121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 125"; + rLen = 0; + rLoc = 2757; + rType = 0; + vrLen = 633; + vrLoc = 3442; + }; + 6BAF4406121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 145"; + rLen = 0; + rLoc = 1409; + rType = 0; + vrLen = 383; + vrLoc = 2870; + }; + 6BAF4407121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 143"; + rLen = 0; + rLoc = 3655; + rType = 0; + vrLen = 567; + vrLoc = 3527; + }; + 6BAF4408121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */; + name = "ChunkyTriMesh.cpp: 35"; + rLen = 1; + rLoc = 1247; + rType = 0; + vrLen = 514; + vrLoc = 970; + }; + 6BAF4409121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 126"; + rLen = 0; + rLoc = 3155; + rType = 0; + vrLen = 410; + vrLoc = 3082; + }; + 6BAF440A121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 74"; + rLen = 0; + rLoc = 2645; + rType = 0; + vrLen = 1303; + vrLoc = 1856; + }; + 6BAF440B121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 122"; + rLen = 2; + rLoc = 3153; + rType = 0; + vrLen = 341; + vrLoc = 3059; + }; + 6BAF440C121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 58"; + rLen = 0; + rLoc = 1842; + rType = 0; + vrLen = 771; + vrLoc = 1577; + }; + 6BAF440D121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 203"; + rLen = 0; + rLoc = 4859; + rType = 0; + vrLen = 447; + vrLoc = 4518; + }; + 6BAF440E121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 60"; + rLen = 0; + rLoc = 1925; + rType = 0; + vrLen = 787; + vrLoc = 1577; + }; + 6BAF440F121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 200"; + rLen = 0; + rLoc = 4816; + rType = 0; + vrLen = 477; + vrLoc = 4518; + }; + 6BAF4410121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 803"; + rLen = 0; + rLoc = 18411; + rType = 0; + vrLen = 510; + vrLoc = 18583; + }; + 6BAF4411121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 231"; + rLen = 1; + rLoc = 5431; + rType = 0; + vrLen = 609; + vrLoc = 5084; + }; + 6BAF4412121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 23"; + rLen = 0; + rLoc = 1006; + rType = 0; + vrLen = 511; + vrLoc = 1491; + }; + 6BAF4413121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 160"; + rLen = 21; + rLoc = 3355; + rType = 0; + vrLen = 505; + vrLoc = 3326; + }; + 6BAF4414121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; + name = "TestCase.h: 74"; + rLen = 0; + rLoc = 1849; + rType = 0; + vrLen = 527; + vrLoc = 1491; + }; + 6BAF4415121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; + name = "TestCase.cpp: 165"; + rLen = 0; + rLoc = 3478; + rType = 0; + vrLen = 505; + vrLoc = 3326; + }; + 6BAF4416121C241D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 861"; + rLen = 1; + rLoc = 19816; + rType = 0; + vrLen = 547; + vrLoc = 19844; + }; + 6BAF4420121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 866"; + rLen = 0; + rLoc = 19891; + rType = 0; + vrLen = 547; + vrLoc = 19844; + }; + 6BAF4421121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */; + name = "MeshLoaderObj.cpp: 192"; + rLen = 0; + rLoc = 4217; + rType = 0; + vrLen = 550; + vrLoc = 3888; + }; + 6BAF4422121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 60"; + rLen = 0; + rLoc = 1842; + rType = 0; + vrLen = 774; + vrLoc = 1577; + }; + 6BAF4423121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 196"; + rLen = 0; + rLoc = 4716; + rType = 0; + vrLen = 416; + vrLoc = 4549; + }; + 6BAF4424121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 38"; + rLen = 0; + rLoc = 1516; + rType = 0; + vrLen = 626; + vrLoc = 1116; + }; + 6BAF4425121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 148"; + rLen = 0; + rLoc = 1472; + rType = 0; + vrLen = 360; + vrLoc = 2866; + }; + 6BAF4426121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'rcGetPerformanceTimer' was not declared in this scope"; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + rLen = 0; + rLoc = 815; + rType = 1; + }; + 6BAF4427121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 866"; + rLen = 0; + rLoc = 19891; + rType = 0; + vrLen = 547; + vrLoc = 19844; + }; + 6BAF4428121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */; + name = "MeshLoaderObj.cpp: 192"; + rLen = 0; + rLoc = 4217; + rType = 0; + vrLen = 550; + vrLoc = 3888; + }; + 6BAF4429121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 60"; + rLen = 0; + rLoc = 1842; + rType = 0; + vrLen = 774; + vrLoc = 1577; + }; + 6BAF442A121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 196"; + rLen = 0; + rLoc = 4716; + rType = 0; + vrLen = 416; + vrLoc = 4549; + }; + 6BAF442B121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 38"; + rLen = 0; + rLoc = 1516; + rType = 0; + vrLen = 626; + vrLoc = 1116; + }; + 6BAF442C121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 148"; + rLen = 0; + rLoc = 1472; + rType = 0; + vrLen = 360; + vrLoc = 2866; + }; + 6BAF442D121C25E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 1006"; + rLen = 0; + rLoc = 32975; + rType = 0; + vrLen = 1658; + vrLoc = 28808; + }; + 6BAF4432121C2A3F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 1045"; + rLen = 0; + rLoc = 33187; + rType = 0; + vrLen = 1658; + vrLoc = 28808; + }; + 6BAF4433121C2A3F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 395"; + rLen = 0; + rLoc = 11795; + rType = 0; + vrLen = 1096; + vrLoc = 11446; + }; + 6BAF4434121C2A3F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 382"; + rLen = 87; + rLoc = 11277; + rType = 0; + vrLen = 1090; + vrLoc = 10817; + }; + 6BAF4435121C2A3F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 1045"; + rLen = 0; + rLoc = 33187; + rType = 0; + vrLen = 1658; + vrLoc = 28808; + }; + 6BAF4436121C2A3F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 395"; + rLen = 0; + rLoc = 11795; + rType = 0; + vrLen = 1096; + vrLoc = 11446; + }; + 6BAF4437121C2A3F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 773"; + rLen = 0; + rLoc = 21404; + rType = 0; + vrLen = 1046; + vrLoc = 22028; + }; + 6BAF443B121C2E5D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1140"; + rLen = 0; + rLoc = 33169; + rType = 0; + vrLen = 712; + vrLoc = 36141; + }; + 6BAF443C121C2E5D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'rcGetLog' was not declared in this scope"; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + rLen = 1; + rLoc = 377; + rType = 1; + }; + 6BAF443D121C2E5D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1140"; + rLen = 0; + rLoc = 33169; + rType = 0; + vrLen = 712; + vrLoc = 36141; + }; + 6BAF443E121C2E5D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 381"; + rLen = 0; + rLoc = 8305; + rType = 0; + vrLen = 521; + vrLoc = 8041; + }; + 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {933, 1424}}"; + sepNavSelRange = "{1181, 0}"; + sepNavVisRange = "{967, 881}"; + }; + }; + 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {933, 4368}}"; + sepNavSelRange = "{2996, 0}"; + sepNavVisRange = "{2533, 756}"; + }; + }; + 6BAF4444121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 369"; + rLen = 0; + rLoc = 8080; + rType = 0; + vrLen = 604; + vrLoc = 7942; + }; + 6BAF4445121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 350"; + rLen = 0; + rLoc = 10234; + rType = 0; + vrLen = 671; + vrLoc = 9986; + }; + 6BAF4446121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 36"; + rLen = 0; + rLoc = 1276; + rType = 0; + vrLen = 540; + vrLoc = 1108; + }; + 6BAF4447121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 22"; + rLen = 0; + rLoc = 971; + rType = 0; + vrLen = 681; + vrLoc = 789; + }; + 6BAF4448121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 62"; + rLen = 12; + rLoc = 1862; + rType = 0; + vrLen = 1194; + vrLoc = 1761; + }; + 6BAF4449121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; + name = "RecastTimer.cpp: 19"; + rLen = 715; + rLoc = 924; + rType = 0; + vrLen = 519; + vrLoc = 1121; + }; + 6BAF444A121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; + name = "RecastLog.h: 38"; + rLen = 0; + rLoc = 1219; + rType = 0; + vrLen = 732; + vrLoc = 989; + }; + 6BAF444B121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; + name = "RecastLog.cpp: 24"; + rLen = 0; + rLoc = 1014; + rType = 0; + vrLen = 512; + vrLoc = 923; + }; + 6BAF444C121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 89"; + rLen = 0; + rLoc = 1639; + rType = 0; + vrLen = 664; + vrLoc = 1187; + }; + 6BAF444D121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 44"; + rLen = 0; + rLoc = 1808; + rType = 0; + vrLen = 866; + vrLoc = 991; + }; + 6BAF444E121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 224"; + rLen = 0; + rLoc = 5499; + rType = 0; + vrLen = 741; + vrLoc = 5099; + }; + 6BAF444F121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 369"; + rLen = 0; + rLoc = 8080; + rType = 0; + vrLen = 604; + vrLoc = 7942; + }; + 6BAF4450121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 350"; + rLen = 0; + rLoc = 10234; + rType = 0; + vrLen = 671; + vrLoc = 9986; + }; + 6BAF4451121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 148"; + rLen = 0; + rLoc = 1472; + rType = 0; + vrLen = 496; + vrLoc = 2781; + }; + 6BAF4452121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 36"; + rLen = 0; + rLoc = 1276; + rType = 0; + vrLen = 540; + vrLoc = 1108; + }; + 6BAF4453121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 158"; + rLen = 0; + rLoc = 4036; + rType = 0; + vrLen = 627; + vrLoc = 3656; + }; + 6BAF4454121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; + name = "RecastTimer.cpp: 19"; + rLen = 715; + rLoc = 924; + rType = 0; + vrLen = 519; + vrLoc = 1121; + }; + 6BAF4455121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 30"; + rLen = 14; + rLoc = 1265; + rType = 0; + vrLen = 811; + vrLoc = 842; + }; + 6BAF4456121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 99"; + rLen = 7; + rLoc = 1822; + rType = 0; + vrLen = 519; + vrLoc = 1516; + }; + 6BAF4457121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 224"; + rLen = 0; + rLoc = 5499; + rType = 0; + vrLen = 741; + vrLoc = 5099; + }; + 6BAF4458121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 128"; + rLen = 0; + rLoc = 2722; + rType = 0; + vrLen = 505; + vrLoc = 1790; + }; + 6BAF4459121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 25"; + rLen = 32; + rLoc = 1149; + rType = 0; + vrLen = 824; + vrLoc = 842; + }; + 6BAF445A121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 19"; + rLen = 0; + rLoc = 457; + rType = 0; + vrLen = 489; + vrLoc = 274; + }; + 6BAF445B121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 30"; + rLen = 14; + rLoc = 1265; + rType = 0; + vrLen = 824; + vrLoc = 842; + }; + 6BAF445C121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 19"; + rLen = 0; + rLoc = 453; + rType = 0; + vrLen = 442; + vrLoc = 274; + }; + 6BAF445D121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 33"; + rLen = 14; + rLoc = 1361; + rType = 0; + vrLen = 824; + vrLoc = 842; + }; + 6BAF445E121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 89"; + rLen = 0; + rLoc = 1639; + rType = 0; + vrLen = 664; + vrLoc = 1187; + }; + 6BAF445F121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 44"; + rLen = 0; + rLoc = 1808; + rType = 0; + vrLen = 866; + vrLoc = 991; + }; + 6BAF4460121C40AC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 63"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 842; + vrLoc = 1406; + }; + 6BAF446B121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 58"; + rLen = 0; + rLoc = 1868; + rType = 0; + vrLen = 842; + vrLoc = 1406; + }; + 6BAF446C121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 22"; + rLen = 0; + rLoc = 971; + rType = 0; + vrLen = 681; + vrLoc = 789; + }; + 6BAF446D121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 50"; + rLen = 0; + rLoc = 2288; + rType = 0; + vrLen = 872; + vrLoc = 1025; + }; + 6BAF446E121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF410CFEC4500F74F2B /* RecastDump.h */; + name = "RecastDump.h: 41"; + rLen = 0; + rLoc = 1707; + rType = 0; + vrLen = 1132; + vrLoc = 596; + }; + 6BAF446F121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 138"; + rLen = 0; + rLoc = 3070; + rType = 0; + vrLen = 609; + vrLoc = 2094; + }; + 6BAF4470121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 64"; + rLen = 27; + rLoc = 1850; + rType = 0; + vrLen = 517; + vrLoc = 1593; + }; + 6BAF4471121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 656"; + rLen = 0; + rLoc = 20166; + rType = 0; + vrLen = 618; + vrLoc = 19716; + }; + 6BAF4472121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 958"; + rLen = 0; + rLoc = 21616; + rType = 0; + vrLen = 784; + vrLoc = 24603; + }; + 6BAF4473121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1082"; + rLen = 0; + rLoc = 21404; + rType = 0; + vrLen = 900; + vrLoc = 30755; + }; + 6BAF4474121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 385"; + rLen = 0; + rLoc = 1146; + rType = 0; + vrLen = 721; + vrLoc = 10259; + }; + 6BAF4475121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 1228"; + rLen = 0; + rLoc = 16281; + rType = 0; + vrLen = 953; + vrLoc = 30132; + }; + 6BAF4476121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 73"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 755; + vrLoc = 1799; + }; + 6BAF4477121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'totalTileUsec' was not declared in this scope"; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + rLen = 1; + rLoc = 410; + rType = 1; + }; + 6BAF4478121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 58"; + rLen = 0; + rLoc = 1868; + rType = 0; + vrLen = 842; + vrLoc = 1406; + }; + 6BAF4479121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 45"; + rLen = 0; + rLoc = 1939; + rType = 0; + vrLen = 916; + vrLoc = 1095; + }; + 6BAF447A121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 137"; + rLen = 0; + rLoc = 3006; + rType = 0; + vrLen = 578; + vrLoc = 2021; + }; + 6BAF447B121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 25"; + rLen = 0; + rLoc = 1149; + rType = 0; + vrLen = 872; + vrLoc = 947; + }; + 6BAF447C121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 141"; + rLen = 0; + rLoc = 3013; + rType = 0; + vrLen = 600; + vrLoc = 2054; + }; + 6BAF447D121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 50"; + rLen = 0; + rLoc = 2288; + rType = 0; + vrLen = 905; + vrLoc = 992; + }; + 6BAF447E121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 22"; + rLen = 0; + rLoc = 971; + rType = 0; + vrLen = 681; + vrLoc = 789; + }; + 6BAF447F121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 143"; + rLen = 0; + rLoc = 3099; + rType = 0; + vrLen = 564; + vrLoc = 2054; + }; + 6BAF4480121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 50"; + rLen = 0; + rLoc = 2288; + rType = 0; + vrLen = 872; + vrLoc = 1025; + }; + 6BAF4481121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 143"; + rLen = 0; + rLoc = 3099; + rType = 0; + vrLen = 597; + vrLoc = 2021; + }; + 6BAF4482121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 50"; + rLen = 0; + rLoc = 2288; + rType = 0; + vrLen = 872; + vrLoc = 1025; + }; + 6BAF4483121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 101"; + rLen = 0; + rLoc = 1887; + rType = 0; + vrLen = 585; + vrLoc = 1458; + }; + 6BAF4484121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 1009"; + rLen = 181; + rLoc = 33006; + rType = 0; + vrLen = 2696; + vrLoc = 27795; + }; + 6BAF4485121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF410CFEC4500F74F2B /* RecastDump.h */; + name = "RecastDump.h: 40"; + rLen = 0; + rLoc = 1732; + rType = 0; + vrLen = 1217; + vrLoc = 446; + }; + 6BAF4486121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF410CFEC4500F74F2B /* RecastDump.h */; + name = "RecastDump.h: 41"; + rLen = 0; + rLoc = 1707; + rType = 0; + vrLen = 1031; + vrLoc = 672; + }; + 6BAF4487121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF410CFEC4500F74F2B /* RecastDump.h */; + name = "RecastDump.h: 41"; + rLen = 0; + rLoc = 1707; + rType = 0; + vrLen = 1132; + vrLoc = 596; + }; + 6BAF4488121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 1009"; + rLen = 181; + rLoc = 33006; + rType = 0; + vrLen = 686; + vrLoc = 26306; + }; + 6BAF4489121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1093"; + rLen = 0; + rLoc = 32909; + rType = 0; + vrLen = 732; + vrLoc = 32368; + }; + 6BAF448A121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 1010"; + rLen = 0; + rLoc = 33115; + rType = 0; + vrLen = 719; + vrLoc = 26276; + }; + 6BAF448B121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 64"; + rLen = 27; + rLoc = 1850; + rType = 0; + vrLen = 517; + vrLoc = 1593; + }; + 6BAF448C121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 656"; + rLen = 0; + rLoc = 20166; + rType = 0; + vrLen = 618; + vrLoc = 19716; + }; + 6BAF448D121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 958"; + rLen = 0; + rLoc = 21616; + rType = 0; + vrLen = 784; + vrLoc = 24603; + }; + 6BAF448E121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1082"; + rLen = 0; + rLoc = 21404; + rType = 0; + vrLen = 900; + vrLoc = 30755; + }; + 6BAF448F121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 385"; + rLen = 0; + rLoc = 1146; + rType = 0; + vrLen = 721; + vrLoc = 10259; + }; + 6BAF4490121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 50"; + rLen = 55; + rLoc = 1494; + rType = 0; + vrLen = 612; + vrLoc = 1286; + }; + 6BAF4491121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 1228"; + rLen = 0; + rLoc = 16281; + rType = 0; + vrLen = 953; + vrLoc = 30132; + }; + 6BAF4492121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 73"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 755; + vrLoc = 1799; + }; + 6BAF4493121C4895008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 412"; + rLen = 0; + rLoc = 10465; + rType = 0; + vrLen = 1124; + vrLoc = 10112; + }; + 6BAF4495121C48D7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 412"; + rLen = 0; + rLoc = 10465; + rType = 0; + vrLen = 1161; + vrLoc = 10111; + }; + 6BAF4497121C4930008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 412"; + rLen = 0; + rLoc = 10465; + rType = 0; + vrLen = 1179; + vrLoc = 10111; + }; + 6BAF4498121C498D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 412"; + rLen = 0; + rLoc = 10465; + rType = 0; + vrLen = 1106; + vrLoc = 10111; + }; + 6BAF449A121C49A7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 412"; + rLen = 0; + rLoc = 10465; + rType = 0; + vrLen = 1081; + vrLoc = 10111; + }; + 6BAF449C121C49CF008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 412"; + rLen = 0; + rLoc = 10465; + rType = 0; + vrLen = 1080; + vrLoc = 10111; + }; + 6BAF449D121C49F4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1242"; + rLen = 0; + rLoc = 35252; + rType = 0; + vrLen = 330; + vrLoc = 12829; + }; + 6BAF449E121C49F4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 411"; + rLen = 0; + rLoc = 10463; + rType = 0; + vrLen = 453; + vrLoc = 10109; + }; + 6BAF449F121C4A43008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 411"; + rLen = 0; + rLoc = 10463; + rType = 0; + vrLen = 1634; + vrLoc = 10498; + }; + 6BAF44A0121C4A43008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 138"; + rLen = 0; + rLoc = 3070; + rType = 0; + vrLen = 491; + vrLoc = 2212; + }; + 6BAF44A1121C4A43008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 411"; + rLen = 0; + rLoc = 10463; + rType = 0; + vrLen = 1634; + vrLoc = 10498; + }; + 6BAF44A2121C4A43008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 112"; + rLen = 0; + rLoc = 2460; + rType = 0; + vrLen = 481; + vrLoc = 1657; + }; + 6BAF44A5121C4AFD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 130"; + rLen = 0; + rLoc = 2457; + rType = 0; + vrLen = 273; + vrLoc = 1978; + }; + 6BAF44A6121C4B07008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 129"; + rLen = 0; + rLoc = 2442; + rType = 0; + vrLen = 308; + vrLoc = 1978; + }; + 6BAF44A7121C4B1D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 411"; + rLen = 0; + rLoc = 10463; + rType = 0; + vrLen = 674; + vrLoc = 10208; + }; + 6BAF44A8121C4B1D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 126"; + rLen = 0; + rLoc = 2428; + rType = 0; + vrLen = 183; + vrLoc = 2067; + }; + 6BAF44A9121C4B74008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 107"; + rLen = 0; + rLoc = 2010; + rType = 0; + vrLen = 464; + vrLoc = 1796; + }; + 6BAF44AA121C4B78008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 107"; + rLen = 0; + rLoc = 2010; + rType = 0; + vrLen = 320; + vrLoc = 1830; + }; + 6BAF44AB121C4BD8008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 135"; + rLen = 0; + rLoc = 2459; + rType = 0; + vrLen = 282; + vrLoc = 2152; + }; + 6BAF44AC121C4BD8008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 332"; + rLen = 0; + rLoc = 7914; + rType = 0; + vrLen = 597; + vrLoc = 7588; + }; + 6BAF44AD121C4BD8008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 135"; + rLen = 0; + rLoc = 2459; + rType = 0; + vrLen = 282; + vrLoc = 2152; + }; + 6BAF44AE121C4BD8008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 311"; + rLen = 0; + rLoc = 7279; + rType = 0; + vrLen = 635; + vrLoc = 7139; + }; + 6BAF44AF121C4BE5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 107"; + rLen = 0; + rLoc = 2012; + rType = 0; + vrLen = 309; + vrLoc = 1707; + }; + 6BAF44B0121C4BE5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 316"; + rLen = 0; + rLoc = 7387; + rType = 0; + vrLen = 416; + vrLoc = 7774; + }; + 6BAF44B3121C4BF1008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 324"; + rLen = 0; + rLoc = 7592; + rType = 0; + vrLen = 576; + vrLoc = 7083; + }; + 6BAF44B7121C4CCD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 375"; + rLen = 0; + rLoc = 8555; + rType = 0; + vrLen = 545; + vrLoc = 8194; + }; + 6BAF44B8121C4CF7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 366"; + rLen = 0; + rLoc = 8414; + rType = 0; + vrLen = 545; + vrLoc = 8194; + }; + 6BAF44B9121C4D04008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 366"; + rLen = 0; + rLoc = 8414; + rType = 0; + vrLen = 315; + vrLoc = 8196; + }; + 6BAF44BC121C4D30008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 107"; + rLen = 0; + rLoc = 2024; + rType = 0; + vrLen = 528; + vrLoc = 1657; + }; + 6BAF44BD121C4D30008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 366"; + rLen = 0; + rLoc = 8417; + rType = 0; + vrLen = 534; + vrLoc = 8094; + }; + 6BAF44BE121C4D30008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 411"; + rLen = 0; + rLoc = 10463; + rType = 0; + vrLen = 1723; + vrLoc = 10409; + }; + 6BAF44BF121C4D30008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 361"; + rLen = 0; + rLoc = 8344; + rType = 0; + vrLen = 534; + vrLoc = 8094; + }; + 6BAF44C0121C4D30008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 107"; + rLen = 0; + rLoc = 2024; + rType = 0; + vrLen = 528; + vrLoc = 1657; + }; + 6BAF44C1121C4D30008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 366"; + rLen = 0; + rLoc = 8417; + rType = 0; + vrLen = 534; + vrLoc = 8094; + }; + 6BAF44C2121C4D30008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 406"; + rLen = 0; + rLoc = 10135; + rType = 0; + vrLen = 1135; + vrLoc = 10030; + }; + 6BAF44C3121C4D39008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 416"; + rLen = 0; + rLoc = 10707; + rType = 0; + vrLen = 1135; + vrLoc = 10030; + }; + 6BAF44C4121C4D45008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 366"; + rLen = 0; + rLoc = 8414; + rType = 0; + vrLen = 233; + vrLoc = 8317; + }; + 6BAF44C5121C4D45008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 416"; + rLen = 0; + rLoc = 10707; + rType = 0; + vrLen = 818; + vrLoc = 10347; + }; + 6BAF44C6121C4D65008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 416"; + rLen = 0; + rLoc = 10707; + rType = 0; + vrLen = 1525; + vrLoc = 10113; + }; + 6BAF44C7121C4D65008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 656"; + rLen = 0; + rLoc = 20166; + rType = 0; + vrLen = 714; + vrLoc = 19620; + }; + 6BAF44C8121C4D65008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 107"; + rLen = 0; + rLoc = 2024; + rType = 0; + vrLen = 528; + vrLoc = 1657; + }; + 6BAF44C9121C4D65008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 416"; + rLen = 0; + rLoc = 10707; + rType = 0; + vrLen = 1525; + vrLoc = 10113; + }; + 6BAF44CA121C4D65008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 656"; + rLen = 0; + rLoc = 20166; + rType = 0; + vrLen = 714; + vrLoc = 19620; + }; + 6BAF44CB121C4D65008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 118"; + rLen = 0; + rLoc = 2224; + rType = 0; + vrLen = 497; + vrLoc = 1725; + }; + 6BAF44CC121C4D79008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 416"; + rLen = 0; + rLoc = 10707; + rType = 0; + vrLen = 884; + vrLoc = 10348; + }; + 6BAF44CD121C4D79008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 135"; + rLen = 0; + rLoc = 2424; + rType = 0; + vrLen = 152; + vrLoc = 2139; + }; + 6BAF44CE121C4D7B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 123"; + rLen = 0; + rLoc = 2310; + rType = 0; + vrLen = 362; + vrLoc = 2011; + }; + 6BAF44D1121C4DB4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 129"; + rLen = 0; + rLoc = 2377; + rType = 0; + vrLen = 364; + vrLoc = 2011; + }; + 6BAF44D2121C4DB4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 416"; + rLen = 0; + rLoc = 10707; + rType = 0; + vrLen = 1591; + vrLoc = 10112; + }; + 6BAF44D3121C4DB4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 129"; + rLen = 0; + rLoc = 2377; + rType = 0; + vrLen = 364; + vrLoc = 2011; + }; + 6BAF44D4121C4DB4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 412"; + rLen = 0; + rLoc = 10465; + rType = 0; + vrLen = 1326; + vrLoc = 10109; + }; + 6BAF44D5121C4DBB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 408"; + rLen = 0; + rLoc = 10135; + rType = 0; + vrLen = 1326; + vrLoc = 10109; + }; + 6BAF44D6121C4DD6008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 408"; + rLen = 0; + rLoc = 10135; + rType = 0; + vrLen = 1068; + vrLoc = 10026; + }; + 6BAF44D7121C4DEB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 135"; + rLen = 0; + rLoc = 2424; + rType = 0; + vrLen = 139; + vrLoc = 2210; + }; + 6BAF44D8121C4DEB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 408"; + rLen = 0; + rLoc = 10135; + rType = 0; + vrLen = 652; + vrLoc = 10113; + }; + 6BAF44D9121C4DFC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 405"; + rLen = 0; + rLoc = 10135; + rType = 0; + vrLen = 1156; + vrLoc = 10009; + }; + 6BAF44DA121C4DFC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 366"; + rLen = 0; + rLoc = 8417; + rType = 0; + vrLen = 622; + vrLoc = 8057; + }; + 6BAF44DB121C4DFC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 405"; + rLen = 0; + rLoc = 10135; + rType = 0; + vrLen = 1156; + vrLoc = 10009; + }; + 6BAF44DC121C4DFC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 311"; + rLen = 0; + rLoc = 7276; + rType = 0; + vrLen = 670; + vrLoc = 6855; + }; + 6BAF44DE121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 306"; + rLen = 0; + rLoc = 7194; + rType = 0; + vrLen = 670; + vrLoc = 6855; + }; + 6BAF44DF121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 41"; + rLen = 453; + rLoc = 1354; + rType = 0; + vrLen = 652; + vrLoc = 1200; + }; + 6BAF44E0121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 133"; + rLen = 3330; + rLoc = 3137; + rType = 0; + vrLen = 1307; + vrLoc = 5492; + }; + 6BAF44E1121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 49"; + rLen = 24; + rLoc = 1495; + rType = 0; + vrLen = 658; + vrLoc = 1405; + }; + 6BAF44E2121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 474"; + rLen = 7; + rLoc = 11513; + rType = 0; + vrLen = 2123; + vrLoc = 10626; + }; + 6BAF44E3121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 306"; + rLen = 0; + rLoc = 7194; + rType = 0; + vrLen = 670; + vrLoc = 6855; + }; + 6BAF44E4121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 133"; + rLen = 0; + rLoc = 3137; + rType = 0; + vrLen = 1033; + vrLoc = 3091; + }; + 6BAF44E5121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 41"; + rLen = 453; + rLoc = 1354; + rType = 0; + vrLen = 679; + vrLoc = 1173; + }; + 6BAF44E6121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 33"; + rLen = 27; + rLoc = 1177; + rType = 0; + vrLen = 764; + vrLoc = 1182; + }; + 6BAF44E7121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 133"; + rLen = 0; + rLoc = 3149; + rType = 0; + vrLen = 1005; + vrLoc = 3091; + }; + 6BAF44E8121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 41"; + rLen = 453; + rLoc = 1354; + rType = 0; + vrLen = 652; + vrLoc = 1200; + }; + 6BAF44E9121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 65"; + rLen = 10; + rLoc = 1871; + rType = 0; + vrLen = 681; + vrLoc = 1377; + }; + 6BAF44EA121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 182"; + rLen = 0; + rLoc = 4286; + rType = 0; + vrLen = 549; + vrLoc = 4061; + }; + 6BAF44EB121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 133"; + rLen = 3330; + rLoc = 3137; + rType = 0; + vrLen = 1307; + vrLoc = 5492; + }; + 6BAF44EC121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 474"; + rLen = 7; + rLoc = 11513; + rType = 0; + vrLen = 2123; + vrLoc = 10626; + }; + 6BAF44ED121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 49"; + rLen = 24; + rLoc = 1495; + rType = 0; + vrLen = 658; + vrLoc = 1405; + }; + 6BAF44EE121C54D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 476"; + rLen = 0; + rLoc = 11597; + rType = 0; + vrLen = 2241; + vrLoc = 10801; + }; + 6BAF44F0121C55F4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 252"; + rLen = 1730; + rLoc = 7939; + rType = 0; + vrLen = 1226; + vrLoc = 7345; + }; + 6BAF44F1121C55F4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 590"; + rLen = 0; + rLoc = 15748; + rType = 0; + vrLen = 991; + vrLoc = 15050; + }; + 6BAF44F2121C55F4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 216"; + rLen = 632; + rLoc = 6625; + rType = 0; + vrLen = 1109; + vrLoc = 6540; + }; + 6BAF44F3121C55F4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 252"; + rLen = 1730; + rLoc = 7939; + rType = 0; + vrLen = 1226; + vrLoc = 7345; + }; + 6BAF44F4121C55F4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 653"; + rLen = 0; + rLoc = 17416; + rType = 0; + vrLen = 972; + vrLoc = 15938; + }; + 6BAF44F7121C5713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1035"; + rLen = 0; + rLoc = 21404; + rType = 0; + vrLen = 1257; + vrLoc = 30651; + }; + 6BAF44F8121C5713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 100"; + rLen = 9; + rLoc = 2722; + rType = 0; + vrLen = 878; + vrLoc = 2017; + }; + 6BAF44F9121C5713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 624"; + rLen = 0; + rLoc = 16718; + rType = 0; + vrLen = 906; + vrLoc = 16420; + }; + 6BAF44FA121C5713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 620"; + rLen = 0; + rLoc = 16608; + rType = 0; + vrLen = 972; + vrLoc = 15938; + }; + 6BAF44FB121C5713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1035"; + rLen = 0; + rLoc = 21404; + rType = 0; + vrLen = 1257; + vrLoc = 30651; + }; + 6BAF44FC121C5713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 624"; + rLen = 0; + rLoc = 16718; + rType = 0; + vrLen = 906; + vrLoc = 16420; + }; + 6BAF44FD121C5713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 100"; + rLen = 9; + rLoc = 2722; + rType = 0; + vrLen = 878; + vrLoc = 2017; + }; + 6BAF44FE121C5713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 1175"; + rLen = 0; + rLoc = 21616; + rType = 0; + vrLen = 1137; + vrLoc = 31993; + }; + 6BAF44FF121C5772008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + rLen = 1; + rLoc = 799; + rType = 1; + }; + 6BAF4500121C5772008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 829"; + rLen = 0; + rLoc = 21616; + rType = 0; + vrLen = 860; + vrLoc = 21174; + }; + 6BAF4502121C577E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 810"; + rLen = 0; + rLoc = 21188; + rType = 0; + vrLen = 901; + vrLoc = 20089; + }; + 6BAF4503121C57D5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 79"; + rLen = 13; + rLoc = 2101; + rType = 0; + vrLen = 892; + vrLoc = 1970; + }; + 6BAF4504121C57D5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 780"; + rLen = 0; + rLoc = 20467; + rType = 0; + vrLen = 949; + vrLoc = 20089; + }; + 6BAF4505121C57D5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 780"; + rLen = 0; + rLoc = 20467; + rType = 0; + vrLen = 949; + vrLoc = 20089; + }; + 6BAF4506121C57D5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 79"; + rLen = 13; + rLoc = 2101; + rType = 0; + vrLen = 892; + vrLoc = 1970; + }; + 6BAF4507121C57D5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 883"; + rLen = 0; + rLoc = 21616; + rType = 0; + vrLen = 1104; + vrLoc = 22773; + }; + 6BAF4509121C57DF008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 881"; + rLen = 0; + rLoc = 21616; + rType = 0; + vrLen = 890; + vrLoc = 21744; + }; + 6BAF450A121C5810008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 48"; + rLen = 23; + rLoc = 1468; + rType = 0; + vrLen = 660; + vrLoc = 1248; + }; + 6BAF450B121C5810008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 843"; + rLen = 0; + rLoc = 21616; + rType = 0; + vrLen = 890; + vrLoc = 21744; + }; + 6BAF450C121C5810008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 843"; + rLen = 0; + rLoc = 21616; + rType = 0; + vrLen = 890; + vrLoc = 21744; + }; + 6BAF450D121C5810008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 48"; + rLen = 23; + rLoc = 1468; + rType = 0; + vrLen = 660; + vrLoc = 1248; + }; + 6BAF450E121C5810008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 441"; + rLen = 0; + rLoc = 10025; + rType = 0; + vrLen = 777; + vrLoc = 9431; + }; + 6BAF4510121C5874008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 199"; + rLen = 118; + rLoc = 6349; + rType = 0; + vrLen = 1307; + vrLoc = 5492; + }; + 6BAF4511121C5874008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 427"; + rLen = 0; + rLoc = 9663; + rType = 0; + vrLen = 538; + vrLoc = 8467; + }; + 6BAF4512121C5874008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 427"; + rLen = 0; + rLoc = 9663; + rType = 0; + vrLen = 558; + vrLoc = 8447; + }; + 6BAF4513121C5874008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 199"; + rLen = 118; + rLoc = 6349; + rType = 0; + vrLen = 1307; + vrLoc = 5492; + }; + 6BAF4514121C5874008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 506"; + rLen = 0; + rLoc = 13277; + rType = 0; + vrLen = 1101; + vrLoc = 12640; + }; + 6BAF4518121C5920008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 390"; + rLen = 0; + rLoc = 8835; + rType = 0; + vrLen = 578; + vrLoc = 8564; + }; + 6BAF4520121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; + name = "DetourNavMeshQuery.h: 178"; + rLen = 0; + rLoc = 8002; + rType = 0; + vrLen = 1836; + vrLoc = 6956; + }; + 6BAF4521121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 25"; + rLen = 0; + rLoc = 1054; + rType = 0; + vrLen = 936; + vrLoc = 446; + }; + 6BAF4522121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 18"; + rLen = 0; + rLoc = 923; + rType = 0; + vrLen = 908; + vrLoc = 446; + }; + 6BAF4523121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 29"; + rLen = 0; + rLoc = 1138; + rType = 0; + vrLen = 809; + vrLoc = 596; + }; + 6BAF4524121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 25"; + rLen = 0; + rLoc = 1046; + rType = 0; + vrLen = 990; + vrLoc = 446; + }; + 6BAF4525121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; + name = "Sample_Debug.h: 25"; + rLen = 0; + rLoc = 1048; + rType = 0; + vrLen = 875; + vrLoc = 446; + }; + 6BAF4526121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 26"; + rLen = 0; + rLoc = 1083; + rType = 0; + vrLen = 667; + vrLoc = 672; + }; + 6BAF4527121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 25"; + rLen = 27; + rLoc = 1064; + rType = 0; + vrLen = 968; + vrLoc = 446; + }; + 6BAF4528121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 39"; + rLen = 0; + rLoc = 1502; + rType = 0; + vrLen = 831; + vrLoc = 1063; + }; + 6BAF4529121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 55"; + rLen = 0; + rLoc = 984; + rType = 0; + vrLen = 548; + vrLoc = 557; + }; + 6BAF452A121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 820"; + rLen = 0; + rLoc = 21691; + rType = 0; + vrLen = 784; + vrLoc = 21149; + }; + 6BAF452B121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 29"; + rLen = 1; + rLoc = 1163; + rType = 0; + vrLen = 627; + vrLoc = 968; + }; + 6BAF452C121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 42"; + rLen = 0; + rLoc = 1475; + rType = 0; + vrLen = 545; + vrLoc = 1245; + }; + 6BAF452D121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 19"; + rLen = 0; + rLoc = 942; + rType = 0; + vrLen = 874; + vrLoc = 521; + }; + 6BAF452E121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 16"; + rLen = 0; + rLoc = 871; + rType = 0; + vrLen = 967; + vrLoc = 396; + }; + 6BAF452F121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 18"; + rLen = 0; + rLoc = 923; + rType = 0; + vrLen = 1037; + vrLoc = 396; + }; + 6BAF4530121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 22"; + rLen = 0; + rLoc = 1006; + rType = 0; + vrLen = 898; + vrLoc = 521; + }; + 6BAF4531121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 17"; + rLen = 0; + rLoc = 922; + rType = 0; + vrLen = 971; + vrLoc = 521; + }; + 6BAF4532121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 20"; + rLen = 0; + rLoc = 967; + rType = 0; + vrLen = 926; + vrLoc = 596; + }; + 6BAF4533121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 13"; + rLen = 0; + rLoc = 705; + rType = 0; + vrLen = 1296; + vrLoc = 249; + }; + 6BAF4534121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 20"; + rLen = 0; + rLoc = 968; + rType = 0; + vrLen = 834; + vrLoc = 521; + }; + 6BAF4535121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 68"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 853; + vrLoc = 1649; + }; + 6BAF4536121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 385"; + rLen = 0; + rLoc = 8781; + rType = 0; + vrLen = 628; + vrLoc = 8548; + }; + 6BAF4537121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; + name = "DetourNavMeshQuery.h: 178"; + rLen = 0; + rLoc = 8002; + rType = 0; + vrLen = 1836; + vrLoc = 6956; + }; + 6BAF4538121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 571"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 1427; + vrLoc = 19979; + }; + 6BAF4539121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 26"; + rLen = 0; + rLoc = 1066; + rType = 0; + vrLen = 792; + vrLoc = 521; + }; + 6BAF453A121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 24"; + rLen = 0; + rLoc = 1027; + rType = 0; + vrLen = 970; + vrLoc = 396; + }; + 6BAF453B121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 25"; + rLen = 0; + rLoc = 1035; + rType = 0; + vrLen = 730; + vrLoc = 1727; + }; + 6BAF453C121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 24"; + rLen = 0; + rLoc = 1027; + rType = 0; + vrLen = 965; + vrLoc = 396; + }; + 6BAF453D121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 23"; + rLen = 0; + rLoc = 1007; + rType = 0; + vrLen = 1191; + vrLoc = 322; + }; + 6BAF453E121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 26"; + rLen = 0; + rLoc = 1066; + rType = 0; + vrLen = 869; + vrLoc = 521; + }; + 6BAF453F121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 25"; + rLen = 0; + rLoc = 1066; + rType = 0; + vrLen = 923; + vrLoc = 446; + }; + 6BAF4540121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 25"; + rLen = 0; + rLoc = 1054; + rType = 0; + vrLen = 936; + vrLoc = 446; + }; + 6BAF4541121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 26"; + rLen = 0; + rLoc = 1066; + rType = 0; + vrLen = 823; + vrLoc = 521; + }; + 6BAF4542121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 18"; + rLen = 0; + rLoc = 923; + rType = 0; + vrLen = 908; + vrLoc = 446; + }; + 6BAF4543121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 29"; + rLen = 0; + rLoc = 1138; + rType = 0; + vrLen = 809; + vrLoc = 596; + }; + 6BAF4544121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 25"; + rLen = 0; + rLoc = 1046; + rType = 0; + vrLen = 990; + vrLoc = 446; + }; + 6BAF4545121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 26"; + rLen = 0; + rLoc = 1066; + rType = 0; + vrLen = 958; + vrLoc = 521; + }; + 6BAF4546121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; + name = "Sample_Debug.h: 25"; + rLen = 0; + rLoc = 1048; + rType = 0; + vrLen = 875; + vrLoc = 446; + }; + 6BAF4547121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 26"; + rLen = 0; + rLoc = 1083; + rType = 0; + vrLen = 667; + vrLoc = 672; + }; + 6BAF4548121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 25"; + rLen = 0; + rLoc = 1064; + rType = 0; + vrLen = 972; + vrLoc = 446; + }; + 6BAF4549121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 32"; + rLen = 0; + rLoc = 1220; + rType = 0; + vrLen = 533; + vrLoc = 920; + }; + 6BAF454A121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 25"; + rLen = 27; + rLoc = 1064; + rType = 0; + vrLen = 968; + vrLoc = 446; + }; + 6BAF454B121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 30"; + rLen = 29; + rLoc = 1164; + rType = 0; + vrLen = 564; + vrLoc = 968; + }; + 6BAF454C121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 25"; + rLen = 0; + rLoc = 1065; + rType = 0; + vrLen = 834; + vrLoc = 521; + }; + 6BAF454D121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 30"; + rLen = 0; + rLoc = 1159; + rType = 0; + vrLen = 550; + vrLoc = 1007; + }; + 6BAF454E121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 30"; + rLen = 0; + rLoc = 1165; + rType = 0; + vrLen = 688; + vrLoc = 789; + }; + 6BAF454F121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 30"; + rLen = 29; + rLoc = 1159; + rType = 0; + vrLen = 550; + vrLoc = 1007; + }; + 6BAF4550121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 46"; + rLen = 0; + rLoc = 1553; + rType = 0; + vrLen = 545; + vrLoc = 1245; + }; + 6BAF4551121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 68"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 856; + vrLoc = 1649; + }; + 6BAF4552121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 49"; + rLen = 0; + rLoc = 590; + rType = 0; + vrLen = 608; + vrLoc = 495; + }; + 6BAF4553121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 39"; + rLen = 0; + rLoc = 1502; + rType = 0; + vrLen = 831; + vrLoc = 1063; + }; + 6BAF4554121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 55"; + rLen = 0; + rLoc = 984; + rType = 0; + vrLen = 548; + vrLoc = 557; + }; + 6BAF4555121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 820"; + rLen = 0; + rLoc = 21691; + rType = 0; + vrLen = 784; + vrLoc = 21149; + }; + 6BAF4556121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 29"; + rLen = 1; + rLoc = 1163; + rType = 0; + vrLen = 627; + vrLoc = 968; + }; + 6BAF4557121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 42"; + rLen = 0; + rLoc = 1475; + rType = 0; + vrLen = 545; + vrLoc = 1245; + }; + 6BAF4558121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 19"; + rLen = 0; + rLoc = 942; + rType = 0; + vrLen = 874; + vrLoc = 521; + }; + 6BAF4559121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 16"; + rLen = 0; + rLoc = 871; + rType = 0; + vrLen = 967; + vrLoc = 396; + }; + 6BAF455A121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 18"; + rLen = 0; + rLoc = 923; + rType = 0; + vrLen = 1037; + vrLoc = 396; + }; + 6BAF455B121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 22"; + rLen = 0; + rLoc = 1006; + rType = 0; + vrLen = 898; + vrLoc = 521; + }; + 6BAF455C121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 17"; + rLen = 0; + rLoc = 922; + rType = 0; + vrLen = 971; + vrLoc = 521; + }; + 6BAF455D121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 20"; + rLen = 0; + rLoc = 967; + rType = 0; + vrLen = 926; + vrLoc = 596; + }; + 6BAF455E121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 13"; + rLen = 0; + rLoc = 705; + rType = 0; + vrLen = 1296; + vrLoc = 249; + }; + 6BAF455F121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 20"; + rLen = 0; + rLoc = 968; + rType = 0; + vrLen = 834; + vrLoc = 521; + }; + 6BAF4560121D1723008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 76"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 1538; + vrLoc = 2601; + }; + 6BAF4561121D173A008CFCDF /* RecastAssert.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {933, 480}}"; + sepNavSelRange = "{1092, 0}"; + sepNavVisRange = "{0, 1092}"; + }; + }; + 6BAF4562121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF427A121ADCC2008CFCDF /* DetourAssert.h */; + name = "DetourAssert.h: 1"; + rLen = 1092; + rLoc = 0; + rType = 0; + vrLen = 1092; + vrLoc = 0; + }; + 6BAF4563121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 76"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 1538; + vrLoc = 2601; + }; + 6BAF4564121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4561121D173A008CFCDF /* RecastAssert.h */; + name = "RecastAssert.h: 30"; + rLen = 0; + rLoc = 1092; + rType = 0; + vrLen = 1092; + vrLoc = 0; + }; + 6BAF4565121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 241"; + rLen = 0; + rLoc = 5856; + rType = 0; + vrLen = 700; + vrLoc = 9599; + }; + 6BAF4566121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 361"; + rLen = 0; + rLoc = 9942; + rType = 0; + vrLen = 861; + vrLoc = 9259; + }; + 6BAF4567121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 20"; + rLen = 0; + rLoc = 967; + rType = 0; + vrLen = 864; + vrLoc = 596; + }; + 6BAF4568121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 76"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 1538; + vrLoc = 2601; + }; + 6BAF4569121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4561121D173A008CFCDF /* RecastAssert.h */; + name = "RecastAssert.h: 1"; + rLen = 0; + rLoc = 1092; + rType = 0; + vrLen = 0; + vrLoc = 0; + }; + 6BAF456A121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF427A121ADCC2008CFCDF /* DetourAssert.h */; + name = "DetourAssert.h: 1"; + rLen = 1092; + rLoc = 0; + rType = 0; + vrLen = 1092; + vrLoc = 0; + }; + 6BAF456B121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 76"; + rLen = 0; + rLoc = 2027; + rType = 0; + vrLen = 1538; + vrLoc = 2601; + }; + 6BAF456C121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4561121D173A008CFCDF /* RecastAssert.h */; + name = "RecastAssert.h: 30"; + rLen = 0; + rLoc = 1092; + rType = 0; + vrLen = 1092; + vrLoc = 0; + }; + 6BAF456D121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 241"; + rLen = 0; + rLoc = 5856; + rType = 0; + vrLen = 700; + vrLoc = 9599; + }; + 6BAF456E121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 361"; + rLen = 0; + rLoc = 9942; + rType = 0; + vrLen = 861; + vrLoc = 9259; + }; + 6BAF456F121D1849008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 28"; + rLen = 0; + rLoc = 1078; + rType = 0; + vrLen = 864; + vrLoc = 596; + }; + 6BAF4570121D18A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 159"; + rLen = 0; + rLoc = 4730; + rType = 0; + vrLen = 707; + vrLoc = 4669; + }; + 6BAF4571121D18A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 362"; + rLen = 0; + rLoc = 9917; + rType = 0; + vrLen = 675; + vrLoc = 10728; + }; + 6BAF4572121D18A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 1129"; + rLen = 0; + rLoc = 27460; + rType = 0; + vrLen = 948; + vrLoc = 30087; + }; + 6BAF4573121D18A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 600"; + rLen = 0; + rLoc = 15723; + rType = 0; + vrLen = 954; + vrLoc = 20863; + }; + 6BAF4574121D18A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 16"; + rLen = 0; + rLoc = 871; + rType = 0; + vrLen = 967; + vrLoc = 396; + }; + 6BAF4575121D18A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 159"; + rLen = 0; + rLoc = 4730; + rType = 0; + vrLen = 707; + vrLoc = 4669; + }; + 6BAF4576121D18A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 362"; + rLen = 0; + rLoc = 9917; + rType = 0; + vrLen = 675; + vrLoc = 10728; + }; + 6BAF4577121D18A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 1129"; + rLen = 0; + rLoc = 27460; + rType = 0; + vrLen = 948; + vrLoc = 30087; + }; + 6BAF4578121D18A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 600"; + rLen = 0; + rLoc = 15723; + rType = 0; + vrLen = 954; + vrLoc = 20863; + }; + 6BAF4579121D18A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 16"; + rLen = 0; + rLoc = 871; + rType = 0; + vrLen = 817; + vrLoc = 924; + }; + 6BAF457C121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 27"; + rLen = 26; + rLoc = 1091; + rType = 0; + vrLen = 1134; + vrLoc = 133; + }; + 6BAF457D121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 26"; + rLen = 0; + rLoc = 1078; + rType = 0; + vrLen = 1149; + vrLoc = 0; + }; + 6BAF457E121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 26"; + rLen = 0; + rLoc = 1078; + rType = 0; + vrLen = 1235; + vrLoc = 64; + }; + 6BAF457F121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 28"; + rLen = 0; + rLoc = 1117; + rType = 0; + vrLen = 1134; + vrLoc = 0; + }; + 6BAF4580121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 28"; + rLen = 0; + rLoc = 1117; + rType = 0; + vrLen = 1156; + vrLoc = 61; + }; + 6BAF4581121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 24"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 1197; + vrLoc = 0; + }; + 6BAF4582121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 25"; + rLen = 0; + rLoc = 1058; + rType = 0; + vrLen = 1023; + vrLoc = 596; + }; + 6BAF4583121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 241"; + rLen = 0; + rLoc = 5856; + rType = 0; + vrLen = 700; + vrLoc = 9599; + }; + 6BAF4584121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 900"; + rLen = 0; + rLoc = 12698; + rType = 0; + vrLen = 549; + vrLoc = 22740; + }; + 6BAF4585121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 27"; + rLen = 26; + rLoc = 1091; + rType = 0; + vrLen = 1134; + vrLoc = 133; + }; + 6BAF4586121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 26"; + rLen = 0; + rLoc = 1078; + rType = 0; + vrLen = 1149; + vrLoc = 0; + }; + 6BAF4587121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 26"; + rLen = 0; + rLoc = 1078; + rType = 0; + vrLen = 1235; + vrLoc = 64; + }; + 6BAF4588121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 28"; + rLen = 0; + rLoc = 1117; + rType = 0; + vrLen = 1134; + vrLoc = 0; + }; + 6BAF4589121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 28"; + rLen = 0; + rLoc = 1117; + rType = 0; + vrLen = 1156; + vrLoc = 61; + }; + 6BAF458A121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 24"; + rLen = 0; + rLoc = 1033; + rType = 0; + vrLen = 1197; + vrLoc = 0; + }; + 6BAF458B121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 25"; + rLen = 0; + rLoc = 1058; + rType = 0; + vrLen = 1023; + vrLoc = 596; + }; + 6BAF458C121D19CB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 28"; + rLen = 0; + rLoc = 1117; + rType = 0; + vrLen = 711; + vrLoc = 672; + }; + 6BAF458D121D1A1C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 28"; + rLen = 0; + rLoc = 1117; + rType = 0; + vrLen = 635; + vrLoc = 789; + }; + 6BAF458E121D1A1C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 39"; + rLen = 0; + rLoc = 1502; + rType = 0; + vrLen = 831; + vrLoc = 1063; + }; + 6BAF458F121D1A1C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 28"; + rLen = 0; + rLoc = 1117; + rType = 0; + vrLen = 635; + vrLoc = 789; + }; + 6BAF4590121D1A1C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 25"; + rLen = 0; + rLoc = 1103; + rType = 0; + vrLen = 731; + vrLoc = 842; + }; + 6BAF4592121D1B18008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 69"; + rLen = 777; + rLoc = 2042; + rType = 0; + vrLen = 1197; + vrLoc = 2197; + }; + 6BAF4593121D1B18008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 26"; + rLen = 0; + rLoc = 1087; + rType = 0; + vrLen = 592; + vrLoc = 789; + }; + 6BAF4594121D1B18008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 53"; + rLen = 0; + rLoc = 961; + rType = 0; + vrLen = 550; + vrLoc = 559; + }; + 6BAF4595121D1B18008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 42"; + rLen = 0; + rLoc = 1502; + rType = 0; + vrLen = 807; + vrLoc = 1207; + }; + 6BAF4596121D1B18008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 42"; + rLen = 0; + rLoc = 1502; + rType = 0; + vrLen = 807; + vrLoc = 1207; + }; + 6BAF4597121D1B18008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 69"; + rLen = 777; + rLoc = 2042; + rType = 0; + vrLen = 1197; + vrLoc = 2197; + }; + 6BAF4598121D1B18008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 26"; + rLen = 0; + rLoc = 1087; + rType = 0; + vrLen = 592; + vrLoc = 789; + }; + 6BAF4599121D1B18008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 53"; + rLen = 0; + rLoc = 961; + rType = 0; + vrLen = 550; + vrLoc = 559; + }; + 6BAF459A121D1B18008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 55"; + rLen = 0; + rLoc = 1939; + rType = 0; + vrLen = 1065; + vrLoc = 1291; + }; + 6BAF459B121D1C15008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 29"; + rLen = 0; + rLoc = 1181; + rType = 0; + vrLen = 881; + vrLoc = 967; + }; + 6BAF459C121D1C15008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 71"; + rLen = 0; + rLoc = 1249; + rType = 0; + vrLen = 535; + vrLoc = 0; + }; + 6BAF459D121D1C15008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 58"; + rLen = 0; + rLoc = 1868; + rType = 0; + vrLen = 840; + vrLoc = 1408; + }; + 6BAF459E121D1C15008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 29"; + rLen = 0; + rLoc = 1149; + rType = 0; + vrLen = 850; + vrLoc = 967; + }; + 6BAF459F121D1C15008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 156"; + rLen = 0; + rLoc = 2721; + rType = 0; + vrLen = 492; + vrLoc = 2259; + }; + 6BAF45A0121D1C15008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; + name = "SampleInterfaces.h: 29"; + rLen = 0; + rLoc = 1181; + rType = 0; + vrLen = 881; + vrLoc = 967; + }; + 6BAF45A1121D1C15008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 71"; + rLen = 0; + rLoc = 1249; + rType = 0; + vrLen = 535; + vrLoc = 0; + }; + 6BAF45A2121D1C15008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 158"; + rLen = 0; + rLoc = 4035; + rType = 0; + vrLen = 624; + vrLoc = 3720; + }; + 6BAF45A4121D1C1E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 160"; + rLen = 0; + rLoc = 4062; + rType = 0; + vrLen = 624; + vrLoc = 3720; + }; + 6BAF45A6121D1C49008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 157"; + rLen = 0; + rLoc = 4016; + rType = 0; + vrLen = 624; + vrLoc = 3720; + }; + 6BAF45A7121D1C49008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'i' was not declared in this scope"; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + rLen = 1; + rLoc = 163; + rType = 1; + }; + 6BAF45A8121D1C49008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 157"; + rLen = 0; + rLoc = 4016; + rType = 0; + vrLen = 624; + vrLoc = 3720; + }; + 6BAF45A9121D1C49008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 167"; + rLen = 0; + rLoc = 2996; + rType = 0; + vrLen = 756; + vrLoc = 2533; + }; + 6BAF45AA121D2C03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 167"; + rLen = 0; + rLoc = 2996; + rType = 0; + vrLen = 756; + vrLoc = 2533; + }; + 6BAF45AB121D2C03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 594"; + rLen = 0; + rLoc = 15601; + rType = 0; + vrLen = 1157; + vrLoc = 15331; + }; + 6BAF45AC121D2C03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 44"; + rLen = 14; + rLoc = 1371; + rType = 0; + vrLen = 705; + vrLoc = 964; + }; + 6BAF45AD121D2C03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1154"; + rLen = 0; + rLoc = 27671; + rType = 0; + vrLen = 567; + vrLoc = 24572; + }; + 6BAF45AE121D2C03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; + name = "SampleInterfaces.cpp: 167"; + rLen = 0; + rLoc = 2996; + rType = 0; + vrLen = 756; + vrLoc = 2533; + }; + 6BAF45AF121D2C03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 594"; + rLen = 0; + rLoc = 15601; + rType = 0; + vrLen = 1157; + vrLoc = 15331; + }; + 6BAF45B0121D2C03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1154"; + rLen = 0; + rLoc = 27671; + rType = 0; + vrLen = 567; + vrLoc = 24572; + }; + 6BAF45B1121D2C03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 44"; + rLen = 14; + rLoc = 1371; + rType = 0; + vrLen = 705; + vrLoc = 964; + }; + 6BAF45B2121D2C03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 496"; + rLen = 14; + rLoc = 12285; + rType = 0; + vrLen = 819; + vrLoc = 11920; + }; + 6BAF45B7121D2F37008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 498"; + rLen = 0; + rLoc = 12358; + rType = 0; + vrLen = 819; + vrLoc = 11920; + }; + 6BAF45B8121D2F37008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 164"; + rLen = 0; + rLoc = 3974; + rType = 0; + vrLen = 941; + vrLoc = 4357; + }; + 6BAF45B9121D2F37008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 42"; + rLen = 0; + rLoc = 1475; + rType = 0; + vrLen = 636; + vrLoc = 1194; + }; + 6BAF45BA121D2F37008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 498"; + rLen = 0; + rLoc = 12358; + rType = 0; + vrLen = 819; + vrLoc = 11920; + }; + 6BAF45BB121D2F37008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 164"; + rLen = 0; + rLoc = 3974; + rType = 0; + vrLen = 941; + vrLoc = 4357; + }; + 6BAF45BC121D2F37008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 665"; + rLen = 0; + rLoc = 20286; + rType = 0; + vrLen = 807; + vrLoc = 19578; + }; + 6BAF45BD121D2F42008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 656"; + rLen = 0; + rLoc = 19984; + rType = 0; + vrLen = 807; + vrLoc = 19578; + }; + 6BAF45BE121D2F4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 656"; + rLen = 0; + rLoc = 19984; + rType = 0; + vrLen = 743; + vrLoc = 19642; + }; + 6BAF45BF121D2F57008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; + name = "RecastDump.cpp: 409"; + rLen = 0; + rLoc = 10388; + rType = 0; + vrLen = 662; + vrLoc = 10113; + }; + 6BAF45C0121D2F57008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 656"; + rLen = 0; + rLoc = 19984; + rType = 0; + vrLen = 418; + vrLoc = 19817; + }; + 6BAF45C2121D2F68008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 660"; + rLen = 0; + rLoc = 20286; + rType = 0; + vrLen = 816; + vrLoc = 19487; + }; 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1112, 3888}}"; - sepNavSelRange = "{1277, 0}"; - sepNavVisRange = "{1011, 194}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 3760}}"; + sepNavSelRange = "{1247, 1}"; + sepNavVisRange = "{970, 514}"; }; }; 6BB788180FC04753003C24DB /* ChunkyTriMesh.h */ = { @@ -8393,24 +13790,24 @@ }; 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 19712}}"; - sepNavSelRange = "{5747, 0}"; - sepNavVisRange = "{5645, 852}"; + sepNavIntBoundsRect = "{{0, 0}, {936, 19948}}"; + sepNavSelRange = "{1138, 0}"; + sepNavVisRange = "{596, 894}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {909, 1472}}"; - sepNavSelRange = "{2589, 0}"; - sepNavVisRange = "{1662, 1497}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 1632}}"; + sepNavSelRange = "{1899, 0}"; + sepNavVisRange = "{1577, 774}"; }; }; 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 7232}}"; - sepNavSelRange = "{11717, 0}"; - sepNavVisRange = "{11336, 749}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 7468}}"; + sepNavSelRange = "{1046, 0}"; + sepNavVisRange = "{446, 1030}"; }; }; 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */ = { @@ -8458,17 +13855,17 @@ }; 6BB93CF410CFEC4500F74F2B /* RecastDump.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 656}}"; - sepNavSelRange = "{1351, 64}"; - sepNavVisRange = "{64, 1574}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 704}}"; + sepNavSelRange = "{1702, 0}"; + sepNavVisRange = "{596, 1132}"; sepNavWindowFrame = "{{38, 15}, {1174, 737}}"; }; }; 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 6400}}"; - sepNavSelRange = "{5115, 0}"; - sepNavVisRange = "{4900, 886}"; + sepNavIntBoundsRect = "{{0, 0}, {1219, 6864}}"; + sepNavSelRange = "{10388, 0}"; + sepNavVisRange = "{10113, 662}"; }; }; 6BBB4AA1115B4F3400CF791D /* PBXTextBookmark */ = { @@ -8566,7 +13963,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 426"; rLen = 0; - rLoc = 10901; + rLoc = 10821; rType = 0; vrLen = 708; vrLoc = 10414; @@ -8706,7 +14103,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 107"; rLen = 0; - rLoc = 3600; + rLoc = 2942; rType = 0; vrLen = 610; vrLoc = 2890; @@ -8716,7 +14113,7 @@ fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; name = "Sample_SoloMeshSimple.h: 55"; rLen = 0; - rLoc = 1730; + rLoc = 1678; rType = 0; vrLen = 453; vrLoc = 1488; @@ -8736,7 +14133,7 @@ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; name = "Recast.cpp: 121"; rLen = 0; - rLoc = 5508; + rLoc = 3562; rType = 0; vrLen = 525; vrLoc = 3040; @@ -8746,7 +14143,7 @@ fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; name = "RecastTimer.cpp: 19"; rLen = 0; - rLoc = 931; + rLoc = 934; rType = 0; vrLen = 979; vrLoc = 0; @@ -8807,7 +14204,7 @@ fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; name = "RecastMeshDetail.cpp: 843"; rLen = 0; - rLoc = 20080; + rLoc = 6523; rType = 0; vrLen = 691; vrLoc = 19690; @@ -8983,7 +14380,7 @@ fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; name = "imguiRenderGL.cpp: 333"; rLen = 0; - rLoc = 7704; + rLoc = 7914; rType = 0; vrLen = 837; vrLoc = 7319; @@ -8993,7 +14390,7 @@ fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; name = "Sample_TileMesh.h: 35"; rLen = 0; - rLoc = 1278; + rLoc = 1226; rType = 0; vrLen = 767; vrLoc = 1156; @@ -9011,22 +14408,22 @@ 6BF7C13E11119520002B3F46 /* TestCase.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {933, 1280}}"; - sepNavSelRange = "{1865, 0}"; - sepNavVisRange = "{1510, 497}"; + sepNavSelRange = "{1844, 0}"; + sepNavVisRange = "{1491, 527}"; }; }; 6BF7C13F1111953A002B3F46 /* TestCase.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 4752}}"; - sepNavSelRange = "{5265, 0}"; - sepNavVisRange = "{5108, 501}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 5312}}"; + sepNavSelRange = "{3473, 0}"; + sepNavVisRange = "{3326, 505}"; }; }; 6BF7C4531115C277002B3F46 /* RecastArea.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 6336}}"; - sepNavSelRange = "{7326, 0}"; - sepNavVisRange = "{6934, 802}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 6768}}"; + sepNavSelRange = "{1117, 0}"; + sepNavVisRange = "{61, 1156}"; }; }; 6BF9B12C11EB8CF20043574C /* PBXTextBookmark */ = { @@ -9043,8 +14440,8 @@ isa = PBXTextBookmark; fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; name = "RecastFilter.cpp: 100"; - rLen = 33; - rLoc = 3177; + rLen = 0; + rLoc = 1078; rType = 0; vrLen = 550; vrLoc = 2853; @@ -9054,7 +14451,7 @@ fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; name = "RecastRegion.cpp: 241"; rLen = 0; - rLoc = 6621; + rLoc = 6599; rType = 0; vrLen = 933; vrLoc = 5911; @@ -9064,7 +14461,7 @@ fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; name = "RecastRasterization.cpp: 351"; rLen = 0; - rLoc = 9655; + rLoc = 3921; rType = 0; vrLen = 1118; vrLoc = 8770; @@ -9074,7 +14471,7 @@ fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; name = "RecastFilter.cpp: 53"; rLen = 0; - rLoc = 1927; + rLoc = 1078; rType = 0; vrLen = 1288; vrLoc = 1276; @@ -9094,7 +14491,7 @@ fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; name = "RecastLog.h: 61"; rLen = 0; - rLoc = 1864; + rLoc = 1892; rType = 0; vrLen = 633; vrLoc = 1573; @@ -9103,8 +14500,8 @@ isa = PBXTextBookmark; fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; name = "RecastArea.cpp: 286"; - rLen = 12; - rLoc = 7849; + rLen = 0; + rLoc = 1146; rType = 0; vrLen = 857; vrLoc = 7730; @@ -9113,8 +14510,8 @@ isa = PBXTextBookmark; fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 62"; - rLen = 10; - rLoc = 3916; + rLen = 0; + rLoc = 2027; rType = 0; vrLen = 1045; vrLoc = 2107; @@ -9144,7 +14541,7 @@ fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; name = "RecastArea.cpp: 263"; rLen = 0; - rLoc = 7326; + rLoc = 1146; rType = 0; vrLen = 802; vrLoc = 6934; diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index cc82dc6..fa91446 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -283,14 +283,14 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 18 - 11 + 42 + 38 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 107}, {264, 660}} + {{0, 440}, {264, 660}} PBXTopSmartGroupGIDs @@ -325,7 +325,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - DetourNavMeshQuery.cpp + Sample_SoloMeshSimple.cpp PBXSplitModuleInNavigatorKey Split0 @@ -333,15 +333,14 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - DetourNavMeshQuery.cpp + Sample_SoloMeshSimple.cpp _historyCapacity 0 bookmark - 6BAF434F121B00EF008CFCDF + 6BAF45C2121D2F68008CFCDF history 6BBB4AA5115B4F3400CF791D - 6BBB4AA6115B4F3400CF791D 6BBB4C34115B7A3D00CF791D 6BF5F27011747CFA000502A6 6BF5F27311747CFA000502A6 @@ -349,28 +348,11 @@ 6BF5F2E511748884000502A6 6BF5F2E611748884000502A6 6BF5F2E711748884000502A6 - 6BF5F32E11759C3C000502A6 6BF5F5041176F5F8000502A6 6B4214D911803923006C347B - 6B10011711AD19F90098A59A - 6B77655511E3A9490029917E 6B98462E11E6141900FA177B 6B98473011E737D800FA177B - 6B9847FE11E9AFC900FA177B - 6B98482611E9D23600FA177B 6BF9B12C11EB8CF20043574C - 6BF9B12F11EB8CF20043574C - 6BF9B13711EB8CF20043574C - 6BF9B20B11EC450E0043574C - 6BF9B21B11EC49F90043574C - 6BAF37D411FEAC16008CFCDF - 6BAF382112019EDA008CFCDF - 6BAF38471202CC9B008CFCDF - 6BAF385C120A8A8E008CFCDF - 6BAF3ADA12112A65008CFCDF - 6BAF3BA51211425E008CFCDF - 6BAF3BB9121146D8008CFCDF - 6BAF3C7D121167CA008CFCDF 6BAF3CB012116AD9008CFCDF 6BAF3CB112116AD9008CFCDF 6BAF3CB412116AD9008CFCDF @@ -378,42 +360,64 @@ 6BAF3E781212869F008CFCDF 6BAF404F12140B4E008CFCDF 6BAF405112140B4E008CFCDF - 6BAF405212140B4E008CFCDF 6BAF409312142142008CFCDF 6BAF409512142142008CFCDF - 6BAF40BD12193E77008CFCDF - 6BAF40F012197F3D008CFCDF - 6BAF40F112197F3D008CFCDF - 6BAF40F212197F3D008CFCDF - 6BAF40F312197F3D008CFCDF 6BAF40F412197F3D008CFCDF - 6BAF41701219811E008CFCDF 6BAF419E12198419008CFCDF - 6BAF419F12198419008CFCDF - 6BAF41A012198419008CFCDF - 6BAF41A312198419008CFCDF - 6BAF41A412198419008CFCDF - 6BAF41A512198419008CFCDF - 6BAF41A612198419008CFCDF - 6BAF41A812198419008CFCDF - 6BAF41A912198419008CFCDF - 6BAF41AB12198419008CFCDF - 6BAF41D0121A5AEE008CFCDF 6BAF4250121AD7D7008CFCDF 6BAF4267121AD99B008CFCDF 6BAF4269121AD99B008CFCDF 6BAF427E121ADD46008CFCDF 6BAF427F121ADD46008CFCDF 6BAF4280121ADD46008CFCDF - 6BAF4281121ADD46008CFCDF 6BAF42A6121AEFD9008CFCDF 6BAF42E2121AF3B8008CFCDF 6BAF4321121AF998008CFCDF 6BAF4322121AF998008CFCDF - 6BAF4323121AF998008CFCDF - 6BAF4325121AF998008CFCDF - 6BAF4346121AFD0B008CFCDF - 6BAF4347121AFD0B008CFCDF + 6BAF437D121C1F3D008CFCDF + 6BAF43FB121C241D008CFCDF + 6BAF43FE121C241D008CFCDF + 6BAF43FF121C241D008CFCDF + 6BAF4421121C25E3008CFCDF + 6BAF4422121C25E3008CFCDF + 6BAF4446121C40AC008CFCDF + 6BAF446C121C4895008CFCDF + 6BAF446E121C4895008CFCDF + 6BAF44D9121C4DFC008CFCDF + 6BAF44DE121C54D4008CFCDF + 6BAF4520121D1723008CFCDF + 6BAF4521121D1723008CFCDF + 6BAF4522121D1723008CFCDF + 6BAF4523121D1723008CFCDF + 6BAF4524121D1723008CFCDF + 6BAF4525121D1723008CFCDF + 6BAF4527121D1723008CFCDF + 6BAF452A121D1723008CFCDF + 6BAF452B121D1723008CFCDF + 6BAF4562121D1849008CFCDF + 6BAF4564121D1849008CFCDF + 6BAF457C121D19CB008CFCDF + 6BAF457D121D19CB008CFCDF + 6BAF457E121D19CB008CFCDF + 6BAF457F121D19CB008CFCDF + 6BAF4580121D19CB008CFCDF + 6BAF4581121D19CB008CFCDF + 6BAF4582121D19CB008CFCDF + 6BAF4592121D1B18008CFCDF + 6BAF4593121D1B18008CFCDF + 6BAF459B121D1C15008CFCDF + 6BAF45A6121D1C49008CFCDF + 6BAF45AA121D2C03008CFCDF + 6BAF45AB121D2C03008CFCDF + 6BAF45AC121D2C03008CFCDF + 6BAF45B7121D2F37008CFCDF + 6BAF45B8121D2F37008CFCDF + 6BAF45C0121D2F57008CFCDF + + nextStack + + 6BAF4490121C4895008CFCDF + 6BAF4491121C4895008CFCDF prevStack @@ -433,11 +437,7 @@ 6BBB4AF8115B4F3400CF791D 6BBB4AF9115B4F3400CF791D 6BBB4AFA115B4F3400CF791D - 6BBB4AFB115B4F3400CF791D 6BBB4AFD115B4F3400CF791D - 6BBB4B07115B4F3400CF791D - 6BBB4B08115B4F3400CF791D - 6BBB4B0A115B4F3400CF791D 6BBB4C3B115B7A3D00CF791D 6BF5F27811747CFA000502A6 6BF5F28011747CFA000502A6 @@ -446,9 +446,6 @@ 6BF5F2EE11748884000502A6 6BF5F33911759C3C000502A6 6B4215D1118066FE006C347B - 6B10005C11AD08FA0098A59A - 6B10011F11AD19F90098A59A - 6BC7619C11B63C7E00FF5E51 6B98458E11E6039A00FA177B 6B98465211E6F9B400FA177B 6B98465411E6F9B400FA177B @@ -456,22 +453,16 @@ 6B98471011E734A100FA177B 6B98471211E734A100FA177B 6B98471411E734A100FA177B - 6B98477411E7406900FA177B 6B98477911E7433F00FA177B 6B9847C511E752CC00FA177B - 6BF9B14A11EB8CF20043574C 6BF9B15511EB8CF20043574C - 6BF9B18B11EC2D470043574C 6BF9B14911EB8CF20043574C 6BAF3860120A8A8E008CFCDF - 6BAF3861120A8A8E008CFCDF 6BAF386B120A8B78008CFCDF 6BAF3A3B1210235F008CFCDF 6BAF3ABC121038F9008CFCDF 6BAF3B0612112E63008CFCDF 6BAF3B1512112F65008CFCDF - 6BAF3BB312114389008CFCDF - 6B4215DF1180672F006C347B 6BAF3DAA1211882E008CFCDF 6BAF3E631211B713008CFCDF 6BAF3F5F1213E45B008CFCDF @@ -480,34 +471,19 @@ 6BAF405912140B4E008CFCDF 6BAF40A612142254008CFCDF 6BAF410112197F3D008CFCDF - 6BAF410212197F3D008CFCDF - 6BAF410312197F3D008CFCDF - 6BAF410412197F3D008CFCDF - 6BAF410512197F3D008CFCDF - 6BAF410612197F3D008CFCDF - 6BAF410712197F3D008CFCDF - 6BAF410812197F3D008CFCDF 6BAF411712197F3D008CFCDF 6BAF411F12197F3D008CFCDF 6BAF412F12197F3D008CFCDF 6BAF414812197F3D008CFCDF - 6BAF414912197F3D008CFCDF 6BAF414A12197F3D008CFCDF - 6BAF414B12197F3D008CFCDF 6BAF414C12197F3D008CFCDF 6BAF414D12197F3D008CFCDF 6BAF415312197F3D008CFCDF 6BAF415412197F3D008CFCDF - 6BAF415512197F3D008CFCDF - 6BAF41751219811E008CFCDF - 6BAF41761219811E008CFCDF - 6BAF41771219811E008CFCDF 6BAF41781219811E008CFCDF - 6BAF41791219811E008CFCDF 6BAF417A1219811E008CFCDF 6BAF417B1219811E008CFCDF 6BAF417C1219811E008CFCDF - 6BAF417D1219811E008CFCDF 6BAF417E1219811E008CFCDF 6BAF417F1219811E008CFCDF 6BAF41801219811E008CFCDF @@ -515,7 +491,6 @@ 6BAF41821219811E008CFCDF 6BAF41831219811E008CFCDF 6BAF41841219811E008CFCDF - 6BAF41851219811E008CFCDF 6BAF41861219811E008CFCDF 6BAF41871219811E008CFCDF 6BAF41AE12198419008CFCDF @@ -524,9 +499,7 @@ 6BAF41B412198419008CFCDF 6BAF41B612198419008CFCDF 6BAF41B712198419008CFCDF - 6BAF41B812198419008CFCDF 6BAF41B912198419008CFCDF - 6BAF41BA12198419008CFCDF 6BAF41BC12198419008CFCDF 6BAF41BD12198419008CFCDF 6BAF41BE12198419008CFCDF @@ -534,13 +507,11 @@ 6BAF41C012198419008CFCDF 6BAF41C112198419008CFCDF 6BAF41C212198419008CFCDF - 6BAF41C312198419008CFCDF 6BAF41C412198419008CFCDF 6BAF41C512198419008CFCDF 6BAF41C712198419008CFCDF 6BAF41C812198419008CFCDF 6BAF41C912198419008CFCDF - 6BAF41CA12198419008CFCDF 6BAF41CB12198419008CFCDF 6BAF41CC12198419008CFCDF 6BAF41D3121A5AEE008CFCDF @@ -644,8 +615,213 @@ 6BAF433F121AF998008CFCDF 6BAF4340121AF998008CFCDF 6BAF4341121AF998008CFCDF - 6BAF4342121AF998008CFCDF 6BAF4348121AFD0B008CFCDF + 6BAF438B121C1F3D008CFCDF + 6BAF438C121C1F3D008CFCDF + 6BAF438D121C1F3D008CFCDF + 6BAF4390121C1F3D008CFCDF + 6BAF4395121C1F3D008CFCDF + 6BAF4396121C1F3D008CFCDF + 6BAF4399121C1F3D008CFCDF + 6BAF439A121C1F3D008CFCDF + 6BAF439C121C1F3D008CFCDF + 6BAF439D121C1F3D008CFCDF + 6BAF439E121C1F3D008CFCDF + 6BAF43A1121C1F3D008CFCDF + 6BAF43A2121C1F3D008CFCDF + 6BAF43A3121C1F3D008CFCDF + 6BAF43A4121C1F3D008CFCDF + 6BAF43A6121C1F3D008CFCDF + 6BAF43B2121C1F3D008CFCDF + 6BAF43B3121C1F3D008CFCDF + 6BAF43B4121C1F3D008CFCDF + 6BAF43B5121C1F3D008CFCDF + 6BAF43B7121C1F3D008CFCDF + 6BAF43B8121C1F3D008CFCDF + 6BAF43B9121C1F3D008CFCDF + 6BAF43BB121C1F3D008CFCDF + 6BAF43BC121C1F3D008CFCDF + 6BAF43BD121C1F3D008CFCDF + 6BAF43BE121C1F3D008CFCDF + 6BAF43BF121C1F3D008CFCDF + 6BAF43C0121C1F3D008CFCDF + 6BAF43C2121C1F3D008CFCDF + 6BAF43D1121C2164008CFCDF + 6BAF43D2121C2164008CFCDF + 6BAF43D3121C2164008CFCDF + 6BAF43D4121C2164008CFCDF + 6BAF43D5121C2164008CFCDF + 6BAF43D6121C2164008CFCDF + 6BAF43D7121C2164008CFCDF + 6BAF43E3121C225B008CFCDF + 6BAF43E4121C225B008CFCDF + 6BAF43E5121C225B008CFCDF + 6BAF4404121C241D008CFCDF + 6BAF4406121C241D008CFCDF + 6BAF4408121C241D008CFCDF + 6BAF4409121C241D008CFCDF + 6BAF440A121C241D008CFCDF + 6BAF440B121C241D008CFCDF + 6BAF440C121C241D008CFCDF + 6BAF440D121C241D008CFCDF + 6BAF440E121C241D008CFCDF + 6BAF440F121C241D008CFCDF + 6BAF4411121C241D008CFCDF + 6BAF4412121C241D008CFCDF + 6BAF4413121C241D008CFCDF + 6BAF4414121C241D008CFCDF + 6BAF4415121C241D008CFCDF + 6BAF4428121C25E3008CFCDF + 6BAF4429121C25E3008CFCDF + 6BAF442A121C25E3008CFCDF + 6BAF442C121C25E3008CFCDF + 6BAF4436121C2A3F008CFCDF + 6BAF443D121C2E5D008CFCDF + 6BAF444F121C40AC008CFCDF + 6BAF4450121C40AC008CFCDF + 6BAF4451121C40AC008CFCDF + 6BAF4452121C40AC008CFCDF + 6BAF4453121C40AC008CFCDF + 6BAF4455121C40AC008CFCDF + 6BAF4456121C40AC008CFCDF + 6BAF4457121C40AC008CFCDF + 6BAF4458121C40AC008CFCDF + 6BAF4459121C40AC008CFCDF + 6BAF445A121C40AC008CFCDF + 6BAF445B121C40AC008CFCDF + 6BAF445C121C40AC008CFCDF + 6BAF445D121C40AC008CFCDF + 6BAF445E121C40AC008CFCDF + 6BAF445F121C40AC008CFCDF + 6BAF4478121C4895008CFCDF + 6BAF4479121C4895008CFCDF + 6BAF447A121C4895008CFCDF + 6BAF447B121C4895008CFCDF + 6BAF447C121C4895008CFCDF + 6BAF447D121C4895008CFCDF + 6BAF447E121C4895008CFCDF + 6BAF447F121C4895008CFCDF + 6BAF4480121C4895008CFCDF + 6BAF4481121C4895008CFCDF + 6BAF4482121C4895008CFCDF + 6BAF4483121C4895008CFCDF + 6BAF4485121C4895008CFCDF + 6BAF4486121C4895008CFCDF + 6BAF4487121C4895008CFCDF + 6BAF4489121C4895008CFCDF + 6BAF448B121C4895008CFCDF + 6BAF448C121C4895008CFCDF + 6BAF448E121C4895008CFCDF + 6BAF448F121C4895008CFCDF + 6B98477411E7406900FA177B + 6BAF3861120A8A8E008CFCDF + 6BAF410212197F3D008CFCDF + 6BAF44A1121C4A43008CFCDF + 6BAF44AD121C4BD8008CFCDF + 6BAF44BF121C4D30008CFCDF + 6BAF44C0121C4D30008CFCDF + 6BAF44C1121C4D30008CFCDF + 6BAF44C9121C4D65008CFCDF + 6BAF44CA121C4D65008CFCDF + 6BAF44D3121C4DB4008CFCDF + 6BAF44DB121C4DFC008CFCDF + 6BAF44E3121C54D4008CFCDF + 6BAF44E4121C54D4008CFCDF + 6BAF44E5121C54D4008CFCDF + 6BAF44E6121C54D4008CFCDF + 6BAF44E7121C54D4008CFCDF + 6BAF44E8121C54D4008CFCDF + 6BAF44E9121C54D4008CFCDF + 6BAF44EB121C54D4008CFCDF + 6BAF44ED121C54D4008CFCDF + 6BAF44F2121C55F4008CFCDF + 6BAF44FA121C5713008CFCDF + 6BAF44FB121C5713008CFCDF + 6BAF44FC121C5713008CFCDF + 6BAF44FD121C5713008CFCDF + 6BAF4505121C57D5008CFCDF + 6BAF4506121C57D5008CFCDF + 6BAF450C121C5810008CFCDF + 6BAF450D121C5810008CFCDF + 6BAF4512121C5874008CFCDF + 6BAF4513121C5874008CFCDF + 6BAF4536121D1723008CFCDF + 6BAF4537121D1723008CFCDF + 6BAF4538121D1723008CFCDF + 6BAF4539121D1723008CFCDF + 6BAF453A121D1723008CFCDF + 6BAF453B121D1723008CFCDF + 6BAF453C121D1723008CFCDF + 6BAF453D121D1723008CFCDF + 6BAF453E121D1723008CFCDF + 6BAF453F121D1723008CFCDF + 6BAF4540121D1723008CFCDF + 6BAF4541121D1723008CFCDF + 6BAF4542121D1723008CFCDF + 6BAF4543121D1723008CFCDF + 6BAF4544121D1723008CFCDF + 6BAF4545121D1723008CFCDF + 6BAF4546121D1723008CFCDF + 6BAF4547121D1723008CFCDF + 6BAF4548121D1723008CFCDF + 6BAF4549121D1723008CFCDF + 6BAF454A121D1723008CFCDF + 6BAF454B121D1723008CFCDF + 6BAF454C121D1723008CFCDF + 6BAF454D121D1723008CFCDF + 6BAF454E121D1723008CFCDF + 6BAF454F121D1723008CFCDF + 6BAF4550121D1723008CFCDF + 6BAF4551121D1723008CFCDF + 6BAF4552121D1723008CFCDF + 6BAF4553121D1723008CFCDF + 6BAF4554121D1723008CFCDF + 6BAF4555121D1723008CFCDF + 6BAF4556121D1723008CFCDF + 6BAF4557121D1723008CFCDF + 6BAF4558121D1723008CFCDF + 6BAF4559121D1723008CFCDF + 6BAF455A121D1723008CFCDF + 6BAF455B121D1723008CFCDF + 6BAF455C121D1723008CFCDF + 6BAF455D121D1723008CFCDF + 6BAF455E121D1723008CFCDF + 6BAF455F121D1723008CFCDF + 6BAF4568121D1849008CFCDF + 6BAF4569121D1849008CFCDF + 6BAF456A121D1849008CFCDF + 6BAF456B121D1849008CFCDF + 6BAF456C121D1849008CFCDF + 6BAF456D121D1849008CFCDF + 6BAF456E121D1849008CFCDF + 6BAF4575121D18A5008CFCDF + 6BAF4576121D18A5008CFCDF + 6BAF4577121D18A5008CFCDF + 6BAF4578121D18A5008CFCDF + 6BAF4584121D19CB008CFCDF + 6BAF4585121D19CB008CFCDF + 6BAF4586121D19CB008CFCDF + 6BAF4587121D19CB008CFCDF + 6BAF4588121D19CB008CFCDF + 6BAF4589121D19CB008CFCDF + 6BAF458A121D19CB008CFCDF + 6BAF458B121D19CB008CFCDF + 6BAF458F121D1A1C008CFCDF + 6BAF4596121D1B18008CFCDF + 6BAF4597121D1B18008CFCDF + 6BAF4598121D1B18008CFCDF + 6BAF4599121D1B18008CFCDF + 6BAF459E121D1C15008CFCDF + 6BAF459F121D1C15008CFCDF + 6BAF45A0121D1C15008CFCDF + 6BAF45A1121D1C15008CFCDF + 6BAF45A8121D1C49008CFCDF + 6BAF45AE121D2C03008CFCDF + 6BAF45AF121D2C03008CFCDF + 6BAF45B0121D2C03008CFCDF + 6BAF45B1121D2C03008CFCDF + 6BAF45BA121D2F37008CFCDF + 6BAF45BB121D2F37008CFCDF SplitCount @@ -659,18 +835,18 @@ GeometryConfiguration Frame - {{0, 0}, {994, 559}} + {{0, 0}, {994, 575}} RubberWindowFrame 0 59 1280 719 0 0 1280 778 Module PBXNavigatorGroup Proportion - 559pt + 575pt Proportion - 114pt + 98pt Tabs @@ -700,7 +876,7 @@ GeometryConfiguration Frame - {{10, 27}, {994, 268}} + {{10, 27}, {994, 123}} Module PBXProjectFindModule @@ -738,7 +914,7 @@ GeometryConfiguration Frame - {{10, 27}, {994, 87}} + {{10, 27}, {994, 71}} RubberWindowFrame 0 59 1280 719 0 0 1280 778 @@ -823,12 +999,12 @@ GeometryConfiguration Frame - {{0, 0}, {1280, 289}} + {{0, 0}, {1280, 311}} Module PBXDebugCLIModule Proportion - 289pt + 311pt ContentConfiguration @@ -847,8 +1023,8 @@ yes sizes - {{0, 0}, {577, 94}} - {{577, 0}, {703, 94}} + {{0, 0}, {577, 89}} + {{577, 0}, {703, 89}} VerticalSplitView @@ -863,8 +1039,8 @@ yes sizes - {{0, 0}, {1280, 94}} - {{0, 94}, {1280, 290}} + {{0, 0}, {1280, 89}} + {{0, 89}, {1280, 273}} @@ -884,7 +1060,7 @@ DebugSTDIOWindowFrame {{200, 200}, {500, 300}} Frame - {{0, 294}, {1280, 384}} + {{0, 316}, {1280, 362}} PBXDebugSessionStackFrameViewKey DebugVariablesTableConfiguration @@ -897,13 +1073,13 @@ 410 Frame - {{577, 0}, {703, 94}} + {{577, 0}, {703, 89}} Module PBXDebugSessionModule Proportion - 384pt + 362pt Name diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj index c3df653..6c06824 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj @@ -17,11 +17,9 @@ 6B137C8B0F7FCC1100459200 /* Recast.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; }; 6B137C8C0F7FCC1100459200 /* RecastContour.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; }; 6B137C8E0F7FCC1100459200 /* RecastFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; }; - 6B137C8F0F7FCC1100459200 /* RecastLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; }; 6B137C900F7FCC1100459200 /* RecastMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; }; 6B137C910F7FCC1100459200 /* RecastRasterization.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; }; 6B137C920F7FCC1100459200 /* RecastRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; }; - 6B137C930F7FCC1100459200 /* RecastTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; }; 6B25B6190FFA62BE004F1BC4 /* Sample.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; }; 6B25B61D0FFA62BE004F1BC4 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; }; 6B2AEC530FFB8958005BE9CC /* Sample_TileMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; }; @@ -39,6 +37,7 @@ 6BA1E88B10C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; }; 6BAF3C591211663A008CFCDF /* CrowdTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; }; 6BAF40DB12196A3D008CFCDF /* DetourNavMeshQuery.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; }; + 6BAF4442121C3D26008CFCDF /* SampleInterfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; }; 6BB788170FC0472B003C24DB /* ChunkyTriMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */; }; 6BB7FC0B10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; }; 6BB7FDA510F36F0E006DA0A6 /* InputGeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; }; @@ -75,16 +74,12 @@ 6B137C7B0F7FCBE400459200 /* MeshLoaderObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MeshLoaderObj.h; path = ../../Include/MeshLoaderObj.h; sourceTree = SOURCE_ROOT; }; 6B137C7C0F7FCBE400459200 /* SDLMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLMain.h; path = ../../Include/SDLMain.h; sourceTree = SOURCE_ROOT; }; 6B137C7E0F7FCBFE00459200 /* Recast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Recast.h; path = ../../../Recast/Include/Recast.h; sourceTree = SOURCE_ROOT; }; - 6B137C800F7FCBFE00459200 /* RecastLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastLog.h; path = ../../../Recast/Include/RecastLog.h; sourceTree = SOURCE_ROOT; }; - 6B137C810F7FCBFE00459200 /* RecastTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastTimer.h; path = ../../../Recast/Include/RecastTimer.h; sourceTree = SOURCE_ROOT; }; 6B137C820F7FCC1100459200 /* Recast.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Recast.cpp; path = ../../../Recast/Source/Recast.cpp; sourceTree = SOURCE_ROOT; }; 6B137C830F7FCC1100459200 /* RecastContour.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastContour.cpp; path = ../../../Recast/Source/RecastContour.cpp; sourceTree = SOURCE_ROOT; }; 6B137C850F7FCC1100459200 /* RecastFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastFilter.cpp; path = ../../../Recast/Source/RecastFilter.cpp; sourceTree = SOURCE_ROOT; }; - 6B137C860F7FCC1100459200 /* RecastLog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastLog.cpp; path = ../../../Recast/Source/RecastLog.cpp; sourceTree = SOURCE_ROOT; }; 6B137C870F7FCC1100459200 /* RecastMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastMesh.cpp; path = ../../../Recast/Source/RecastMesh.cpp; sourceTree = SOURCE_ROOT; }; 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastRasterization.cpp; path = ../../../Recast/Source/RecastRasterization.cpp; sourceTree = SOURCE_ROOT; }; 6B137C890F7FCC1100459200 /* RecastRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastRegion.cpp; path = ../../../Recast/Source/RecastRegion.cpp; sourceTree = SOURCE_ROOT; }; - 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastTimer.cpp; path = ../../../Recast/Source/RecastTimer.cpp; sourceTree = SOURCE_ROOT; }; 6B25B6100FFA62AD004F1BC4 /* Sample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sample.h; path = ../../Include/Sample.h; sourceTree = SOURCE_ROOT; }; 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sample.cpp; path = ../../Source/Sample.cpp; sourceTree = SOURCE_ROOT; }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../../Source/main.cpp; sourceTree = SOURCE_ROOT; }; @@ -117,6 +112,9 @@ 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetourNavMeshQuery.h; path = ../../../Detour/Include/DetourNavMeshQuery.h; sourceTree = SOURCE_ROOT; }; 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DetourNavMeshQuery.cpp; path = ../../../Detour/Source/DetourNavMeshQuery.cpp; sourceTree = SOURCE_ROOT; }; 6BAF427A121ADCC2008CFCDF /* DetourAssert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetourAssert.h; path = ../../../Detour/Include/DetourAssert.h; sourceTree = SOURCE_ROOT; }; + 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SampleInterfaces.h; path = ../../Include/SampleInterfaces.h; sourceTree = SOURCE_ROOT; }; + 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleInterfaces.cpp; path = ../../Source/SampleInterfaces.cpp; sourceTree = SOURCE_ROOT; }; + 6BAF4561121D173A008CFCDF /* RecastAssert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastAssert.h; path = ../../../Recast/Include/RecastAssert.h; sourceTree = SOURCE_ROOT; }; 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ChunkyTriMesh.cpp; path = ../../Source/ChunkyTriMesh.cpp; sourceTree = SOURCE_ROOT; }; 6BB788180FC04753003C24DB /* ChunkyTriMesh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ChunkyTriMesh.h; path = ../../Include/ChunkyTriMesh.h; sourceTree = SOURCE_ROOT; }; 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NavMeshTesterTool.h; path = ../../Include/NavMeshTesterTool.h; sourceTree = SOURCE_ROOT; }; @@ -168,6 +166,8 @@ 6B555DF5100B25FC00247EA3 /* Samples */, 6BB7FE8E10F4A175006DA0A6 /* Tools */, 6B25B6180FFA62BE004F1BC4 /* main.cpp */, + 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */, + 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */, 6BF5F2C511747E9F000502A6 /* stb_image.h */, 6BF5F23E1174763B000502A6 /* SlideShow.h */, 6BF5F23F1174763B000502A6 /* SlideShow.cpp */, @@ -263,12 +263,9 @@ 6B137C7D0F7FCBE800459200 /* Recast */ = { isa = PBXGroup; children = ( + 6BAF4561121D173A008CFCDF /* RecastAssert.h */, 6B137C7E0F7FCBFE00459200 /* Recast.h */, - 6B137C800F7FCBFE00459200 /* RecastLog.h */, - 6B137C810F7FCBFE00459200 /* RecastTimer.h */, 6B137C820F7FCC1100459200 /* Recast.cpp */, - 6B137C860F7FCC1100459200 /* RecastLog.cpp */, - 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */, 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */, 6B137C850F7FCC1100459200 /* RecastFilter.cpp */, 6BF7C4531115C277002B3F46 /* RecastArea.cpp */, @@ -411,11 +408,9 @@ 6B137C8B0F7FCC1100459200 /* Recast.cpp in Sources */, 6B137C8C0F7FCC1100459200 /* RecastContour.cpp in Sources */, 6B137C8E0F7FCC1100459200 /* RecastFilter.cpp in Sources */, - 6B137C8F0F7FCC1100459200 /* RecastLog.cpp in Sources */, 6B137C900F7FCC1100459200 /* RecastMesh.cpp in Sources */, 6B137C910F7FCC1100459200 /* RecastRasterization.cpp in Sources */, 6B137C920F7FCC1100459200 /* RecastRegion.cpp in Sources */, - 6B137C930F7FCC1100459200 /* RecastTimer.cpp in Sources */, 6BB788170FC0472B003C24DB /* ChunkyTriMesh.cpp in Sources */, 6B25B6190FFA62BE004F1BC4 /* Sample.cpp in Sources */, 6B25B61D0FFA62BE004F1BC4 /* main.cpp in Sources */, @@ -445,6 +440,7 @@ 6B9847B811E7519A00FA177B /* RecastAlloc.cpp in Sources */, 6BAF3C591211663A008CFCDF /* CrowdTool.cpp in Sources */, 6BAF40DB12196A3D008CFCDF /* DetourNavMeshQuery.cpp in Sources */, + 6BAF4442121C3D26008CFCDF /* SampleInterfaces.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/RecastDemo/Include/InputGeom.h b/RecastDemo/Include/InputGeom.h index 7b8c446..43de321 100644 --- a/RecastDemo/Include/InputGeom.h +++ b/RecastDemo/Include/InputGeom.h @@ -55,9 +55,9 @@ public: InputGeom(); ~InputGeom(); - bool loadMesh(const char* filepath); + bool loadMesh(struct rcBuildContext* ctx, const char* filepath); - bool load(const char* filepath); + bool load(struct rcBuildContext* ctx, const char* filepath); bool save(const char* filepath); // Method to return static mesh data. diff --git a/RecastDemo/Include/Sample.h b/RecastDemo/Include/Sample.h index a3dc0f3..73b9859 100644 --- a/RecastDemo/Include/Sample.h +++ b/RecastDemo/Include/Sample.h @@ -19,10 +19,22 @@ #ifndef RECASTSAMPLE_H #define RECASTSAMPLE_H -#include "DebugDraw.h" -#include "RecastDump.h" +#include "Recast.h" +#include "SampleInterfaces.h" +// Tool types. +enum SampleToolType +{ + TOOL_NONE = 0, + TOOL_TILE_EDIT, + TOOL_TILE_HIGHLIGHT, + TOOL_NAVMESH_TESTER, + TOOL_OFFMESH_CONNECTION, + TOOL_CONVEX_VOLUME, + TOOL_CROWD, +}; + // These are just sample areas to use consistent values across the samples. // The use should specify these base on his needs. enum SamplePolyAreas @@ -43,46 +55,6 @@ enum SamplePolyFlags SAMPLE_POLYFLAGS_ALL = 0xffff // All abilities. }; - -// OpenGL debug draw implementation. -class DebugDrawGL : public duDebugDraw -{ -public: - virtual void depthMask(bool state); - virtual void begin(duDebugDrawPrimitives prim, float size = 1.0f); - virtual void vertex(const float* pos, unsigned int color); - virtual void vertex(const float x, const float y, const float z, unsigned int color); - virtual void end(); -}; - -// stdio file implementation. -class FileIO : public duFileIO -{ - FILE* m_fp; - int m_mode; -public: - FileIO(); - virtual ~FileIO(); - bool openForWrite(const char* path); - bool openForRead(const char* path); - virtual bool isWriting() const; - virtual bool isReading() const; - virtual bool write(const void* ptr, const size_t size); - virtual bool read(void* ptr, const size_t size); -}; - -// Tool types. -enum SampleToolType -{ - TOOL_NONE = 0, - TOOL_TILE_EDIT, - TOOL_TILE_HIGHLIGHT, - TOOL_NAVMESH_TESTER, - TOOL_OFFMESH_CONNECTION, - TOOL_CONVEX_VOLUME, - TOOL_CROWD, -}; - struct SampleTool { virtual ~SampleTool() {} @@ -122,10 +94,14 @@ protected: SampleTool* m_tool; + rcBuildContext* m_ctx; + public: Sample(); virtual ~Sample(); + void setContext(rcBuildContext* ctx) { m_ctx = ctx; } + void setTool(SampleTool* tool); virtual void handleSettings(); diff --git a/RecastDemo/Include/SampleInterfaces.h b/RecastDemo/Include/SampleInterfaces.h new file mode 100644 index 0000000..c31a6fa --- /dev/null +++ b/RecastDemo/Include/SampleInterfaces.h @@ -0,0 +1,90 @@ +// +// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include "DebugDraw.h" +#include "Recast.h" +#include "RecastDump.h" + +// These are example implementations of various interfaces used in Recast and Detour. + +// Recast build context. +class BuildContext : public rcBuildContext +{ + int m_buildTime[RC_MAX_TIMES]; + + static const int MAX_MESSAGES = 1000; + const char* m_messages[MAX_MESSAGES]; + int m_messageCount; + static const int TEXT_POOL_SIZE = 8000; + char m_textPool[TEXT_POOL_SIZE]; + int m_textPoolSize; + +public: + BuildContext(); + ~BuildContext(); + + // Get current time in platform specific units. + virtual rcTimeVal getTime(); + // Returns time passed from 'start' to 'end' in microseconds. + virtual int getDeltaTimeUsec(const rcTimeVal start, const rcTimeVal end); + + // Resets log. + virtual void resetLog(); + // Logs a message. + virtual void log(const rcLogCategory category, const char* format, ...); + // Dumps the log to stdout. + void dumpLog(const char* format, ...); + // Returns number of log messages. + int getLogCount() const; + // Returns log message text. + const char* getLogText(const int i) const; + + // Resets build time collecting. + virtual void resetBuildTimes(); + // Reports build time of specified label for accumulation. + virtual void reportBuildTime(const rcBuilTimeLabel label, const int time); + // Returns accumulated build time for specified label, or -1 if no time was reported. + virtual int getBuildTime(const rcBuilTimeLabel label); +}; + +// OpenGL debug draw implementation. +class DebugDrawGL : public duDebugDraw +{ +public: + virtual void depthMask(bool state); + virtual void begin(duDebugDrawPrimitives prim, float size = 1.0f); + virtual void vertex(const float* pos, unsigned int color); + virtual void vertex(const float x, const float y, const float z, unsigned int color); + virtual void end(); +}; + +// stdio file implementation. +class FileIO : public duFileIO +{ + FILE* m_fp; + int m_mode; +public: + FileIO(); + virtual ~FileIO(); + bool openForWrite(const char* path); + bool openForRead(const char* path); + virtual bool isWriting() const; + virtual bool isReading() const; + virtual bool write(const void* ptr, const size_t size); + virtual bool read(void* ptr, const size_t size); +}; diff --git a/RecastDemo/Include/Sample_Debug.h b/RecastDemo/Include/Sample_Debug.h index e57659c..1e0042a 100644 --- a/RecastDemo/Include/Sample_Debug.h +++ b/RecastDemo/Include/Sample_Debug.h @@ -22,7 +22,6 @@ #include "Sample.h" #include "DetourNavMesh.h" #include "Recast.h" -#include "RecastLog.h" // Sample used for random debugging. class Sample_Debug : public Sample diff --git a/RecastDemo/Include/Sample_SoloMeshSimple.h b/RecastDemo/Include/Sample_SoloMeshSimple.h index b73de54..ccb651e 100644 --- a/RecastDemo/Include/Sample_SoloMeshSimple.h +++ b/RecastDemo/Include/Sample_SoloMeshSimple.h @@ -22,13 +22,11 @@ #include "Sample.h" #include "DetourNavMesh.h" #include "Recast.h" -#include "RecastLog.h" class Sample_SoloMeshSimple : public Sample { protected: bool m_keepInterResults; - rcBuildTimes m_buildTimes; float m_totalBuildTimeMs; unsigned char* m_triareas; diff --git a/RecastDemo/Include/Sample_SoloMeshTiled.h b/RecastDemo/Include/Sample_SoloMeshTiled.h index 28a839c..9f2cce1 100644 --- a/RecastDemo/Include/Sample_SoloMeshTiled.h +++ b/RecastDemo/Include/Sample_SoloMeshTiled.h @@ -22,7 +22,6 @@ #include "Sample.h" #include "DetourNavMesh.h" #include "Recast.h" -#include "RecastLog.h" #include "ChunkyTriMesh.h" class Sample_SoloMeshTiled : public Sample @@ -61,7 +60,6 @@ protected: bool m_measurePerTileTimings; bool m_keepInterResults; float m_tileSize; - rcBuildTimes m_buildTimes; float m_totalBuildTimeMs; rcPolyMesh* m_pmesh; diff --git a/RecastDemo/Include/Sample_TileMesh.h b/RecastDemo/Include/Sample_TileMesh.h index 586cc17..590c064 100644 --- a/RecastDemo/Include/Sample_TileMesh.h +++ b/RecastDemo/Include/Sample_TileMesh.h @@ -22,7 +22,6 @@ #include "Sample.h" #include "DetourNavMesh.h" #include "Recast.h" -#include "RecastLog.h" #include "ChunkyTriMesh.h" class Sample_TileMesh : public Sample @@ -30,7 +29,6 @@ class Sample_TileMesh : public Sample protected: bool m_keepInterResults; bool m_buildAll; - rcBuildTimes m_buildTimes; float m_totalBuildTimeMs; bool m_drawPortals; @@ -42,6 +40,30 @@ protected: rcPolyMeshDetail* m_dmesh; rcConfig m_cfg; + enum DrawMode + { + DRAWMODE_NAVMESH, + DRAWMODE_NAVMESH_TRANS, + DRAWMODE_NAVMESH_BVTREE, + DRAWMODE_NAVMESH_PORTALS, + DRAWMODE_NAVMESH_INVIS, + DRAWMODE_MESH, + DRAWMODE_VOXELS, + DRAWMODE_VOXELS_WALKABLE, + DRAWMODE_COMPACT, + DRAWMODE_COMPACT_DISTANCE, + DRAWMODE_COMPACT_REGIONS, + DRAWMODE_REGION_CONNECTIONS, + DRAWMODE_RAW_CONTOURS, + DRAWMODE_BOTH_CONTOURS, + DRAWMODE_CONTOURS, + DRAWMODE_POLYMESH, + DRAWMODE_POLYMESH_DETAIL, + MAX_DRAWMODE + }; + + DrawMode m_drawMode; + int m_maxTiles; int m_maxPolysPerTile; float m_tileSize; diff --git a/RecastDemo/Include/TestCase.h b/RecastDemo/Include/TestCase.h index a234dfe..6adf3e2 100644 --- a/RecastDemo/Include/TestCase.h +++ b/RecastDemo/Include/TestCase.h @@ -20,7 +20,7 @@ #define TESTCASE_H #include "DetourNavMesh.h" -#include "RecastTimer.h" +#include "Recast.h" class TestCase { @@ -71,7 +71,7 @@ public: inline const char* getSampleName() const { return m_sampleName; } inline const char* getGeomFileName() const { return m_geomFileName; } - void doTests(class dtNavMesh* navmesh, class dtNavMeshQuery* navquery); + void doTests(rcBuildContext* ctx, class dtNavMesh* navmesh, class dtNavMeshQuery* navquery); void handleRender(); bool handleRenderOverlay(double* proj, double* model, int* view); diff --git a/RecastDemo/Source/InputGeom.cpp b/RecastDemo/Source/InputGeom.cpp index 690afe3..b7c9f3d 100644 --- a/RecastDemo/Source/InputGeom.cpp +++ b/RecastDemo/Source/InputGeom.cpp @@ -22,7 +22,6 @@ #include #include #include "Recast.h" -#include "RecastLog.h" #include "InputGeom.h" #include "ChunkyTriMesh.h" #include "MeshLoaderObj.h" @@ -119,7 +118,7 @@ InputGeom::~InputGeom() delete m_mesh; } -bool InputGeom::loadMesh(const char* filepath) +bool InputGeom::loadMesh(rcBuildContext* ctx, const char* filepath) { if (m_mesh) { @@ -134,14 +133,12 @@ bool InputGeom::loadMesh(const char* filepath) m_mesh = new rcMeshLoaderObj; if (!m_mesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "loadMesh: Out of memory 'm_mesh'."); + ctx->log(RC_LOG_ERROR, "loadMesh: Out of memory 'm_mesh'."); return false; } if (!m_mesh->load(filepath)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not load '%s'", filepath); + ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not load '%s'", filepath); return false; } @@ -150,21 +147,19 @@ bool InputGeom::loadMesh(const char* filepath) m_chunkyMesh = new rcChunkyTriMesh; if (!m_chunkyMesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'm_chunkyMesh'."); + ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'm_chunkyMesh'."); return false; } if (!rcCreateChunkyTriMesh(m_mesh->getVerts(), m_mesh->getTris(), m_mesh->getTriCount(), 256, m_chunkyMesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Failed to build chunky mesh."); + ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Failed to build chunky mesh."); return false; } return true; } -bool InputGeom::load(const char* filePath) +bool InputGeom::load(rcBuildContext* ctx, const char* filePath) { char* buf = 0; FILE* fp = fopen(filePath, "rb"); @@ -204,7 +199,7 @@ bool InputGeom::load(const char* filePath) name++; if (*name) { - if (!loadMesh(name)) + if (!loadMesh(ctx, name)) { delete [] buf; return false; diff --git a/RecastDemo/Source/NavMeshTesterTool.cpp b/RecastDemo/Source/NavMeshTesterTool.cpp index c644aa1..31ab643 100644 --- a/RecastDemo/Source/NavMeshTesterTool.cpp +++ b/RecastDemo/Source/NavMeshTesterTool.cpp @@ -26,7 +26,6 @@ #include "NavMeshTesterTool.h" #include "Sample.h" #include "Recast.h" -#include "RecastTimer.h" #include "RecastDebugDraw.h" #include "DetourNavMesh.h" #include "DetourNavMeshBuilder.h" diff --git a/RecastDemo/Source/Sample.cpp b/RecastDemo/Source/Sample.cpp index 50b316c..a71d109 100644 --- a/RecastDemo/Source/Sample.cpp +++ b/RecastDemo/Source/Sample.cpp @@ -34,114 +34,13 @@ # define snprintf _snprintf #endif - -void DebugDrawGL::depthMask(bool state) -{ - glDepthMask(state ? GL_TRUE : GL_FALSE); -} - -void DebugDrawGL::begin(duDebugDrawPrimitives prim, float size) -{ - switch (prim) - { - case DU_DRAW_POINTS: - glPointSize(size); - glBegin(GL_POINTS); - break; - case DU_DRAW_LINES: - glLineWidth(size); - glBegin(GL_LINES); - break; - case DU_DRAW_TRIS: - glBegin(GL_TRIANGLES); - break; - case DU_DRAW_QUADS: - glBegin(GL_QUADS); - break; - }; -} - -void DebugDrawGL::vertex(const float* pos, unsigned int color) -{ - glColor4ubv((GLubyte*)&color); - glVertex3fv(pos); -} - -void DebugDrawGL::vertex(const float x, const float y, const float z, unsigned int color) -{ - glColor4ubv((GLubyte*)&color); - glVertex3f(x,y,z); -} - -void DebugDrawGL::end() -{ - glEnd(); - glLineWidth(1.0f); - glPointSize(1.0f); -} - - -FileIO::FileIO() : - m_fp(0), - m_mode(-1) -{ -} - -FileIO::~FileIO() -{ - if (m_fp) fclose(m_fp); -} - -bool FileIO::openForWrite(const char* path) -{ - if (m_fp) return false; - m_fp = fopen(path, "wb"); - if (!m_fp) return false; - m_mode = 1; - return true; -} - -bool FileIO::openForRead(const char* path) -{ - if (m_fp) return false; - m_fp = fopen(path, "rb"); - if (!m_fp) return false; - m_mode = 2; - return true; -} - -bool FileIO::isWriting() const -{ - return m_mode == 1; -} - -bool FileIO::isReading() const -{ - return m_mode == 2; -} - -bool FileIO::write(const void* ptr, const size_t size) -{ - if (!m_fp || m_mode != 1) return false; - fwrite(ptr, size, 1, m_fp); - return true; -} - -bool FileIO::read(void* ptr, const size_t size) -{ - if (!m_fp || m_mode != 2) return false; - fread(ptr, size, 1, m_fp); - return true; -} - - - Sample::Sample() : m_geom(0), m_navMesh(0), m_navQuery(0), m_navMeshDrawFlags(DU_DRAWNAVMESH_OFFMESHCONS), - m_tool(0) + m_tool(0), + m_ctx(0) { resetCommonSettings(); m_navQuery = dtAllocNavMeshQuery(); diff --git a/RecastDemo/Source/SampleInterfaces.cpp b/RecastDemo/Source/SampleInterfaces.cpp new file mode 100644 index 0000000..bb7b67d --- /dev/null +++ b/RecastDemo/Source/SampleInterfaces.cpp @@ -0,0 +1,277 @@ +#define _USE_MATH_DEFINES +#include +#include +#include +#include "SampleInterfaces.h" +#include "Recast.h" +#include "RecastDebugDraw.h" +#include "DetourDebugDraw.h" +#include "SDL.h" +#include "SDL_opengl.h" + +#ifdef WIN32 +# define snprintf _snprintf +#endif + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +BuildContext::BuildContext() : + m_messageCount(0), + m_textPoolSize(0) +{ + resetBuildTimes(); +} + +BuildContext::~BuildContext() +{ +} + + +#if defined(WIN32) + +// Win32 +#include + +rcTimeVal BuildContext::getTime() +{ + __int64 count; + QueryPerformanceCounter((LARGE_INTEGER*)&count); + return count; +} + +int BuildContext::getDeltaTimeUsec(const rcTimeVal start, const rcTimeVal end) +{ + static __int64 freq = 0; + if (freq == 0) + QueryPerformanceFrequency((LARGE_INTEGER*)&freq); + __int64 elapsed = end - start; + return (int)(elapsed*1000000 / freq); +} + +#else + +// Linux, BSD, OSX + +#include + +rcTimeVal BuildContext::getTime() +{ + timeval now; + gettimeofday(&now, 0); + return (rcTimeVal)now.tv_sec*1000000L + (rcTimeVal)now.tv_usec; +} + +int BuildContext::getDeltaTimeUsec(const rcTimeVal start, const rcTimeVal end) +{ + return (int)(end - start); +} + +#endif + + +void BuildContext::resetLog() +{ + m_messageCount = 0; + m_textPoolSize = 0; +} + +void BuildContext::log(const rcLogCategory category, const char* format, ...) +{ + if (m_messageCount >= MAX_MESSAGES) + return; + char* dst = &m_textPool[m_textPoolSize]; + int n = TEXT_POOL_SIZE - m_textPoolSize; + if (n < 2) + return; + // Store category + *dst = (char)category; + n--; + // Store message + va_list ap; + va_start(ap, format); + int ret = vsnprintf(dst+1, n-1, format, ap); + va_end(ap); + if (ret > 0) + m_textPoolSize += ret+2; + m_messages[m_messageCount++] = dst; +} + +void BuildContext::dumpLog(const char* format, ...) +{ + // Print header. + va_list ap; + va_start(ap, format); + vprintf(format, ap); + va_end(ap); + printf("\n"); + + // Print messages + const int TAB_STOPS[4] = { 28, 36, 44, 52 }; + for (int i = 0; i < m_messageCount; ++i) + { + const char* msg = m_messages[i]+1; + int n = 0; + while (*msg) + { + if (*msg == '\t') + { + int count = 1; + for (int j = 0; j < 4; ++j) + { + if (n < TAB_STOPS[j]) + { + count = TAB_STOPS[j] - n; + break; + } + } + while (--count) + { + putchar(' '); + n++; + } + } + else + { + putchar(*msg); + n++; + } + msg++; + } + putchar('\n'); + } +} + +int BuildContext::getLogCount() const +{ + return m_messageCount; +} + +const char* BuildContext::getLogText(const int i) const +{ + return m_messages[i]+1; +} + +void BuildContext::resetBuildTimes() +{ + for (int i = 0; i < RC_MAX_TIMES; ++i) + m_buildTime[i] = -1; +} + +void BuildContext::reportBuildTime(const rcBuilTimeLabel label, const int time) +{ + const int idx = (int)label; + // The build times are initialized to negative to indicate no samples collected. + if (m_buildTime[idx] < 0) + m_buildTime[idx] = time; + else + m_buildTime[idx] += time; +} + +int BuildContext::getBuildTime(const rcBuilTimeLabel label) +{ + return m_buildTime[label]; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +void DebugDrawGL::depthMask(bool state) +{ + glDepthMask(state ? GL_TRUE : GL_FALSE); +} + +void DebugDrawGL::begin(duDebugDrawPrimitives prim, float size) +{ + switch (prim) + { + case DU_DRAW_POINTS: + glPointSize(size); + glBegin(GL_POINTS); + break; + case DU_DRAW_LINES: + glLineWidth(size); + glBegin(GL_LINES); + break; + case DU_DRAW_TRIS: + glBegin(GL_TRIANGLES); + break; + case DU_DRAW_QUADS: + glBegin(GL_QUADS); + break; + }; +} + +void DebugDrawGL::vertex(const float* pos, unsigned int color) +{ + glColor4ubv((GLubyte*)&color); + glVertex3fv(pos); +} + +void DebugDrawGL::vertex(const float x, const float y, const float z, unsigned int color) +{ + glColor4ubv((GLubyte*)&color); + glVertex3f(x,y,z); +} + +void DebugDrawGL::end() +{ + glEnd(); + glLineWidth(1.0f); + glPointSize(1.0f); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +FileIO::FileIO() : + m_fp(0), + m_mode(-1) +{ +} + +FileIO::~FileIO() +{ + if (m_fp) fclose(m_fp); +} + +bool FileIO::openForWrite(const char* path) +{ + if (m_fp) return false; + m_fp = fopen(path, "wb"); + if (!m_fp) return false; + m_mode = 1; + return true; +} + +bool FileIO::openForRead(const char* path) +{ + if (m_fp) return false; + m_fp = fopen(path, "rb"); + if (!m_fp) return false; + m_mode = 2; + return true; +} + +bool FileIO::isWriting() const +{ + return m_mode == 1; +} + +bool FileIO::isReading() const +{ + return m_mode == 2; +} + +bool FileIO::write(const void* ptr, const size_t size) +{ + if (!m_fp || m_mode != 1) return false; + fwrite(ptr, size, 1, m_fp); + return true; +} + +bool FileIO::read(void* ptr, const size_t size) +{ + if (!m_fp || m_mode != 2) return false; + fread(ptr, size, 1, m_fp); + return true; +} + + diff --git a/RecastDemo/Source/Sample_Debug.cpp b/RecastDemo/Source/Sample_Debug.cpp index 9e61ff6..07f3a11 100644 --- a/RecastDemo/Source/Sample_Debug.cpp +++ b/RecastDemo/Source/Sample_Debug.cpp @@ -23,7 +23,6 @@ #include "InputGeom.h" #include "Recast.h" #include "DetourNavMesh.h" -#include "RecastLog.h" #include "RecastDebugDraw.h" #include "DetourDebugDraw.h" #include "RecastDump.h" @@ -164,7 +163,7 @@ Sample_Debug::Sample_Debug() : m_pmesh = rcAllocPolyMesh(); if (m_pmesh) { - rcBuildPolyMesh(*m_cset, 6, *m_pmesh); + rcBuildPolyMesh(m_ctx, *m_cset, 6, *m_pmesh); } } } @@ -376,14 +375,12 @@ bool Sample_Debug::handleBuild() m_cset = rcAllocContourSet(); if (!m_cset) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); return false; } - if (!rcBuildContours(*m_chf, /*m_cfg.maxSimplificationError*/1.3f, /*m_cfg.maxEdgeLen*/12, *m_cset)) + if (!rcBuildContours(m_ctx, *m_chf, /*m_cfg.maxSimplificationError*/1.3f, /*m_cfg.maxEdgeLen*/12, *m_cset)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); return false; } } diff --git a/RecastDemo/Source/Sample_SoloMeshSimple.cpp b/RecastDemo/Source/Sample_SoloMeshSimple.cpp index a61db16..e0fb803 100644 --- a/RecastDemo/Source/Sample_SoloMeshSimple.cpp +++ b/RecastDemo/Source/Sample_SoloMeshSimple.cpp @@ -27,7 +27,6 @@ #include "Sample.h" #include "Sample_SoloMeshSimple.h" #include "Recast.h" -#include "RecastTimer.h" #include "RecastDebugDraw.h" #include "RecastDump.h" #include "DetourNavMesh.h" @@ -343,8 +342,7 @@ bool Sample_SoloMeshSimple::handleBuild() { if (!m_geom || !m_geom->getMesh()) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); return false; } @@ -385,18 +383,14 @@ bool Sample_SoloMeshSimple::handleBuild() rcCalcGridSize(m_cfg.bmin, m_cfg.bmax, m_cfg.cs, &m_cfg.width, &m_cfg.height); // Reset build times gathering. - memset(&m_buildTimes, 0, sizeof(m_buildTimes)); - rcSetBuildTimes(&m_buildTimes); + m_ctx->resetBuildTimes(); // Start the build process. - rcTimeVal totStartTime = rcGetPerformanceTimer(); + rcTimeVal totStartTime = m_ctx->getTime(); - if (rcGetLog()) - { - rcGetLog()->log(RC_LOG_PROGRESS, "Building navigation:"); - rcGetLog()->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); - rcGetLog()->log(RC_LOG_PROGRESS, " - %.1fK verts, %.1fK tris", nverts/1000.0f, ntris/1000.0f); - } + m_ctx->log(RC_LOG_PROGRESS, "Building navigation:"); + m_ctx->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); + m_ctx->log(RC_LOG_PROGRESS, " - %.1fK verts, %.1fK tris", nverts/1000.0f, ntris/1000.0f); // // Step 2. Rasterize input polygon soup. @@ -406,14 +400,12 @@ bool Sample_SoloMeshSimple::handleBuild() m_solid = rcAllocHeightfield(); if (!m_solid) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'solid'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'solid'."); return false; } - if (!rcCreateHeightfield(*m_solid, m_cfg.width, m_cfg.height, m_cfg.bmin, m_cfg.bmax, m_cfg.cs, m_cfg.ch)) + if (!rcCreateHeightfield(m_ctx, *m_solid, m_cfg.width, m_cfg.height, m_cfg.bmin, m_cfg.bmax, m_cfg.cs, m_cfg.ch)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create solid heightfield."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not create solid heightfield."); return false; } @@ -423,8 +415,7 @@ bool Sample_SoloMeshSimple::handleBuild() m_triareas = new unsigned char[ntris]; if (!m_triareas) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'm_triareas' (%d).", ntris); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'm_triareas' (%d).", ntris); return false; } @@ -432,8 +423,8 @@ bool Sample_SoloMeshSimple::handleBuild() // If your input data is multiple meshes, you can transform them here, calculate // the are type for each of the meshes and rasterize them. memset(m_triareas, 0, ntris*sizeof(unsigned char)); - rcMarkWalkableTriangles(m_cfg.walkableSlopeAngle, verts, nverts, tris, ntris, m_triareas); - rcRasterizeTriangles(verts, nverts, tris, m_triareas, ntris, *m_solid, m_cfg.walkableClimb); + rcMarkWalkableTriangles(m_ctx, m_cfg.walkableSlopeAngle, verts, nverts, tris, ntris, m_triareas); + rcRasterizeTriangles(m_ctx, verts, nverts, tris, m_triareas, ntris, *m_solid, m_cfg.walkableClimb); if (!m_keepInterResults) { @@ -448,9 +439,9 @@ bool Sample_SoloMeshSimple::handleBuild() // Once all geoemtry is rasterized, we do initial pass of filtering to // remove unwanted overhangs caused by the conservative rasterization // as well as filter spans where the character cannot possibly stand. - rcFilterLowHangingWalkableObstacles(m_cfg.walkableClimb, *m_solid); - rcFilterLedgeSpans(m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid); - rcFilterWalkableLowHeightSpans(m_cfg.walkableHeight, *m_solid); + rcFilterLowHangingWalkableObstacles(m_ctx, m_cfg.walkableClimb, *m_solid); + rcFilterLedgeSpans(m_ctx, m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid); + rcFilterWalkableLowHeightSpans(m_ctx, m_cfg.walkableHeight, *m_solid); // @@ -463,14 +454,12 @@ bool Sample_SoloMeshSimple::handleBuild() m_chf = rcAllocCompactHeightfield(); if (!m_chf) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'chf'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'chf'."); return false; } - if (!rcBuildCompactHeightfield(m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid, *m_chf)) + if (!rcBuildCompactHeightfield(m_ctx, m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build compact data."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build compact data."); return false; } @@ -481,31 +470,29 @@ bool Sample_SoloMeshSimple::handleBuild() } // Erode the walkable area by agent radius. - if (!rcErodeWalkableArea(m_cfg.walkableRadius, *m_chf)) + if (!rcErodeWalkableArea(m_ctx, m_cfg.walkableRadius, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not erode."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not erode."); return false; } // (Optional) Mark areas. const ConvexVolume* vols = m_geom->getConvexVolumes(); for (int i = 0; i < m_geom->getConvexVolumeCount(); ++i) - rcMarkConvexPolyArea(vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *m_chf); + rcMarkConvexPolyArea(m_ctx, vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *m_chf); // Prepare for region partitioning, by calculating distance field along the walkable surface. - if (!rcBuildDistanceField(*m_chf)) + if (!rcBuildDistanceField(m_ctx, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build distance field."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build distance field."); return false; } // Partition the walkable surface into simple regions without holes. - if (!rcBuildRegions(*m_chf, m_cfg.borderSize, m_cfg.minRegionSize, m_cfg.mergeRegionSize)) + if (!rcBuildRegions(m_ctx, *m_chf, m_cfg.borderSize, m_cfg.minRegionSize, m_cfg.mergeRegionSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build regions."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build regions."); + return false; } // @@ -516,14 +503,12 @@ bool Sample_SoloMeshSimple::handleBuild() m_cset = rcAllocContourSet(); if (!m_cset) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); return false; } - if (!rcBuildContours(*m_chf, m_cfg.maxSimplificationError, m_cfg.maxEdgeLen, *m_cset)) + if (!rcBuildContours(m_ctx, *m_chf, m_cfg.maxSimplificationError, m_cfg.maxEdgeLen, *m_cset)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); return false; } @@ -535,14 +520,12 @@ bool Sample_SoloMeshSimple::handleBuild() m_pmesh = rcAllocPolyMesh(); if (!m_pmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); return false; } - if (!rcBuildPolyMesh(*m_cset, m_cfg.maxVertsPerPoly, *m_pmesh)) + if (!rcBuildPolyMesh(m_ctx, *m_cset, m_cfg.maxVertsPerPoly, *m_pmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not triangulate contours."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not triangulate contours."); return false; } @@ -553,15 +536,14 @@ bool Sample_SoloMeshSimple::handleBuild() m_dmesh = rcAllocPolyMeshDetail(); if (!m_dmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmdtl'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmdtl'."); return false; } - if (!rcBuildPolyMeshDetail(*m_pmesh, *m_chf, m_cfg.detailSampleDist, m_cfg.detailSampleMaxError, *m_dmesh)) + if (!rcBuildPolyMeshDetail(m_ctx, *m_pmesh, *m_chf, m_cfg.detailSampleDist, m_cfg.detailSampleMaxError, *m_dmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build detail mesh."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build detail mesh."); + return false; } if (!m_keepInterResults) @@ -639,8 +621,7 @@ bool Sample_SoloMeshSimple::handleBuild() if (!dtCreateNavMeshData(¶ms, &navData, &navDataSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not build Detour navmesh."); + m_ctx->log(RC_LOG_ERROR, "Could not build Detour navmesh."); return false; } @@ -648,68 +629,31 @@ bool Sample_SoloMeshSimple::handleBuild() if (!m_navMesh) { dtFree(navData); - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not create Detour navmesh"); + m_ctx->log(RC_LOG_ERROR, "Could not create Detour navmesh"); return false; } if (!m_navMesh->init(navData, navDataSize, DT_TILE_FREE_DATA)) { dtFree(navData); - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not init Detour navmesh"); + m_ctx->log(RC_LOG_ERROR, "Could not init Detour navmesh"); return false; } if (!m_navQuery->init(m_navMesh, 2048)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not init Detour navmesh query"); + m_ctx->log(RC_LOG_ERROR, "Could not init Detour navmesh query"); return false; } } - rcTimeVal totEndTime = rcGetPerformanceTimer(); + rcTimeVal totEndTime = m_ctx->getTime(); // Show performance stats. - if (rcGetLog()) - { - const float pc = 100.0f / rcGetDeltaTimeUsec(totStartTime, totEndTime); - - rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.1fms (%.1f%%)", m_buildTimes.rasterizeTriangles/1000.0f, m_buildTimes.rasterizeTriangles*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Compact: %.1fms (%.1f%%)", m_buildTimes.buildCompact/1000.0f, m_buildTimes.buildCompact*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Border: %.1fms (%.1f%%)", m_buildTimes.filterBorder/1000.0f, m_buildTimes.filterBorder*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Walkable: %.1fms (%.1f%%)", m_buildTimes.filterWalkable/1000.0f, m_buildTimes.filterWalkable*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Reachable: %.1fms (%.1f%%)", m_buildTimes.filterMarkReachable/1000.0f, m_buildTimes.filterMarkReachable*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Erode walkable area: %.1fms (%.1f%%)", m_buildTimes.erodeArea/1000.0f, m_buildTimes.erodeArea*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Median area: %.1fms (%.1f%%)", m_buildTimes.filterMedian/1000.0f, m_buildTimes.filterMedian*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Distancefield: %.1fms (%.1f%%)", m_buildTimes.buildDistanceField/1000.0f, m_buildTimes.buildDistanceField*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - distance: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldDist/1000.0f, m_buildTimes.buildDistanceFieldDist*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldBlur/1000.0f, m_buildTimes.buildDistanceFieldBlur*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Regions: %.1fms (%.1f%%)", m_buildTimes.buildRegions/1000.0f, m_buildTimes.buildRegions*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - watershed: %.1fms (%.1f%%)", m_buildTimes.buildRegionsReg/1000.0f, m_buildTimes.buildRegionsReg*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - expand: %.1fms (%.1f%%)", m_buildTimes.buildRegionsExp/1000.0f, m_buildTimes.buildRegionsExp*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - find catchment basins: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFlood/1000.0f, m_buildTimes.buildRegionsFlood*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFilter/1000.0f, m_buildTimes.buildRegionsFilter*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Contours: %.1fms (%.1f%%)", m_buildTimes.buildContours/1000.0f, m_buildTimes.buildContours*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - trace: %.1fms (%.1f%%)", m_buildTimes.buildContoursTrace/1000.0f, m_buildTimes.buildContoursTrace*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - simplify: %.1fms (%.1f%%)", m_buildTimes.buildContoursSimplify/1000.0f, m_buildTimes.buildContoursSimplify*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms (%.1f%%)", m_buildTimes.buildPolymesh/1000.0f, m_buildTimes.buildPolymesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh Detail: %.1fms (%.1f%%)", m_buildTimes.buildDetailMesh/1000.0f, m_buildTimes.buildDetailMesh*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Polymesh: Verts:%d Polys:%d", m_pmesh->nverts, m_pmesh->npolys); - - rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); - } + duLogBuildTimes(m_ctx, m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)); + m_ctx->log(RC_LOG_PROGRESS, ">> Polymesh: %d vertices %d polygons", m_pmesh->nverts, m_pmesh->npolys); - m_totalBuildTimeMs = rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; + m_totalBuildTimeMs = m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; if (m_tool) m_tool->init(this); diff --git a/RecastDemo/Source/Sample_SoloMeshTiled.cpp b/RecastDemo/Source/Sample_SoloMeshTiled.cpp index 43a003f..6fdb717 100644 --- a/RecastDemo/Source/Sample_SoloMeshTiled.cpp +++ b/RecastDemo/Source/Sample_SoloMeshTiled.cpp @@ -27,7 +27,6 @@ #include "Sample.h" #include "Sample_SoloMeshTiled.h" #include "Recast.h" -#include "RecastTimer.h" #include "RecastDebugDraw.h" #include "DetourNavMesh.h" #include "DetourNavMeshBuilder.h" @@ -684,8 +683,7 @@ bool Sample_SoloMeshTiled::handleBuild() { if (!m_geom || !m_geom->getMesh() || !m_geom->getChunkyMesh()) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); return false; } @@ -732,18 +730,16 @@ bool Sample_SoloMeshTiled::handleBuild() rcCalcGridSize(m_cfg.bmin, m_cfg.bmax, m_cfg.cs, &m_cfg.width, &m_cfg.height); // Reset build times gathering. - memset(&m_buildTimes, 0, sizeof(m_buildTimes)); - rcSetBuildTimes(&m_buildTimes); + m_ctx->resetBuildTimes(); // Start the build process. - rcTimeVal totStartTime = rcGetPerformanceTimer(); + rcTimeVal totStartTime = m_ctx->getTime(); // Calculate the number of tiles in the output and initialize tiles. m_tileSet = new TileSet; if (!m_tileSet) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'tileSet'."); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'tileSet'."); return false; } rcVcopy(m_tileSet->bmin, m_cfg.bmin); @@ -755,18 +751,14 @@ bool Sample_SoloMeshTiled::handleBuild() m_tileSet->tiles = new Tile[m_tileSet->height * m_tileSet->width]; if (!m_tileSet->tiles) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'tileSet->tiles' (%d).", m_tileSet->height * m_tileSet->width); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'tileSet->tiles' (%d).", m_tileSet->height * m_tileSet->width); return false; } - if (rcGetLog()) - { - rcGetLog()->log(RC_LOG_PROGRESS, "Building navigation:"); - rcGetLog()->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); - rcGetLog()->log(RC_LOG_PROGRESS, " - %d x %d tiles", m_tileSet->width, m_tileSet->height); - rcGetLog()->log(RC_LOG_PROGRESS, " - %.1f verts, %.1f tris", nverts/1000.0f, ntris/1000.0f); - } + m_ctx->log(RC_LOG_PROGRESS, "Building navigation:"); + m_ctx->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); + m_ctx->log(RC_LOG_PROGRESS, " - %d x %d tiles", m_tileSet->width, m_tileSet->height); + m_ctx->log(RC_LOG_PROGRESS, " - %.1f verts, %.1f tris", nverts/1000.0f, ntris/1000.0f); // Initialize per tile config. rcConfig tileCfg; @@ -778,23 +770,16 @@ bool Sample_SoloMeshTiled::handleBuild() unsigned char* triangleAreas = new unsigned char[chunkyMesh->maxTrisPerChunk]; if (!triangleAreas) { - if (rcGetLog()) - { - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'triangleAreas' (%d).", - chunkyMesh->maxTrisPerChunk); - } + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'triangleAreas' (%d).", + chunkyMesh->maxTrisPerChunk); return false; } -/* rcHeightfield* solid = 0; - rcCompactHeightfield* chf = 0; - rcContourSet* cset = 0;*/ - for (int y = 0; y < m_tileSet->height; ++y) { for (int x = 0; x < m_tileSet->width; ++x) { - rcTimeVal startTime = rcGetPerformanceTimer(); + rcTimeVal startTime = m_ctx->getTime(); Tile& tile = m_tileSet->tiles[x + y*m_tileSet->width]; tile.x = x; @@ -819,14 +804,12 @@ bool Sample_SoloMeshTiled::handleBuild() tile.solid = rcAllocHeightfield(); if (!tile.solid) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'solid'.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'solid'.", x, y); continue; } - if (!rcCreateHeightfield(*tile.solid, tileCfg.width, tileCfg.height, tileCfg.bmin, tileCfg.bmax, tileCfg.cs, tileCfg.ch)) + if (!rcCreateHeightfield(m_ctx, *tile.solid, tileCfg.width, tileCfg.height, tileCfg.bmin, tileCfg.bmax, tileCfg.cs, tileCfg.ch)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create solid heightfield.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create solid heightfield.", x, y); continue; } @@ -837,98 +820,87 @@ bool Sample_SoloMeshTiled::handleBuild() const int ntris = node.n; memset(triangleAreas, 0, ntris*sizeof(unsigned char)); - rcMarkWalkableTriangles(tileCfg.walkableSlopeAngle, + rcMarkWalkableTriangles(m_ctx, tileCfg.walkableSlopeAngle, verts, nverts, tris, ntris, triangleAreas); - rcRasterizeTriangles(verts, nverts, tris, triangleAreas, ntris, *tile.solid, m_cfg.walkableClimb); + rcRasterizeTriangles(m_ctx, verts, nverts, tris, triangleAreas, ntris, *tile.solid, m_cfg.walkableClimb); } - rcFilterLowHangingWalkableObstacles(m_cfg.walkableClimb, *tile.solid); - rcFilterLedgeSpans(tileCfg.walkableHeight, tileCfg.walkableClimb, *tile.solid); - rcFilterWalkableLowHeightSpans(tileCfg.walkableHeight, *tile.solid); + rcFilterLowHangingWalkableObstacles(m_ctx, m_cfg.walkableClimb, *tile.solid); + rcFilterLedgeSpans(m_ctx, tileCfg.walkableHeight, tileCfg.walkableClimb, *tile.solid); + rcFilterWalkableLowHeightSpans(m_ctx, tileCfg.walkableHeight, *tile.solid); tile.chf = rcAllocCompactHeightfield(); if (!tile.chf) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'chf'.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'chf'.", x, y); continue; } - if (!rcBuildCompactHeightfield(tileCfg.walkableHeight, tileCfg.walkableClimb, + if (!rcBuildCompactHeightfield(m_ctx, tileCfg.walkableHeight, tileCfg.walkableClimb, *tile.solid, *tile.chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build compact data.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build compact data.", x, y); continue; } // Erode the walkable area by agent radius. - if (!rcErodeWalkableArea(m_cfg.walkableRadius, *tile.chf)) + if (!rcErodeWalkableArea(m_ctx, m_cfg.walkableRadius, *tile.chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not erode."); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not erode."); continue; } // (Optional) Mark areas. const ConvexVolume* vols = m_geom->getConvexVolumes(); for (int i = 0; i < m_geom->getConvexVolumeCount(); ++i) - rcMarkConvexPolyArea(vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *tile.chf); + rcMarkConvexPolyArea(m_ctx, vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *tile.chf); - if (!rcBuildDistanceField(*tile.chf)) + if (!rcBuildDistanceField(m_ctx, *tile.chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build distance fields.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build distance fields.", x, y); continue; } - if (!rcBuildRegions(*tile.chf, tileCfg.borderSize, tileCfg.minRegionSize, tileCfg.mergeRegionSize)) + if (!rcBuildRegions(m_ctx, *tile.chf, tileCfg.borderSize, tileCfg.minRegionSize, tileCfg.mergeRegionSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build regions.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build regions.", x, y); continue; } tile.cset = rcAllocContourSet(); if (!tile.cset) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'cset'.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'cset'.", x, y); continue; } - if (!rcBuildContours(*tile.chf, tileCfg.maxSimplificationError, tileCfg.maxEdgeLen, *tile.cset)) + if (!rcBuildContours(m_ctx, *tile.chf, tileCfg.maxSimplificationError, tileCfg.maxEdgeLen, *tile.cset)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create contours.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create contours.", x, y); continue; } tile.pmesh = rcAllocPolyMesh(); if (!tile.pmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'pmesh'.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'pmesh'.", x, y); continue; } - if (!rcBuildPolyMesh(*tile.cset, tileCfg.maxVertsPerPoly, *tile.pmesh)) + if (!rcBuildPolyMesh(m_ctx, *tile.cset, tileCfg.maxVertsPerPoly, *tile.pmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create poly mesh.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create poly mesh.", x, y); continue; } tile.dmesh = rcAllocPolyMeshDetail(); if (!tile.dmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'dmesh'.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'dmesh'.", x, y); continue; } - if (!rcBuildPolyMeshDetail(*tile.pmesh, *tile.chf, tileCfg.detailSampleDist, tileCfg .detailSampleMaxError, *tile.dmesh)) + if (!rcBuildPolyMeshDetail(m_ctx, *tile.pmesh, *tile.chf, tileCfg.detailSampleDist, tileCfg .detailSampleMaxError, *tile.dmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build detail mesh.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build detail mesh.", x, y); continue; } @@ -942,8 +914,8 @@ bool Sample_SoloMeshTiled::handleBuild() tile.cset = 0; } - rcTimeVal endTime = rcGetPerformanceTimer(); - tile.buildTime += rcGetDeltaTimeUsec(startTime, endTime); + rcTimeVal endTime = m_ctx->getTime(); + tile.buildTime += m_ctx->getDeltaTimeUsec(startTime, endTime); // Some extra code to measure some per tile statistics, // such as build time and how many polygons there are per tile. @@ -969,16 +941,14 @@ bool Sample_SoloMeshTiled::handleBuild() rcPolyMesh** pmmerge = new rcPolyMesh*[m_tileSet->width*m_tileSet->height]; if (!pmmerge) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'pmmerge' (%d).", m_tileSet->width*m_tileSet->height); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'pmmerge' (%d).", m_tileSet->width*m_tileSet->height); return false; } rcPolyMeshDetail** dmmerge = new rcPolyMeshDetail*[m_tileSet->width*m_tileSet->height]; if (!dmmerge) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'dmmerge' (%d).", m_tileSet->width*m_tileSet->height); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'dmmerge' (%d).", m_tileSet->width*m_tileSet->height); return false; } @@ -1000,20 +970,18 @@ bool Sample_SoloMeshTiled::handleBuild() m_pmesh = rcAllocPolyMesh(); if (!m_pmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); return false; } - rcMergePolyMeshes(pmmerge, nmerge, *m_pmesh); + rcMergePolyMeshes(m_ctx, pmmerge, nmerge, *m_pmesh); m_dmesh = rcAllocPolyMeshDetail(); if (!m_dmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'dmesh'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'dmesh'."); return false; } - rcMergePolyMeshDetails(dmmerge, nmerge, *m_dmesh); + rcMergePolyMeshDetails(m_ctx, dmmerge, nmerge, *m_dmesh); delete [] pmmerge; delete [] dmmerge; @@ -1092,8 +1060,7 @@ bool Sample_SoloMeshTiled::handleBuild() if (!dtCreateNavMeshData(¶ms, &navData, &navDataSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not build Detour navmesh."); + m_ctx->log(RC_LOG_ERROR, "Could not build Detour navmesh."); return false; } @@ -1101,70 +1068,30 @@ bool Sample_SoloMeshTiled::handleBuild() if (!m_navMesh) { dtFree(navData); - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not create Detour navmesh"); + m_ctx->log(RC_LOG_ERROR, "Could not create Detour navmesh"); return false; } if (!m_navMesh->init(navData, navDataSize, DT_TILE_FREE_DATA)) { dtFree(navData); - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not init Detour navmesh"); + m_ctx->log(RC_LOG_ERROR, "Could not init Detour navmesh"); return false; } if (!m_navQuery->init(m_navMesh, 2048)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not init Detour navmesh query"); + m_ctx->log(RC_LOG_ERROR, "Could not init Detour navmesh query"); return false; } } - rcTimeVal totEndTime = rcGetPerformanceTimer(); + rcTimeVal totEndTime = m_ctx->getTime(); - if (rcGetLog()) - { - const float pc = 100.0f / rcGetDeltaTimeUsec(totStartTime, totEndTime); + duLogBuildTimes(m_ctx, m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)); + m_ctx->log(RC_LOG_PROGRESS, ">> Polymesh: %d vertices %d polygons", m_pmesh->nverts, m_pmesh->npolys); - rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.1fms (%.1f%%)", m_buildTimes.rasterizeTriangles/1000.0f, m_buildTimes.rasterizeTriangles*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Compact: %.1fms (%.1f%%)", m_buildTimes.buildCompact/1000.0f, m_buildTimes.buildCompact*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Border: %.1fms (%.1f%%)", m_buildTimes.filterBorder/1000.0f, m_buildTimes.filterBorder*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Walkable: %.1fms (%.1f%%)", m_buildTimes.filterWalkable/1000.0f, m_buildTimes.filterWalkable*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Reachable: %.1fms (%.1f%%)", m_buildTimes.filterMarkReachable/1000.0f, m_buildTimes.filterMarkReachable*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Erode walkable area: %.1fms (%.1f%%)", m_buildTimes.erodeArea/1000.0f, m_buildTimes.erodeArea*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Median area: %.1fms (%.1f%%)", m_buildTimes.filterMedian/1000.0f, m_buildTimes.filterMedian*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Distancefield: %.1fms (%.1f%%)", m_buildTimes.buildDistanceField/1000.0f, m_buildTimes.buildDistanceField*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - distance: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldDist/1000.0f, m_buildTimes.buildDistanceFieldDist*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldBlur/1000.0f, m_buildTimes.buildDistanceFieldBlur*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Regions: %.1fms (%.1f%%)", m_buildTimes.buildRegions/1000.0f, m_buildTimes.buildRegions*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - watershed: %.1fms (%.1f%%)", m_buildTimes.buildRegionsReg/1000.0f, m_buildTimes.buildRegionsReg*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - expand: %.1fms (%.1f%%)", m_buildTimes.buildRegionsExp/1000.0f, m_buildTimes.buildRegionsExp*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - find catchment basins: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFlood/1000.0f, m_buildTimes.buildRegionsFlood*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFilter/1000.0f, m_buildTimes.buildRegionsFilter*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Contours: %.1fms (%.1f%%)", m_buildTimes.buildContours/1000.0f, m_buildTimes.buildContours*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - trace: %.1fms (%.1f%%)", m_buildTimes.buildContoursTrace/1000.0f, m_buildTimes.buildContoursTrace*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - simplify: %.1fms (%.1f%%)", m_buildTimes.buildContoursSimplify/1000.0f, m_buildTimes.buildContoursSimplify*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms (%.1f%%)", m_buildTimes.buildPolymesh/1000.0f, m_buildTimes.buildPolymesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh Detail: %.1fms (%.1f%%)", m_buildTimes.buildDetailMesh/1000.0f, m_buildTimes.buildDetailMesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Merge Polymeshes: %.1fms (%.1f%%)", m_buildTimes.mergePolyMesh/1000.0f, m_buildTimes.mergePolyMesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Merge Polymesh Details: %.1fms (%.1f%%)", m_buildTimes.mergePolyMeshDetail/1000.0f, m_buildTimes.mergePolyMeshDetail*pc); - - if (m_pmesh) - rcGetLog()->log(RC_LOG_PROGRESS, "Polymesh: Verts:%d Polys:%d", m_pmesh->nverts, m_pmesh->npolys); - - rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); - } - - m_totalBuildTimeMs = rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; + m_totalBuildTimeMs = m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; if (m_tool) m_tool->init(this); diff --git a/RecastDemo/Source/Sample_TileMesh.cpp b/RecastDemo/Source/Sample_TileMesh.cpp index 6723813..5bf2f98 100644 --- a/RecastDemo/Source/Sample_TileMesh.cpp +++ b/RecastDemo/Source/Sample_TileMesh.cpp @@ -27,7 +27,6 @@ #include "Sample.h" #include "Sample_TileMesh.h" #include "Recast.h" -#include "RecastTimer.h" #include "RecastDebugDraw.h" #include "DetourNavMesh.h" #include "DetourNavMeshBuilder.h" @@ -179,6 +178,7 @@ Sample_TileMesh::Sample_TileMesh() : m_cset(0), m_pmesh(0), m_dmesh(0), + m_drawMode(DRAWMODE_NAVMESH), m_maxTiles(0), m_maxPolysPerTile(0), m_tileSize(32), @@ -368,6 +368,9 @@ void Sample_TileMesh::handleSettings() imguiSeparator(); + imguiIndent(); + imguiIndent(); + if (imguiButton("Save")) { saveAll("all_tiles_navmesh.bin", m_navMesh); @@ -379,6 +382,9 @@ void Sample_TileMesh::handleSettings() m_navMesh = loadAll("all_tiles_navmesh.bin"); m_navQuery->init(m_navMesh, 2048); } + + imguiUnindent(); + imguiUnindent(); char msg[64]; snprintf(msg, 64, "Build Time: %.1fms", m_totalBuildTimeMs); @@ -427,22 +433,80 @@ void Sample_TileMesh::handleTools() void Sample_TileMesh::handleDebugMode() { - if (m_navMesh) - { - if (imguiCheck("Draw Portals", m_drawPortals)) - m_drawPortals = !m_drawPortals; - - imguiSeparator(); + // Check which modes are valid. + bool valid[MAX_DRAWMODE]; + for (int i = 0; i < MAX_DRAWMODE; ++i) + valid[i] = false; - imguiValue("Navmesh ready."); - imguiValue("Use 'Create Tiles' tool to experiment."); - imguiValue("LMB: (Re)Create tiles."); - imguiValue("LMB+SHIFT: Remove tiles."); - } - else + if (m_geom) { - imguiValue("Press [Build] to create tile mesh"); - imguiValue("with specified parameters."); + valid[DRAWMODE_NAVMESH] = m_navMesh != 0; + valid[DRAWMODE_NAVMESH_TRANS] = m_navMesh != 0; + valid[DRAWMODE_NAVMESH_BVTREE] = m_navMesh != 0; + valid[DRAWMODE_NAVMESH_PORTALS] = m_navMesh != 0; + valid[DRAWMODE_NAVMESH_INVIS] = m_navMesh != 0; + valid[DRAWMODE_MESH] = true; + valid[DRAWMODE_VOXELS] = m_solid != 0; + valid[DRAWMODE_VOXELS_WALKABLE] = m_solid != 0; + valid[DRAWMODE_COMPACT] = m_chf != 0; + valid[DRAWMODE_COMPACT_DISTANCE] = m_chf != 0; + valid[DRAWMODE_COMPACT_REGIONS] = m_chf != 0; + valid[DRAWMODE_REGION_CONNECTIONS] = m_cset != 0; + valid[DRAWMODE_RAW_CONTOURS] = m_cset != 0; + valid[DRAWMODE_BOTH_CONTOURS] = m_cset != 0; + valid[DRAWMODE_CONTOURS] = m_cset != 0; + valid[DRAWMODE_POLYMESH] = m_pmesh != 0; + valid[DRAWMODE_POLYMESH_DETAIL] = m_dmesh != 0; + } + + int unavail = 0; + for (int i = 0; i < MAX_DRAWMODE; ++i) + if (!valid[i]) unavail++; + + if (unavail == MAX_DRAWMODE) + return; + + imguiLabel("Draw"); + if (imguiCheck("Input Mesh", m_drawMode == DRAWMODE_MESH, valid[DRAWMODE_MESH])) + m_drawMode = DRAWMODE_MESH; + if (imguiCheck("Navmesh", m_drawMode == DRAWMODE_NAVMESH, valid[DRAWMODE_NAVMESH])) + m_drawMode = DRAWMODE_NAVMESH; + if (imguiCheck("Navmesh Invis", m_drawMode == DRAWMODE_NAVMESH_INVIS, valid[DRAWMODE_NAVMESH_INVIS])) + m_drawMode = DRAWMODE_NAVMESH_INVIS; + if (imguiCheck("Navmesh Trans", m_drawMode == DRAWMODE_NAVMESH_TRANS, valid[DRAWMODE_NAVMESH_TRANS])) + m_drawMode = DRAWMODE_NAVMESH_TRANS; + if (imguiCheck("Navmesh BVTree", m_drawMode == DRAWMODE_NAVMESH_BVTREE, valid[DRAWMODE_NAVMESH_BVTREE])) + m_drawMode = DRAWMODE_NAVMESH_BVTREE; + if (imguiCheck("Navmesh Portals", m_drawMode == DRAWMODE_NAVMESH_PORTALS, valid[DRAWMODE_NAVMESH_PORTALS])) + m_drawMode = DRAWMODE_NAVMESH_PORTALS; + if (imguiCheck("Voxels", m_drawMode == DRAWMODE_VOXELS, valid[DRAWMODE_VOXELS])) + m_drawMode = DRAWMODE_VOXELS; + if (imguiCheck("Walkable Voxels", m_drawMode == DRAWMODE_VOXELS_WALKABLE, valid[DRAWMODE_VOXELS_WALKABLE])) + m_drawMode = DRAWMODE_VOXELS_WALKABLE; + if (imguiCheck("Compact", m_drawMode == DRAWMODE_COMPACT, valid[DRAWMODE_COMPACT])) + m_drawMode = DRAWMODE_COMPACT; + if (imguiCheck("Compact Distance", m_drawMode == DRAWMODE_COMPACT_DISTANCE, valid[DRAWMODE_COMPACT_DISTANCE])) + m_drawMode = DRAWMODE_COMPACT_DISTANCE; + if (imguiCheck("Compact Regions", m_drawMode == DRAWMODE_COMPACT_REGIONS, valid[DRAWMODE_COMPACT_REGIONS])) + m_drawMode = DRAWMODE_COMPACT_REGIONS; + if (imguiCheck("Region Connections", m_drawMode == DRAWMODE_REGION_CONNECTIONS, valid[DRAWMODE_REGION_CONNECTIONS])) + m_drawMode = DRAWMODE_REGION_CONNECTIONS; + if (imguiCheck("Raw Contours", m_drawMode == DRAWMODE_RAW_CONTOURS, valid[DRAWMODE_RAW_CONTOURS])) + m_drawMode = DRAWMODE_RAW_CONTOURS; + if (imguiCheck("Both Contours", m_drawMode == DRAWMODE_BOTH_CONTOURS, valid[DRAWMODE_BOTH_CONTOURS])) + m_drawMode = DRAWMODE_BOTH_CONTOURS; + if (imguiCheck("Contours", m_drawMode == DRAWMODE_CONTOURS, valid[DRAWMODE_CONTOURS])) + m_drawMode = DRAWMODE_CONTOURS; + if (imguiCheck("Poly Mesh", m_drawMode == DRAWMODE_POLYMESH, valid[DRAWMODE_POLYMESH])) + m_drawMode = DRAWMODE_POLYMESH; + if (imguiCheck("Poly Mesh Detail", m_drawMode == DRAWMODE_POLYMESH_DETAIL, valid[DRAWMODE_POLYMESH_DETAIL])) + m_drawMode = DRAWMODE_POLYMESH_DETAIL; + + if (unavail) + { + imguiValue("Tick 'Keep Itermediate Results'"); + imguiValue("rebuild some tiles to see"); + imguiValue("more debug mode options."); } } @@ -454,9 +518,25 @@ void Sample_TileMesh::handleRender() DebugDrawGL dd; // Draw mesh - duDebugDrawTriMesh(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), + if (m_drawMode == DRAWMODE_MESH) + { + // Draw mesh + duDebugDrawTriMeshSlope(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), + m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), + m_agentMaxSlope); + m_geom->drawOffMeshConnections(&dd); + } + else if (m_drawMode != DRAWMODE_NAVMESH_TRANS) + { + // Draw mesh + duDebugDrawTriMesh(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), + m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), 0); + m_geom->drawOffMeshConnections(&dd); + } + +/* duDebugDrawTriMesh(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), 0); - m_geom->drawOffMeshConnections(&dd); + m_geom->drawOffMeshConnections(&dd);*/ glDepthMask(GL_FALSE); @@ -476,19 +556,96 @@ void Sample_TileMesh::handleRender() // Draw active tile duDebugDrawBoxWire(&dd, m_tileBmin[0],m_tileBmin[1],m_tileBmin[2], m_tileBmax[0],m_tileBmax[1],m_tileBmax[2], m_tileCol, 2.0f); - if (m_navMesh) +/* if (m_navMesh) { duDebugDrawNavMeshWithClosedList(&dd, *m_navMesh, *m_navQuery, m_navMeshDrawFlags); if (m_drawPortals) duDebugDrawNavMeshPortals(&dd, *m_navMesh); + }*/ + + if (m_navMesh && + (m_drawMode == DRAWMODE_NAVMESH || + m_drawMode == DRAWMODE_NAVMESH_TRANS || + m_drawMode == DRAWMODE_NAVMESH_BVTREE || + m_drawMode == DRAWMODE_NAVMESH_PORTALS || + m_drawMode == DRAWMODE_NAVMESH_INVIS)) + { + if (m_drawMode != DRAWMODE_NAVMESH_INVIS) + duDebugDrawNavMeshWithClosedList(&dd, *m_navMesh, *m_navQuery, m_navMeshDrawFlags); + if (m_drawMode == DRAWMODE_NAVMESH_BVTREE) + duDebugDrawNavMeshBVTree(&dd, *m_navMesh); + if (m_drawMode == DRAWMODE_NAVMESH_PORTALS) + duDebugDrawNavMeshPortals(&dd, *m_navMesh); } + + glDepthMask(GL_TRUE); + + if (m_chf && m_drawMode == DRAWMODE_COMPACT) + duDebugDrawCompactHeightfieldSolid(&dd, *m_chf); + + if (m_chf && m_drawMode == DRAWMODE_COMPACT_DISTANCE) + duDebugDrawCompactHeightfieldDistance(&dd, *m_chf); + if (m_chf && m_drawMode == DRAWMODE_COMPACT_REGIONS) + duDebugDrawCompactHeightfieldRegions(&dd, *m_chf); + if (m_solid && m_drawMode == DRAWMODE_VOXELS) + { + glEnable(GL_FOG); + duDebugDrawHeightfieldSolid(&dd, *m_solid); + glDisable(GL_FOG); + } + if (m_solid && m_drawMode == DRAWMODE_VOXELS_WALKABLE) + { + glEnable(GL_FOG); + duDebugDrawHeightfieldWalkable(&dd, *m_solid); + glDisable(GL_FOG); + } + if (m_cset && m_drawMode == DRAWMODE_RAW_CONTOURS) + { + glDepthMask(GL_FALSE); + duDebugDrawRawContours(&dd, *m_cset); + glDepthMask(GL_TRUE); + } + if (m_cset && m_drawMode == DRAWMODE_BOTH_CONTOURS) + { + glDepthMask(GL_FALSE); + duDebugDrawRawContours(&dd, *m_cset, 0.5f); + duDebugDrawContours(&dd, *m_cset); + glDepthMask(GL_TRUE); + } + if (m_cset && m_drawMode == DRAWMODE_CONTOURS) + { + glDepthMask(GL_FALSE); + duDebugDrawContours(&dd, *m_cset); + glDepthMask(GL_TRUE); + } + if (m_chf && m_cset && m_drawMode == DRAWMODE_REGION_CONNECTIONS) + { + duDebugDrawCompactHeightfieldRegions(&dd, *m_chf); + + glDepthMask(GL_FALSE); + duDebugDrawRegionConnections(&dd, *m_cset); + glDepthMask(GL_TRUE); + } + if (m_pmesh && m_drawMode == DRAWMODE_POLYMESH) + { + glDepthMask(GL_FALSE); + duDebugDrawPolyMesh(&dd, *m_pmesh); + glDepthMask(GL_TRUE); + } + if (m_dmesh && m_drawMode == DRAWMODE_POLYMESH_DETAIL) + { + glDepthMask(GL_FALSE); + duDebugDrawPolyMeshDetail(&dd, *m_dmesh); + glDepthMask(GL_TRUE); + } + + m_geom->drawConvexVolumes(&dd); + if (m_tool) m_tool->handleRender(); - m_geom->drawConvexVolumes(&dd); - - glDepthMask(GL_TRUE); + glDepthMask(GL_TRUE); } void Sample_TileMesh::handleRenderOverlay(double* proj, double* model, int* view) @@ -528,8 +685,7 @@ bool Sample_TileMesh::handleBuild() { if (!m_geom || !m_geom->getMesh()) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: No vertices and triangles."); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: No vertices and triangles."); return false; } @@ -538,8 +694,7 @@ bool Sample_TileMesh::handleBuild() m_navMesh = dtAllocNavMesh(); if (!m_navMesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not allocate navmesh."); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not allocate navmesh."); return false; } @@ -551,15 +706,13 @@ bool Sample_TileMesh::handleBuild() params.maxPolys = m_maxPolysPerTile; if (!m_navMesh->init(¶ms)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not init navmesh."); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not init navmesh."); return false; } if (!m_navQuery->init(m_navMesh, 2048)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not init Detour navmesh query"); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not init Detour navmesh query"); return false; } @@ -660,14 +813,12 @@ void Sample_TileMesh::buildAllTiles() // Start the build process. - rcTimeVal totStartTime = rcGetPerformanceTimer(); + rcTimeVal totStartTime = m_ctx->getTime(); for (int y = 0; y < th; ++y) { for (int x = 0; x < tw; ++x) { - printf("processing: %d,%d\n", x,y); - m_tileBmin[0] = bmin[0] + x*tcs; m_tileBmin[1] = bmin[1]; m_tileBmin[2] = bmin[2] + y*tcs; @@ -690,9 +841,9 @@ void Sample_TileMesh::buildAllTiles() } // Start the build process. - rcTimeVal totEndTime = rcGetPerformanceTimer(); + rcTimeVal totEndTime = m_ctx->getTime(); - m_totalBuildTimeMs = rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; + m_totalBuildTimeMs = m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; } void Sample_TileMesh::removeAllTiles() @@ -714,11 +865,13 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const { if (!m_geom || !m_geom->getMesh() || !m_geom->getChunkyMesh()) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); return 0; } + m_tileMemUsage = 0; + m_tileBuildTime = 0; + cleanup(); const float* verts = m_geom->getMesh()->getVerts(); @@ -754,31 +907,25 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_cfg.bmax[2] += m_cfg.borderSize*m_cfg.cs; // Reset build times gathering. - memset(&m_buildTimes, 0, sizeof(m_buildTimes)); - rcSetBuildTimes(&m_buildTimes); + m_ctx->resetBuildTimes(); // Start the build process. - rcTimeVal totStartTime = rcGetPerformanceTimer(); + rcTimeVal totStartTime = m_ctx->getTime(); - if (rcGetLog()) - { - rcGetLog()->log(RC_LOG_PROGRESS, "Building navigation:"); - rcGetLog()->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); - rcGetLog()->log(RC_LOG_PROGRESS, " - %.1fK verts, %.1fK tris", nverts/1000.0f, ntris/1000.0f); - } + m_ctx->log(RC_LOG_PROGRESS, "Building navigation:"); + m_ctx->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); + m_ctx->log(RC_LOG_PROGRESS, " - %.1fK verts, %.1fK tris", nverts/1000.0f, ntris/1000.0f); // Allocate voxel heighfield where we rasterize our input data to. m_solid = rcAllocHeightfield(); if (!m_solid) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'solid'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'solid'."); return 0; } - if (!rcCreateHeightfield(*m_solid, m_cfg.width, m_cfg.height, m_cfg.bmin, m_cfg.bmax, m_cfg.cs, m_cfg.ch)) + if (!rcCreateHeightfield(m_ctx, *m_solid, m_cfg.width, m_cfg.height, m_cfg.bmin, m_cfg.bmax, m_cfg.cs, m_cfg.ch)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create solid heightfield."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not create solid heightfield."); return 0; } @@ -788,12 +935,10 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_triareas = new unsigned char[chunkyMesh->maxTrisPerChunk]; if (!m_triareas) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'm_triareas' (%d).", chunkyMesh->maxTrisPerChunk); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'm_triareas' (%d).", chunkyMesh->maxTrisPerChunk); return 0; } - float tbmin[2], tbmax[2]; tbmin[0] = m_cfg.bmin[0]; tbmin[1] = m_cfg.bmin[2]; @@ -815,10 +960,10 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_tileTriCount += ntris; memset(m_triareas, 0, ntris*sizeof(unsigned char)); - rcMarkWalkableTriangles(m_cfg.walkableSlopeAngle, + rcMarkWalkableTriangles(m_ctx, m_cfg.walkableSlopeAngle, verts, nverts, tris, ntris, m_triareas); - rcRasterizeTriangles(verts, nverts, tris, m_triareas, ntris, *m_solid, m_cfg.walkableClimb); + rcRasterizeTriangles(m_ctx, verts, nverts, tris, m_triareas, ntris, *m_solid, m_cfg.walkableClimb); } if (!m_keepInterResults) @@ -830,9 +975,9 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const // Once all geometry is rasterized, we do initial pass of filtering to // remove unwanted overhangs caused by the conservative rasterization // as well as filter spans where the character cannot possibly stand. - rcFilterLowHangingWalkableObstacles(m_cfg.walkableClimb, *m_solid); - rcFilterLedgeSpans(m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid); - rcFilterWalkableLowHeightSpans(m_cfg.walkableHeight, *m_solid); + rcFilterLowHangingWalkableObstacles(m_ctx, m_cfg.walkableClimb, *m_solid); + rcFilterLedgeSpans(m_ctx, m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid); + rcFilterWalkableLowHeightSpans(m_ctx, m_cfg.walkableHeight, *m_solid); // Compact the heightfield so that it is faster to handle from now on. // This will result more cache coherent data as well as the neighbours @@ -840,14 +985,12 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_chf = rcAllocCompactHeightfield(); if (!m_chf) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'chf'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'chf'."); return 0; } - if (!rcBuildCompactHeightfield(m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid, *m_chf)) + if (!rcBuildCompactHeightfield(m_ctx, m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build compact data."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build compact data."); return 0; } @@ -858,31 +1001,28 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const } // Erode the walkable area by agent radius. - if (!rcErodeWalkableArea(m_cfg.walkableRadius, *m_chf)) + if (!rcErodeWalkableArea(m_ctx, m_cfg.walkableRadius, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not erode."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not erode."); return false; } // (Optional) Mark areas. const ConvexVolume* vols = m_geom->getConvexVolumes(); for (int i = 0; i < m_geom->getConvexVolumeCount(); ++i) - rcMarkConvexPolyArea(vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *m_chf); + rcMarkConvexPolyArea(m_ctx, vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *m_chf); // Prepare for region partitioning, by calculating distance field along the walkable surface. - if (!rcBuildDistanceField(*m_chf)) + if (!rcBuildDistanceField(m_ctx, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build distance field."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build distance field."); return 0; } // Partition the walkable surface into simple regions without holes. - if (!rcBuildRegions(*m_chf, m_cfg.borderSize, m_cfg.minRegionSize, m_cfg.mergeRegionSize)) + if (!rcBuildRegions(m_ctx, *m_chf, m_cfg.borderSize, m_cfg.minRegionSize, m_cfg.mergeRegionSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build regions."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build regions."); return 0; } @@ -890,14 +1030,12 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_cset = rcAllocContourSet(); if (!m_cset) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); return 0; } - if (!rcBuildContours(*m_chf, m_cfg.maxSimplificationError, m_cfg.maxEdgeLen, *m_cset)) + if (!rcBuildContours(m_ctx, *m_chf, m_cfg.maxSimplificationError, m_cfg.maxEdgeLen, *m_cset)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); return 0; } @@ -910,14 +1048,12 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_pmesh = rcAllocPolyMesh(); if (!m_pmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); return 0; } - if (!rcBuildPolyMesh(*m_cset, m_cfg.maxVertsPerPoly, *m_pmesh)) + if (!rcBuildPolyMesh(m_ctx, *m_cset, m_cfg.maxVertsPerPoly, *m_pmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not triangulate contours."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not triangulate contours."); return 0; } @@ -925,17 +1061,15 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_dmesh = rcAllocPolyMeshDetail(); if (!m_dmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'dmesh'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'dmesh'."); return 0; } - if (!rcBuildPolyMeshDetail(*m_pmesh, *m_chf, + if (!rcBuildPolyMeshDetail(m_ctx, *m_pmesh, *m_chf, m_cfg.detailSampleDist, m_cfg.detailSampleMaxError, *m_dmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could build polymesh detail."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could build polymesh detail."); return 0; } @@ -962,8 +1096,7 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const if (m_pmesh->nverts >= 0xffff) { // The vertex indices are ushorts, and cannot point to more than 0xffff vertices. - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Too many vertices per tile %d (max: %d).", m_pmesh->nverts, 0xffff); + m_ctx->log(RC_LOG_ERROR, "Too many vertices per tile %d (max: %d).", m_pmesh->nverts, 0xffff); return false; } @@ -1022,60 +1155,29 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const if (!dtCreateNavMeshData(¶ms, &navData, &navDataSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not build Detour navmesh."); + m_ctx->log(RC_LOG_ERROR, "Could not build Detour navmesh."); return 0; } + + // Restore padding so that the debug visualization is correct. + for (int i = 0; i < m_pmesh->nverts; ++i) + { + unsigned short* v = &m_pmesh->verts[i*3]; + v[0] += (unsigned short)m_cfg.borderSize; + v[2] += (unsigned short)m_cfg.borderSize; + } + } m_tileMemUsage = navDataSize/1024.0f; - rcTimeVal totEndTime = rcGetPerformanceTimer(); + rcTimeVal totEndTime = m_ctx->getTime(); // Show performance stats. - if (rcGetLog()) - { - const float pc = 100.0f / rcGetDeltaTimeUsec(totStartTime, totEndTime); - - rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.1fms (%.1f%%)", m_buildTimes.rasterizeTriangles/1000.0f, m_buildTimes.rasterizeTriangles*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Compact: %.1fms (%.1f%%)", m_buildTimes.buildCompact/1000.0f, m_buildTimes.buildCompact*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Border: %.1fms (%.1f%%)", m_buildTimes.filterBorder/1000.0f, m_buildTimes.filterBorder*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Walkable: %.1fms (%.1f%%)", m_buildTimes.filterWalkable/1000.0f, m_buildTimes.filterWalkable*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Reachable: %.1fms (%.1f%%)", m_buildTimes.filterMarkReachable/1000.0f, m_buildTimes.filterMarkReachable*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Erode walkable area: %.1fms (%.1f%%)", m_buildTimes.erodeArea/1000.0f, m_buildTimes.erodeArea*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Median area: %.1fms (%.1f%%)", m_buildTimes.filterMedian/1000.0f, m_buildTimes.filterMedian*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Distancefield: %.1fms (%.1f%%)", m_buildTimes.buildDistanceField/1000.0f, m_buildTimes.buildDistanceField*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - distance: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldDist/1000.0f, m_buildTimes.buildDistanceFieldDist*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldBlur/1000.0f, m_buildTimes.buildDistanceFieldBlur*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Regions: %.1fms (%.1f%%)", m_buildTimes.buildRegions/1000.0f, m_buildTimes.buildRegions*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - watershed: %.1fms (%.1f%%)", m_buildTimes.buildRegionsReg/1000.0f, m_buildTimes.buildRegionsReg*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - expand: %.1fms (%.1f%%)", m_buildTimes.buildRegionsExp/1000.0f, m_buildTimes.buildRegionsExp*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - find catchment basins: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFlood/1000.0f, m_buildTimes.buildRegionsFlood*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFilter/1000.0f, m_buildTimes.buildRegionsFilter*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Contours: %.1fms (%.1f%%)", m_buildTimes.buildContours/1000.0f, m_buildTimes.buildContours*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - trace: %.1fms (%.1f%%)", m_buildTimes.buildContoursTrace/1000.0f, m_buildTimes.buildContoursTrace*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - simplify: %.1fms (%.1f%%)", m_buildTimes.buildContoursSimplify/1000.0f, m_buildTimes.buildContoursSimplify*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms (%.1f%%)", m_buildTimes.buildPolymesh/1000.0f, m_buildTimes.buildPolymesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh Detail: %.1fms (%.1f%%)", m_buildTimes.buildDetailMesh/1000.0f, m_buildTimes.buildDetailMesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Merge Polymeshes: %.1fms (%.1f%%)", m_buildTimes.mergePolyMesh/1000.0f, m_buildTimes.mergePolyMesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Merge Polymesh Details: %.1fms (%.1f%%)", m_buildTimes.mergePolyMeshDetail/1000.0f, m_buildTimes.mergePolyMeshDetail*pc); - - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms (%.1f%%)", m_buildTimes.buildPolymesh/1000.0f, m_buildTimes.buildPolymesh*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Polymesh: Verts:%d Polys:%d", m_pmesh->nverts, m_pmesh->npolys); - - rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); - } - - m_tileBuildTime = rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; + duLogBuildTimes(m_ctx, m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)); + m_ctx->log(RC_LOG_PROGRESS, ">> Polymesh: %d vertices %d polygons", m_pmesh->nverts, m_pmesh->npolys); + m_tileBuildTime = m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; + dataSize = navDataSize; return navData; } diff --git a/RecastDemo/Source/TestCase.cpp b/RecastDemo/Source/TestCase.cpp index 9e148b9..74cd529 100644 --- a/RecastDemo/Source/TestCase.cpp +++ b/RecastDemo/Source/TestCase.cpp @@ -157,7 +157,7 @@ void TestCase::resetTimes() } } -void TestCase::doTests(dtNavMesh* navmesh, dtNavMeshQuery* navquery) +void TestCase::doTests(rcBuildContext* ctx, dtNavMesh* navmesh, dtNavMeshQuery* navquery) { if (!navmesh || !navquery) return; @@ -183,34 +183,34 @@ void TestCase::doTests(dtNavMesh* navmesh, dtNavMeshQuery* navquery) filter.excludeFlags = (unsigned short)iter->excludeFlags; // Find start points - rcTimeVal findNearestPolyStart = rcGetPerformanceTimer(); + rcTimeVal findNearestPolyStart = ctx->getTime(); dtPolyRef startRef = navquery->findNearestPoly(iter->spos, polyPickExt, &filter, 0); dtPolyRef endRef = navquery->findNearestPoly(iter->epos, polyPickExt, &filter, 0); - rcTimeVal findNearestPolyEnd = rcGetPerformanceTimer(); - iter->findNearestPolyTime += rcGetDeltaTimeUsec(findNearestPolyStart, findNearestPolyEnd); + rcTimeVal findNearestPolyEnd = ctx->getTime(); + iter->findNearestPolyTime += ctx->getDeltaTimeUsec(findNearestPolyStart, findNearestPolyEnd); if (!startRef || ! endRef) continue; // Find path - rcTimeVal findPathStart = rcGetPerformanceTimer(); + rcTimeVal findPathStart = ctx->getTime(); iter->npolys = navquery->findPath(startRef, endRef, iter->spos, iter->epos, &filter, polys, MAX_POLYS); - rcTimeVal findPathEnd = rcGetPerformanceTimer(); - iter->findPathTime += rcGetDeltaTimeUsec(findPathStart, findPathEnd); + rcTimeVal findPathEnd = ctx->getTime(); + iter->findPathTime += ctx->getDeltaTimeUsec(findPathStart, findPathEnd); // Find straight path if (iter->npolys) { - rcTimeVal findStraightPathStart = rcGetPerformanceTimer(); + rcTimeVal findStraightPathStart = ctx->getTime(); iter->nstraight = navquery->findStraightPath(iter->spos, iter->epos, polys, iter->npolys, straight, 0, 0, MAX_POLYS); - rcTimeVal findStraightPathEnd = rcGetPerformanceTimer(); - iter->findStraightPathTime += rcGetDeltaTimeUsec(findStraightPathStart, findStraightPathEnd); + rcTimeVal findStraightPathEnd = ctx->getTime(); + iter->findStraightPathTime += ctx->getDeltaTimeUsec(findStraightPathStart, findStraightPathEnd); } // Copy results diff --git a/RecastDemo/Source/imguiRenderGL.cpp b/RecastDemo/Source/imguiRenderGL.cpp index 3c5e5e0..30c1a21 100644 --- a/RecastDemo/Source/imguiRenderGL.cpp +++ b/RecastDemo/Source/imguiRenderGL.cpp @@ -308,6 +308,8 @@ static void getBakedQuad(stbtt_bakedchar *chardata, int pw, int ph, int char_ind *xpos += b->xadvance; } +static const float g_tabStops[4] = {150, 210, 270, 330}; + static float getTextLength(stbtt_bakedchar *chardata, const char* text) { float xpos = 0; @@ -315,7 +317,18 @@ static float getTextLength(stbtt_bakedchar *chardata, const char* text) while (*text) { int c = (unsigned char)*text; - if (c >= 32 && c < 128) + if (c == '\t') + { + for (int i = 0; i < 4; ++i) + { + if (xpos < g_tabStops[i]) + { + xpos = g_tabStops[i]; + break; + } + } + } + else if (c >= 32 && c < 128) { stbtt_bakedchar *b = chardata + c-32; int round_x = STBTT_ifloor((xpos + b->xoff) + 0.5); @@ -346,10 +359,23 @@ static void drawText(float x, float y, const char *text, int align, unsigned int glBegin(GL_TRIANGLES); + const float ox = x; + while (*text) { int c = (unsigned char)*text; - if (c >= 32 && c < 128) + if (c == '\t') + { + for (int i = 0; i < 4; ++i) + { + if (x < g_tabStops[i]+ox) + { + x = g_tabStops[i]+ox; + break; + } + } + } + else if (c >= 32 && c < 128) { stbtt_aligned_quad q; getBakedQuad(g_cdata, 512,512, c-32, &x,&y,&q); diff --git a/RecastDemo/Source/main.cpp b/RecastDemo/Source/main.cpp index 201066c..111bbd8 100644 --- a/RecastDemo/Source/main.cpp +++ b/RecastDemo/Source/main.cpp @@ -155,9 +155,7 @@ int main(int /*argc*/, char** /*argv*/) Sample* sample = 0; TestCase* test = 0; - rcLog log; - log.clear(); - rcSetLog(&log); + BuildContext ctx; glEnable(GL_CULL_FACE); @@ -217,16 +215,14 @@ int main(int /*argc*/, char** /*argv*/) { delete geom; geom = new InputGeom; - if (!geom || !geom->load("geomset.txt")) + if (!geom || !geom->load(&ctx, "geomset.txt")) { delete geom; geom = 0; showLog = true; logScroll = 0; - printf("Geom load log %s:\n", meshName); - for (int i = 0; i < log.getMessageCount(); ++i) - printf("%s\n", log.getMessageText(i)); + ctx.dumpLog("Geom load log %s:", meshName); } if (sample && geom) { @@ -572,15 +568,13 @@ int main(int /*argc*/, char** /*argv*/) if (imguiButton("Build")) { - log.clear(); + ctx.resetLog(); if (!sample->handleBuild()) { showLog = true; logScroll = 0; } - printf("Build log %s:\n", meshName); - for (int i = 0; i < log.getMessageCount(); ++i) - printf("%s\n", log.getMessageText(i)); + ctx.dumpLog("Build log %s:", meshName); // Clear test. delete test; @@ -619,13 +613,15 @@ int main(int /*argc*/, char** /*argv*/) if (imguiItem(g_samples[i].name)) { newSample = g_samples[i].create(); - if (newSample) strcpy(sampleName, g_samples[i].name); + if (newSample) + strcpy(sampleName, g_samples[i].name); } } if (newSample) { delete sample; sample = newSample; + sample->setContext(&ctx); if (geom && sample) { sample->handleMeshChanged(geom); @@ -695,16 +691,14 @@ int main(int /*argc*/, char** /*argv*/) strcat(path, meshName); geom = new InputGeom; - if (!geom || !geom->loadMesh(path)) + if (!geom || !geom->loadMesh(&ctx, path)) { delete geom; geom = 0; showLog = true; logScroll = 0; - printf("Geom load log %s:\n", meshName); - for (int i = 0; i < log.getMessageCount(); ++i) - printf("%s\n", log.getMessageText(i)); + ctx.dumpLog("Geom load log %s:", meshName); } if (sample && geom) { @@ -790,6 +784,7 @@ int main(int /*argc*/, char** /*argv*/) { delete sample; sample = newSample; + sample->setContext(&ctx); showSample = false; } @@ -804,28 +799,24 @@ int main(int /*argc*/, char** /*argv*/) strcat(path, meshName); geom = new InputGeom; - if (!geom || !geom->loadMesh(path)) + if (!geom || !geom->loadMesh(&ctx, path)) { delete geom; geom = 0; showLog = true; logScroll = 0; - printf("Geom load log %s:\n", meshName); - for (int i = 0; i < log.getMessageCount(); ++i) - printf("%s\n", log.getMessageText(i)); + ctx.dumpLog("Geom load log %s:", meshName); } if (sample && geom) { sample->handleMeshChanged(geom); } - log.clear(); + ctx.resetLog(); if (sample && !sample->handleBuild()) { - printf("Build log %s:\n", meshName); - for (int i = 0; i < log.getMessageCount(); ++i) - printf("%s\n", log.getMessageText(i)); + ctx.dumpLog("Build log %s:", meshName); } if (geom || sample) @@ -861,7 +852,7 @@ int main(int /*argc*/, char** /*argv*/) // Do the tests. if (sample) - test->doTests(sample->getNavMesh(), sample->getNavMeshQuery()); + test->doTests(&ctx, sample->getNavMesh(), sample->getNavMeshQuery()); } } @@ -874,8 +865,8 @@ int main(int /*argc*/, char** /*argv*/) { if (imguiBeginScrollArea("Log", 10, 10, width - 300, 200, &logScroll)) mouseOverMenu = true; - for (int i = 0; i < log.getMessageCount(); ++i) - imguiLabel(log.getMessageText(i)); + for (int i = 0; i < ctx.getLogCount(); ++i) + imguiLabel(ctx.getLogText(i)); imguiEndScrollArea(); }