From ccf401d3da3f5854c034a76b66fa5aa3e1f16858 Mon Sep 17 00:00:00 2001 From: Mikko Mononen Date: Sun, 7 Nov 2010 10:56:48 +0000 Subject: [PATCH] - added finalizeSlicedFindPathPartial() - added handleStep()/handleToggle() to samples - changed how crowds are rendered - added path topology optimization step --- DebugUtils/Include/DebugDraw.h | 6 + DebugUtils/Source/DebugDraw.cpp | 62 + DebugUtils/Source/DetourDebugDraw.cpp | 4 +- Detour/Include/DetourNavMeshQuery.h | 12 +- Detour/Include/DetourNode.h | 2 +- Detour/Source/DetourNavMeshQuery.cpp | 69 + Detour/Source/DetourNode.cpp | 2 +- .../Xcode/Recast.xcodeproj/memon.pbxuser | 3777 +++++++++-------- .../Recast.xcodeproj/memon.perspectivev3 | 98 +- RecastDemo/Include/ConvexVolumeTool.h | 1 + RecastDemo/Include/CrowdManager.h | 16 +- RecastDemo/Include/CrowdTool.h | 5 + RecastDemo/Include/NavMeshTesterTool.h | 1 + RecastDemo/Include/OffMeshConnectionTool.h | 1 + RecastDemo/Include/Sample.h | 2 + RecastDemo/Include/Sample_Debug.h | 2 +- RecastDemo/Source/ConvexVolumeTool.cpp | 4 + RecastDemo/Source/CrowdManager.cpp | 112 +- RecastDemo/Source/CrowdTool.cpp | 374 +- RecastDemo/Source/NavMeshTesterTool.cpp | 4 + RecastDemo/Source/OffMeshConnectionTool.cpp | 4 + RecastDemo/Source/Sample.cpp | 6 + RecastDemo/Source/Sample_Debug.cpp | 4 +- RecastDemo/Source/Sample_SoloMeshTiled.cpp | 4 +- RecastDemo/Source/Sample_TileMesh.cpp | 2 + RecastDemo/Source/main.cpp | 9 +- 26 files changed, 2619 insertions(+), 1964 deletions(-) diff --git a/DebugUtils/Include/DebugDraw.h b/DebugUtils/Include/DebugDraw.h index 81c8c2a..8c95416 100644 --- a/DebugUtils/Include/DebugDraw.h +++ b/DebugUtils/Include/DebugDraw.h @@ -140,6 +140,9 @@ void duDebugDrawCross(struct duDebugDraw* dd, const float x, const float y, cons void duDebugDrawBox(struct duDebugDraw* dd, float minx, float miny, float minz, float maxx, float maxy, float maxz, const unsigned int* fcol); +void duDebugDrawCylinder(struct duDebugDraw* dd, float minx, float miny, float minz, + float maxx, float maxy, float maxz, unsigned int col); + void duDebugDrawGridXZ(struct duDebugDraw* dd, const float ox, const float oy, const float oz, const int w, const int h, const float size, const unsigned int col, const float lineWidth); @@ -172,6 +175,9 @@ void duAppendCross(struct duDebugDraw* dd, const float x, const float y, const f void duAppendBox(struct duDebugDraw* dd, float minx, float miny, float minz, float maxx, float maxy, float maxz, const unsigned int* fcol); +void duAppendCylinder(struct duDebugDraw* dd, float minx, float miny, float minz, + float maxx, float maxy, float maxz, unsigned int col); + class duDisplayList : public duDebugDraw { diff --git a/DebugUtils/Source/DebugDraw.cpp b/DebugUtils/Source/DebugDraw.cpp index d794c66..a9c1ac1 100644 --- a/DebugUtils/Source/DebugDraw.cpp +++ b/DebugUtils/Source/DebugDraw.cpp @@ -135,6 +135,16 @@ void duDebugDrawBox(struct duDebugDraw* dd, float minx, float miny, float minz, dd->end(); } +void duDebugDrawCylinder(struct duDebugDraw* dd, float minx, float miny, float minz, + float maxx, float maxy, float maxz, unsigned int col) +{ + if (!dd) return; + + dd->begin(DU_DRAW_TRIS); + duAppendCylinder(dd, minx,miny,minz, maxx,maxy,maxz, col); + dd->end(); +} + void duDebugDrawGridXZ(struct duDebugDraw* dd, const float ox, const float oy, const float oz, const int w, const int h, const float size, const unsigned int col, const float lineWidth) @@ -289,6 +299,58 @@ void duAppendBox(struct duDebugDraw* dd, float minx, float miny, float minz, } } +void duAppendCylinder(struct duDebugDraw* dd, float minx, float miny, float minz, + float maxx, float maxy, float maxz, unsigned int col) +{ + if (!dd) return; + + static const int NUM_SEG = 16; + static float dir[NUM_SEG*2]; + static bool init = false; + if (!init) + { + init = true; + for (int i = 0; i < NUM_SEG; ++i) + { + const float a = (float)i/(float)NUM_SEG*DU_PI*2; + dir[i*2] = cosf(a); + dir[i*2+1] = sinf(a); + } + } + + unsigned int col2 = duMultCol(col, 160); + + const float cx = (maxx + minx)/2; + const float cz = (maxz + minz)/2; + const float rx = (maxx - minx)/2; + const float rz = (maxz - minz)/2; + + for (int i = 2; i < NUM_SEG; ++i) + { + const int a = 0, b = i-1, c = i; + dd->vertex(cx+dir[a*2+0]*rx, miny, cz+dir[a*2+1]*rz, col2); + dd->vertex(cx+dir[b*2+0]*rx, miny, cz+dir[b*2+1]*rz, col2); + dd->vertex(cx+dir[c*2+0]*rx, miny, cz+dir[c*2+1]*rz, col2); + } + for (int i = 2; i < NUM_SEG; ++i) + { + const int a = 0, b = i, c = i-1; + dd->vertex(cx+dir[a*2+0]*rx, maxy, cz+dir[a*2+1]*rz, col); + dd->vertex(cx+dir[b*2+0]*rx, maxy, cz+dir[b*2+1]*rz, col); + dd->vertex(cx+dir[c*2+0]*rx, maxy, cz+dir[c*2+1]*rz, col); + } + for (int i = 0, j = NUM_SEG-1; i < NUM_SEG; j = i++) + { + dd->vertex(cx+dir[i*2+0]*rx, miny, cz+dir[i*2+1]*rz, col2); + dd->vertex(cx+dir[j*2+0]*rx, miny, cz+dir[j*2+1]*rz, col2); + dd->vertex(cx+dir[j*2+0]*rx, maxy, cz+dir[j*2+1]*rz, col); + + dd->vertex(cx+dir[i*2+0]*rx, miny, cz+dir[i*2+1]*rz, col2); + dd->vertex(cx+dir[j*2+0]*rx, maxy, cz+dir[j*2+1]*rz, col); + dd->vertex(cx+dir[i*2+0]*rx, maxy, cz+dir[i*2+1]*rz, col); + } +} + inline void evalArc(const float x0, const float y0, const float z0, const float dx, const float dy, const float dz, diff --git a/DebugUtils/Source/DetourDebugDraw.cpp b/DebugUtils/Source/DetourDebugDraw.cpp index f350564..20a8bbb 100755 --- a/DebugUtils/Source/DetourDebugDraw.cpp +++ b/DebugUtils/Source/DetourDebugDraw.cpp @@ -72,9 +72,9 @@ static void drawPolyBoundaries(duDebugDraw* dd, const dtMeshTile* tile, } } if (con) - c = duRGBA(255,255,255,64); + c = duRGBA(255,255,255,24); else - c = duRGBA(0,0,0,128); + c = duRGBA(0,0,0,48); } else c = duRGBA(0,48,64,32); diff --git a/Detour/Include/DetourNavMeshQuery.h b/Detour/Include/DetourNavMeshQuery.h index 1218434..f5046d8 100644 --- a/Detour/Include/DetourNavMeshQuery.h +++ b/Detour/Include/DetourNavMeshQuery.h @@ -173,12 +173,22 @@ public: // Returns: Path query state. dtStatus updateSlicedFindPath(const int maxIter); - // Finalizes sliced path find query. + // Finalizes sliced path find query and returns found path. // path - (out) array holding the search result. // pathCount - (out) Number of polygons in search result array. // maxPath - (in) The max number of polygons the path array can hold. dtStatus finalizeSlicedFindPath(dtPolyRef* path, int* pathCount, const int maxPath); + // Finalizes partial sliced path find query and returns path to the furthest + // polygon on the existing path that was visited during the search. + // existing - (out) Array of polygons in the existing path. + // existingSize - (out) Number of polygons in existing path array. + // path - (out) array holding the search result. + // pathCount - (out) Number of polygons in search result array. + // maxPath - (in) The max number of polygons the path array can hold. + dtStatus finalizeSlicedFindPathPartial(const dtPolyRef* existing, const int existingSize, + dtPolyRef* path, int* pathCount, const int maxPath); + // Finds a straight path from start to end locations within the corridor // described by the path polygons. // Start and end locations will be clamped on the corridor. diff --git a/Detour/Include/DetourNode.h b/Detour/Include/DetourNode.h index beb5272..e893f78 100644 --- a/Detour/Include/DetourNode.h +++ b/Detour/Include/DetourNode.h @@ -47,7 +47,7 @@ public: inline void operator=(const dtNodePool&) {} void clear(); dtNode* getNode(dtPolyRef id); - const dtNode* findNode(dtPolyRef id) const; + dtNode* findNode(dtPolyRef id); inline unsigned int getNodeIdx(const dtNode* node) const { diff --git a/Detour/Source/DetourNavMeshQuery.cpp b/Detour/Source/DetourNavMeshQuery.cpp index 8a0d07c..44aafe2 100644 --- a/Detour/Source/DetourNavMeshQuery.cpp +++ b/Detour/Source/DetourNavMeshQuery.cpp @@ -1015,6 +1015,75 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPath(dtPolyRef* path, int* pathCount, return DT_SUCCESS; } +dtStatus dtNavMeshQuery::finalizeSlicedFindPathPartial(const dtPolyRef* existing, const int existingSize, + dtPolyRef* path, int* pathCount, const int maxPath) +{ + *pathCount = 0; + + if (existingSize == 0) + { + return DT_FAILURE; + } + + if (m_query.status != DT_SUCCESS && m_query.status != DT_IN_PROGRESS) + { + // Reset query. + memset(&m_query, 0, sizeof(dtQueryData)); + return DT_FAILURE; + } + + int n = 0; + + if (m_query.startRef == m_query.endRef) + { + // Special case: the search starts and ends at same poly. + path[n++] = m_query.startRef; + } + else + { + // Find furthest existing node that was visited. + dtNode* prev = 0; + dtNode* node = 0; + for (int i = existingSize-1; i >= 0; --i) + { + node = m_nodePool->findNode(existing[i]); + if (node) + break; + } + + if (!node) + { + return DT_FAILURE; + } + + // Reverse the path. + do + { + dtNode* next = m_nodePool->getNodeAtIdx(node->pidx); + node->pidx = m_nodePool->getNodeIdx(prev); + prev = node; + node = next; + } + while (node); + + // Store path + node = prev; + do + { + path[n++] = node->id; + node = m_nodePool->getNodeAtIdx(node->pidx); + } + while (node && n < maxPath); + } + + // Reset query. + memset(&m_query, 0, sizeof(dtQueryData)); + + *pathCount = n; + + return DT_SUCCESS; +} + dtStatus dtNavMeshQuery::findStraightPath(const float* startPos, const float* endPos, const dtPolyRef* path, const int pathSize, diff --git a/Detour/Source/DetourNode.cpp b/Detour/Source/DetourNode.cpp index 176bdca..7b4d94a 100644 --- a/Detour/Source/DetourNode.cpp +++ b/Detour/Source/DetourNode.cpp @@ -70,7 +70,7 @@ void dtNodePool::clear() m_nodeCount = 0; } -const dtNode* dtNodePool::findNode(dtPolyRef id) const +dtNode* dtNodePool::findNode(dtPolyRef id) { unsigned int bucket = dtHashRef(id) & (m_hashSize-1); unsigned short i = m_first[bucket]; diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 590f4fd..2fa186a 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -16,15 +16,18 @@ 8D1107260486CEB800E47090 /* Recast */, ); breakpoints = ( - 6BBB4C4C115B7BAD00CF791D /* Sample_TileMesh.cpp:279 */, + 6BBB4C4C115B7BAD00CF791D /* Sample_TileMesh.cpp:281 */, 6B42164711806B2F006C347B /* DetourDebugDraw.cpp:362 */, 6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1324 */, 6BA687AC1222F7AC00730711 /* Sample_Debug.cpp:137 */, - 6BD403421224642500995864 /* NavMeshTesterTool.cpp:543 */, + 6BD403421224642500995864 /* NavMeshTesterTool.cpp:547 */, 6B920A121225B1C900D5B5AD /* DetourHashLookup.cpp:78 */, 6B920A141225B1CF00D5B5AD /* DetourHashLookup.cpp:131 */, - 6BD66851124350F50021A7A4 /* NavMeshTesterTool.cpp:482 */, - 6B8D55CD127AAA360077C699 /* CrowdManager.cpp:1169 */, + 6BD66851124350F50021A7A4 /* NavMeshTesterTool.cpp:486 */, + 6B8D55CD127AAA360077C699 /* CrowdManager.cpp:1197 */, + 6B74B5EA128312A900262888 /* main.cpp:211 */, + 6B74B60C128312E600262888 /* CrowdTool.cpp:296 */, + 6B74B72E1286B1B000262888 /* CrowdManager.cpp:1313 */, ); codeSenseManager = 6B8632AA0F78115100E2684A /* Code sense */; executables = ( @@ -98,7 +101,7 @@ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, - 10, + 753, 20, 48, 43, @@ -127,156 +130,197 @@ PBXFindDataSource_LocationID, ); }; - PBXPerProjectTemplateStateSaveDate = 310039373; - PBXWorkspaceStateSaveDate = 310039373; + PBXPerProjectTemplateStateSaveDate = 310579257; + PBXWorkspaceStateSaveDate = 310579257; }; perUserProjectItems = { - 6B1633101268326F0083FC15 = 6B1633101268326F0083FC15 /* PBXTextBookmark */; - 6B1633121268326F0083FC15 = 6B1633121268326F0083FC15 /* PBXTextBookmark */; - 6B1633141268326F0083FC15 = 6B1633141268326F0083FC15 /* PBXTextBookmark */; - 6B163317126832D20083FC15 = 6B163317126832D20083FC15 /* PBXTextBookmark */; - 6B16357012687A5D0083FC15 = 6B16357012687A5D0083FC15 /* PBXTextBookmark */; - 6B16358E12687D740083FC15 = 6B16358E12687D740083FC15 /* PBXTextBookmark */; - 6B16359012687D740083FC15 = 6B16359012687D740083FC15 /* PBXTextBookmark */; - 6B16359112687D740083FC15 = 6B16359112687D740083FC15 /* PBXTextBookmark */; - 6B1635B9126884520083FC15 = 6B1635B9126884520083FC15 /* PBXTextBookmark */; - 6B1635BB126884520083FC15 = 6B1635BB126884520083FC15 /* PBXTextBookmark */; - 6B1635C8126885AD0083FC15 = 6B1635C8126885AD0083FC15 /* PBXTextBookmark */; - 6B1635D3126887C80083FC15 = 6B1635D3126887C80083FC15 /* PBXTextBookmark */; - 6B1635D4126887C80083FC15 = 6B1635D4126887C80083FC15 /* PBXTextBookmark */; - 6B1635E812688D1B0083FC15 = 6B1635E812688D1B0083FC15 /* PBXTextBookmark */; - 6B16360A126891A40083FC15 = 6B16360A126891A40083FC15 /* PBXTextBookmark */; - 6B1C8E08121EB4FF0048697F = 6B1C8E08121EB4FF0048697F /* PBXTextBookmark */; - 6B847779122D223D00ADF63D = 6B847779122D223D00ADF63D /* PBXTextBookmark */; - 6B84778B122D279700ADF63D = 6B84778B122D279700ADF63D /* PBXTextBookmark */; - 6B8477BB122D297200ADF63D = 6B8477BB122D297200ADF63D /* PBXTextBookmark */; - 6B8477E1122D2B9100ADF63D = 6B8477E1122D2B9100ADF63D /* PBXTextBookmark */; - 6B8477FE122D2E2A00ADF63D = 6B8477FE122D2E2A00ADF63D /* PBXTextBookmark */; - 6B8477FF122D2E2A00ADF63D = 6B8477FF122D2E2A00ADF63D /* PBXTextBookmark */; - 6B8D5565127A98FB0077C699 = 6B8D5565127A98FB0077C699 /* PBXTextBookmark */; - 6B8D559F127AA3E70077C699 = 6B8D559F127AA3E70077C699 /* PBXTextBookmark */; - 6B8D55A0127AA3E70077C699 = 6B8D55A0127AA3E70077C699 /* PBXTextBookmark */; - 6B8D55B5127AA5E60077C699 = 6B8D55B5127AA5E60077C699 /* PBXTextBookmark */; - 6B8D55F2127ABAD40077C699 = 6B8D55F2127ABAD40077C699 /* PBXTextBookmark */; - 6B8D55F3127ABAD40077C699 = 6B8D55F3127ABAD40077C699 /* PBXTextBookmark */; - 6B8D5603127ABBD80077C699 = 6B8D5603127ABBD80077C699 /* PBXTextBookmark */; - 6B8D5609127ACF8D0077C699 = 6B8D5609127ACF8D0077C699 /* PBXTextBookmark */; - 6B8D560A127ACF8D0077C699 = 6B8D560A127ACF8D0077C699 /* PBXTextBookmark */; - 6B8D560B127ACF8D0077C699 = 6B8D560B127ACF8D0077C699 /* PBXTextBookmark */; - 6B8D560C127ACF8D0077C699 = 6B8D560C127ACF8D0077C699 /* PBXTextBookmark */; - 6B8D560E127ACF8D0077C699 = 6B8D560E127ACF8D0077C699 /* PBXTextBookmark */; - 6B8D5610127ACF8D0077C699 = 6B8D5610127ACF8D0077C699 /* PBXTextBookmark */; - 6B8D5621127AD44A0077C699 /* PBXTextBookmark */ = 6B8D5621127AD44A0077C699 /* PBXTextBookmark */; - 6B8D5622127AD44A0077C699 /* PBXTextBookmark */ = 6B8D5622127AD44A0077C699 /* PBXTextBookmark */; - 6B8D5623127AD44A0077C699 /* PBXTextBookmark */ = 6B8D5623127AD44A0077C699 /* PBXTextBookmark */; - 6B8D5624127AD44A0077C699 /* PBXTextBookmark */ = 6B8D5624127AD44A0077C699 /* PBXTextBookmark */; - 6B8D5636127AD6CA0077C699 /* PBXTextBookmark */ = 6B8D5636127AD6CA0077C699 /* PBXTextBookmark */; - 6B8D5637127AD6CA0077C699 /* PBXTextBookmark */ = 6B8D5637127AD6CA0077C699 /* PBXTextBookmark */; - 6B8D5638127AD6CA0077C699 /* PBXTextBookmark */ = 6B8D5638127AD6CA0077C699 /* PBXTextBookmark */; - 6B8D5639127AD6CA0077C699 /* PBXTextBookmark */ = 6B8D5639127AD6CA0077C699 /* PBXTextBookmark */; - 6B8D5640127AD6EC0077C699 /* PBXTextBookmark */ = 6B8D5640127AD6EC0077C699 /* PBXTextBookmark */; - 6B8D5641127AD6EC0077C699 /* PBXTextBookmark */ = 6B8D5641127AD6EC0077C699 /* PBXTextBookmark */; - 6B8D5649127AD7800077C699 /* PBXTextBookmark */ = 6B8D5649127AD7800077C699 /* PBXTextBookmark */; - 6B8D564A127AD7800077C699 /* PBXTextBookmark */ = 6B8D564A127AD7800077C699 /* PBXTextBookmark */; - 6B8D564B127AD7800077C699 /* PBXTextBookmark */ = 6B8D564B127AD7800077C699 /* PBXTextBookmark */; - 6B8D5654127AD9590077C699 /* PBXTextBookmark */ = 6B8D5654127AD9590077C699 /* PBXTextBookmark */; - 6B8D5655127AD9590077C699 /* PBXTextBookmark */ = 6B8D5655127AD9590077C699 /* PBXTextBookmark */; - 6B8D5656127AD9590077C699 /* PBXTextBookmark */ = 6B8D5656127AD9590077C699 /* PBXTextBookmark */; - 6B8D565F127ADB0D0077C699 /* PBXTextBookmark */ = 6B8D565F127ADB0D0077C699 /* PBXTextBookmark */; - 6B8D5660127ADB0D0077C699 /* PBXTextBookmark */ = 6B8D5660127ADB0D0077C699 /* PBXTextBookmark */; - 6B8D5661127ADB0D0077C699 /* PBXTextBookmark */ = 6B8D5661127ADB0D0077C699 /* PBXTextBookmark */; - 6B8D5662127ADB0D0077C699 /* PBXTextBookmark */ = 6B8D5662127ADB0D0077C699 /* PBXTextBookmark */; - 6B8D5663127ADB0D0077C699 /* PBXTextBookmark */ = 6B8D5663127ADB0D0077C699 /* PBXTextBookmark */; - 6B8D5664127ADB0D0077C699 /* PBXTextBookmark */ = 6B8D5664127ADB0D0077C699 /* PBXTextBookmark */; - 6B8D5665127ADB0D0077C699 /* PBXTextBookmark */ = 6B8D5665127ADB0D0077C699 /* PBXTextBookmark */; - 6B8D5666127ADB0D0077C699 /* PBXTextBookmark */ = 6B8D5666127ADB0D0077C699 /* PBXTextBookmark */; - 6B8D5667127ADB0D0077C699 /* PBXTextBookmark */ = 6B8D5667127ADB0D0077C699 /* PBXTextBookmark */; - 6B8D5668127ADB0D0077C699 /* PBXTextBookmark */ = 6B8D5668127ADB0D0077C699 /* PBXTextBookmark */; - 6B8D566D127ADB7D0077C699 /* PBXTextBookmark */ = 6B8D566D127ADB7D0077C699 /* PBXTextBookmark */; - 6B8D566E127ADB7D0077C699 /* PBXTextBookmark */ = 6B8D566E127ADB7D0077C699 /* PBXTextBookmark */; - 6B8D566F127ADB7D0077C699 /* PBXTextBookmark */ = 6B8D566F127ADB7D0077C699 /* PBXTextBookmark */; - 6B8D5670127ADB7D0077C699 /* PBXTextBookmark */ = 6B8D5670127ADB7D0077C699 /* PBXTextBookmark */; - 6B8D5671127ADB7D0077C699 /* PBXTextBookmark */ = 6B8D5671127ADB7D0077C699 /* PBXTextBookmark */; - 6B8D5672127ADBB00077C699 /* PBXTextBookmark */ = 6B8D5672127ADBB00077C699 /* PBXTextBookmark */; - 6B8D5673127ADBB00077C699 /* PBXTextBookmark */ = 6B8D5673127ADBB00077C699 /* PBXTextBookmark */; - 6B8D5674127ADBB00077C699 /* PBXTextBookmark */ = 6B8D5674127ADBB00077C699 /* PBXTextBookmark */; - 6B8D56C7127AEC100077C699 /* PBXTextBookmark */ = 6B8D56C7127AEC100077C699 /* PBXTextBookmark */; - 6B8D56C8127AEC100077C699 /* PBXTextBookmark */ = 6B8D56C8127AEC100077C699 /* PBXTextBookmark */; - 6B8D56C9127AEC100077C699 /* PBXTextBookmark */ = 6B8D56C9127AEC100077C699 /* PBXTextBookmark */; - 6B8D56CA127AEC100077C699 /* PBXTextBookmark */ = 6B8D56CA127AEC100077C699 /* PBXTextBookmark */; - 6B8D56CB127AEC100077C699 /* PBXTextBookmark */ = 6B8D56CB127AEC100077C699 /* PBXTextBookmark */; - 6B8D56CC127AEC100077C699 /* PBXTextBookmark */ = 6B8D56CC127AEC100077C699 /* PBXTextBookmark */; - 6B8D56CD127AEC100077C699 /* PBXTextBookmark */ = 6B8D56CD127AEC100077C699 /* PBXTextBookmark */; - 6B8D56CE127AEC100077C699 /* PBXTextBookmark */ = 6B8D56CE127AEC100077C699 /* PBXTextBookmark */; - 6B8D56CF127AEC100077C699 /* PBXTextBookmark */ = 6B8D56CF127AEC100077C699 /* PBXTextBookmark */; - 6B8D56D0127AEC100077C699 /* PBXTextBookmark */ = 6B8D56D0127AEC100077C699 /* PBXTextBookmark */; - 6B8D56D1127AEC100077C699 /* PBXTextBookmark */ = 6B8D56D1127AEC100077C699 /* PBXTextBookmark */; - 6B8D56D2127AEC100077C699 /* PBXTextBookmark */ = 6B8D56D2127AEC100077C699 /* PBXTextBookmark */; - 6B8D56D3127AEC100077C699 /* XCBuildMessageTextBookmark */ = 6B8D56D3127AEC100077C699 /* XCBuildMessageTextBookmark */; - 6B8D56D4127AEC100077C699 /* PBXTextBookmark */ = 6B8D56D4127AEC100077C699 /* PBXTextBookmark */; - 6B8D56D8127AEC580077C699 /* PBXTextBookmark */ = 6B8D56D8127AEC580077C699 /* PBXTextBookmark */; - 6B8D56D9127AEC580077C699 /* PBXTextBookmark */ = 6B8D56D9127AEC580077C699 /* PBXTextBookmark */; - 6B8D56DA127AEC580077C699 /* PBXTextBookmark */ = 6B8D56DA127AEC580077C699 /* PBXTextBookmark */; - 6B920A521225C0AC00D5B5AD = 6B920A521225C0AC00D5B5AD /* PBXTextBookmark */; - 6B920A6D1225C5DD00D5B5AD = 6B920A6D1225C5DD00D5B5AD /* PBXTextBookmark */; - 6B98462E11E6141900FA177B = 6B98462E11E6141900FA177B /* PBXTextBookmark */; - 6B98473011E737D800FA177B = 6B98473011E737D800FA177B /* PBXTextBookmark */; - 6BA6876E1222F02E00730711 = 6BA6876E1222F02E00730711 /* PBXTextBookmark */; - 6BA687881222F4DB00730711 = 6BA687881222F4DB00730711 /* PBXTextBookmark */; - 6BA687CA1222FA9300730711 = 6BA687CA1222FA9300730711 /* PBXTextBookmark */; - 6BA7F8EC1227002300C8C47A = 6BA7F8EC1227002300C8C47A /* PBXTextBookmark */; - 6BA8CECB1255C1A400272A3B = 6BA8CECB1255C1A400272A3B /* PBXTextBookmark */; - 6BA8CECD1255C1A400272A3B = 6BA8CECD1255C1A400272A3B /* PBXTextBookmark */; - 6BA8CEEF1255C4B700272A3B = 6BA8CEEF1255C4B700272A3B /* PBXTextBookmark */; - 6BA8CF4A1255D44700272A3B = 6BA8CF4A1255D44700272A3B /* PBXTextBookmark */; - 6BA8CF4D1255D44700272A3B = 6BA8CF4D1255D44700272A3B /* PBXTextBookmark */; - 6BA8CF511255D44700272A3B = 6BA8CF511255D44700272A3B /* PBXTextBookmark */; - 6BA8CF5B1255D49B00272A3B = 6BA8CF5B1255D49B00272A3B /* PBXTextBookmark */; - 6BA8CF951255D97400272A3B = 6BA8CF951255D97400272A3B /* PBXTextBookmark */; - 6BA8CFBE1255DE0500272A3B = 6BA8CFBE1255DE0500272A3B /* PBXTextBookmark */; - 6BAF4321121AF998008CFCDF = 6BAF4321121AF998008CFCDF /* PBXTextBookmark */; - 6BAF4421121C25E3008CFCDF = 6BAF4421121C25E3008CFCDF /* PBXTextBookmark */; - 6BAF4525121D1723008CFCDF = 6BAF4525121D1723008CFCDF /* PBXTextBookmark */; - 6BAF46D3121D8FF1008CFCDF = 6BAF46D3121D8FF1008CFCDF /* PBXTextBookmark */; - 6BB2EDF91261C75400E350F8 = 6BB2EDF91261C75400E350F8 /* PBXTextBookmark */; - 6BB2EE241261C92300E350F8 = 6BB2EE241261C92300E350F8 /* PBXTextBookmark */; - 6BB2EE261261C92300E350F8 = 6BB2EE261261C92300E350F8 /* PBXTextBookmark */; - 6BB2EE271261C92300E350F8 = 6BB2EE271261C92300E350F8 /* PBXTextBookmark */; - 6BB2EE361261CEB800E350F8 = 6BB2EE361261CEB800E350F8 /* PBXTextBookmark */; - 6BB2EE3F1261D02000E350F8 = 6BB2EE3F1261D02000E350F8 /* PBXTextBookmark */; - 6BB2EE661261D48100E350F8 = 6BB2EE661261D48100E350F8 /* PBXTextBookmark */; - 6BB2EE691261D48100E350F8 = 6BB2EE691261D48100E350F8 /* PBXTextBookmark */; - 6BB9C229126F4A9100B97C1C = 6BB9C229126F4A9100B97C1C /* PBXTextBookmark */; - 6BB9C253126F555F00B97C1C = 6BB9C253126F555F00B97C1C /* PBXTextBookmark */; - 6BB9C2A2126F623D00B97C1C = 6BB9C2A2126F623D00B97C1C /* PBXTextBookmark */; - 6BB9C2AA126F62C000B97C1C = 6BB9C2AA126F62C000B97C1C /* PBXTextBookmark */; - 6BB9C2B5127449CE00B97C1C = 6BB9C2B5127449CE00B97C1C /* PBXTextBookmark */; - 6BB9C2BD127449CE00B97C1C = 6BB9C2BD127449CE00B97C1C /* PBXTextBookmark */; - 6BB9C372127A0E5600B97C1C = 6BB9C372127A0E5600B97C1C /* PBXTextBookmark */; - 6BBB0361124E242E00533229 = 6BBB0361124E242E00533229 /* PBXTextBookmark */; - 6BBB0363124E242E00533229 = 6BBB0363124E242E00533229 /* PBXTextBookmark */; - 6BBB4C34115B7A3D00CF791D = 6BBB4C34115B7A3D00CF791D /* PBXTextBookmark */; - 6BD402111224336600995864 = 6BD402111224336600995864 /* PBXTextBookmark */; - 6BD402121224336600995864 = 6BD402121224336600995864 /* PBXTextBookmark */; - 6BD402611224387200995864 = 6BD402611224387200995864 /* PBXTextBookmark */; - 6BD402621224387200995864 = 6BD402621224387200995864 /* PBXTextBookmark */; - 6BD402811224393000995864 = 6BD402811224393000995864 /* PBXTextBookmark */; - 6BD4028C1224399300995864 = 6BD4028C1224399300995864 /* PBXTextBookmark */; - 6BD4029B12243A8000995864 = 6BD4029B12243A8000995864 /* PBXTextBookmark */; - 6BD6681812434B790021A7A4 = 6BD6681812434B790021A7A4 /* PBXTextBookmark */; - 6BD66855124350F80021A7A4 = 6BD66855124350F80021A7A4 /* PBXTextBookmark */; - 6BD668A3124361EB0021A7A4 = 6BD668A3124361EB0021A7A4 /* PBXTextBookmark */; - 6BD66930124374D60021A7A4 = 6BD66930124374D60021A7A4 /* PBXTextBookmark */; - 6BD66937124376780021A7A4 = 6BD66937124376780021A7A4 /* PBXTextBookmark */; - 6BD66938124376780021A7A4 = 6BD66938124376780021A7A4 /* PBXTextBookmark */; - 6BD669501243778E0021A7A4 = 6BD669501243778E0021A7A4 /* PBXTextBookmark */; - 6BD669511243778E0021A7A4 = 6BD669511243778E0021A7A4 /* PBXTextBookmark */; - 6BD6695C124377D40021A7A4 = 6BD6695C124377D40021A7A4 /* PBXTextBookmark */; - 6BF5F27311747CFA000502A6 = 6BF5F27311747CFA000502A6 /* PBXTextBookmark */; - 6BF5F2E411748884000502A6 = 6BF5F2E411748884000502A6 /* PBXTextBookmark */; - 6BF5F2E511748884000502A6 = 6BF5F2E511748884000502A6 /* PBXTextBookmark */; - 6BF5F2E611748884000502A6 = 6BF5F2E611748884000502A6 /* PBXTextBookmark */; - 6BF5F2E711748884000502A6 = 6BF5F2E711748884000502A6 /* PBXTextBookmark */; + 6B4DE616127F2407001CFDF4 = 6B4DE616127F2407001CFDF4 /* PBXTextBookmark */; + 6B4DE62E12807542001CFDF4 = 6B4DE62E12807542001CFDF4 /* PBXTextBookmark */; + 6B4DE62F12807542001CFDF4 = 6B4DE62F12807542001CFDF4 /* PBXTextBookmark */; + 6B4DE63012807542001CFDF4 = 6B4DE63012807542001CFDF4 /* PBXTextBookmark */; + 6B4DE63112807542001CFDF4 = 6B4DE63112807542001CFDF4 /* PBXTextBookmark */; + 6B4DE63212807542001CFDF4 = 6B4DE63212807542001CFDF4 /* PBXTextBookmark */; + 6B4DE63312807542001CFDF4 = 6B4DE63312807542001CFDF4 /* PBXTextBookmark */; + 6B4DE63412807542001CFDF4 = 6B4DE63412807542001CFDF4 /* PBXTextBookmark */; + 6B4DE63512807542001CFDF4 = 6B4DE63512807542001CFDF4 /* PBXTextBookmark */; + 6B4DE63612807542001CFDF4 = 6B4DE63612807542001CFDF4 /* PBXTextBookmark */; + 6B4DE64412807587001CFDF4 = 6B4DE64412807587001CFDF4 /* PBXTextBookmark */; + 6B4DE646128079E0001CFDF4 = 6B4DE646128079E0001CFDF4 /* PBXTextBookmark */; + 6B4DE647128079E0001CFDF4 = 6B4DE647128079E0001CFDF4 /* PBXTextBookmark */; + 6B4DE648128079E0001CFDF4 = 6B4DE648128079E0001CFDF4 /* PBXTextBookmark */; + 6B4DE649128079E0001CFDF4 = 6B4DE649128079E0001CFDF4 /* PBXTextBookmark */; + 6B4DE64A128079E0001CFDF4 = 6B4DE64A128079E0001CFDF4 /* PBXTextBookmark */; + 6B4DE64B128079E0001CFDF4 = 6B4DE64B128079E0001CFDF4 /* PBXTextBookmark */; + 6B4DE64C128079E0001CFDF4 = 6B4DE64C128079E0001CFDF4 /* PBXTextBookmark */; + 6B4DE651128079F3001CFDF4 = 6B4DE651128079F3001CFDF4 /* PBXTextBookmark */; + 6B4DE65D12807AB6001CFDF4 = 6B4DE65D12807AB6001CFDF4 /* PBXTextBookmark */; + 6B4DE65E12807AB6001CFDF4 = 6B4DE65E12807AB6001CFDF4 /* PBXTextBookmark */; + 6B4DE65F12807AB6001CFDF4 = 6B4DE65F12807AB6001CFDF4 /* PBXTextBookmark */; + 6B4DE66212807AD9001CFDF4 = 6B4DE66212807AD9001CFDF4 /* PBXTextBookmark */; + 6B4DE66512807B09001CFDF4 = 6B4DE66512807B09001CFDF4 /* PBXTextBookmark */; + 6B4DE66612807B39001CFDF4 = 6B4DE66612807B39001CFDF4 /* PBXTextBookmark */; + 6B4DE66712807B39001CFDF4 = 6B4DE66712807B39001CFDF4 /* PBXTextBookmark */; + 6B4DE66812807B39001CFDF4 = 6B4DE66812807B39001CFDF4 /* PBXTextBookmark */; + 6B4DE66912807B41001CFDF4 = 6B4DE66912807B41001CFDF4 /* PBXTextBookmark */; + 6B4DE66A12807B41001CFDF4 = 6B4DE66A12807B41001CFDF4 /* PBXTextBookmark */; + 6B4DE66B12807B41001CFDF4 = 6B4DE66B12807B41001CFDF4 /* PBXTextBookmark */; + 6B4DE66C12807B41001CFDF4 = 6B4DE66C12807B41001CFDF4 /* PBXTextBookmark */; + 6B4DE67112807C71001CFDF4 = 6B4DE67112807C71001CFDF4 /* PBXTextBookmark */; + 6B4DE67312807D05001CFDF4 = 6B4DE67312807D05001CFDF4 /* PBXTextBookmark */; + 6B4DE67412807D05001CFDF4 = 6B4DE67412807D05001CFDF4 /* PBXTextBookmark */; + 6B4DE67512807D05001CFDF4 = 6B4DE67512807D05001CFDF4 /* PBXTextBookmark */; + 6B74B5DC1283104100262888 /* PBXTextBookmark */ = 6B74B5DC1283104100262888 /* PBXTextBookmark */; + 6B74B5EC128312AC00262888 /* PBXTextBookmark */ = 6B74B5EC128312AC00262888 /* PBXTextBookmark */; + 6B74B5ED128312AC00262888 /* PBXTextBookmark */ = 6B74B5ED128312AC00262888 /* PBXTextBookmark */; + 6B74B5EE128312AC00262888 /* PBXTextBookmark */ = 6B74B5EE128312AC00262888 /* PBXTextBookmark */; + 6B74B5EF128312AC00262888 /* PBXTextBookmark */ = 6B74B5EF128312AC00262888 /* PBXTextBookmark */; + 6B74B5F0128312AC00262888 /* PBXTextBookmark */ = 6B74B5F0128312AC00262888 /* PBXTextBookmark */; + 6B74B5F1128312AC00262888 /* PBXTextBookmark */ = 6B74B5F1128312AC00262888 /* PBXTextBookmark */; + 6B74B5F2128312AC00262888 /* PBXTextBookmark */ = 6B74B5F2128312AC00262888 /* PBXTextBookmark */; + 6B74B5F3128312AC00262888 /* PBXTextBookmark */ = 6B74B5F3128312AC00262888 /* PBXTextBookmark */; + 6B74B5F4128312AC00262888 /* PBXTextBookmark */ = 6B74B5F4128312AC00262888 /* PBXTextBookmark */; + 6B74B5F5128312AC00262888 /* PBXTextBookmark */ = 6B74B5F5128312AC00262888 /* PBXTextBookmark */; + 6B74B5F6128312AC00262888 /* PBXTextBookmark */ = 6B74B5F6128312AC00262888 /* PBXTextBookmark */; + 6B74B5F7128312AC00262888 /* PBXTextBookmark */ = 6B74B5F7128312AC00262888 /* PBXTextBookmark */; + 6B74B5F8128312AC00262888 /* PBXTextBookmark */ = 6B74B5F8128312AC00262888 /* PBXTextBookmark */; + 6B74B5F9128312AC00262888 /* PBXTextBookmark */ = 6B74B5F9128312AC00262888 /* PBXTextBookmark */; + 6B74B5FA128312AC00262888 /* PBXTextBookmark */ = 6B74B5FA128312AC00262888 /* PBXTextBookmark */; + 6B74B5FB128312AC00262888 /* PBXTextBookmark */ = 6B74B5FB128312AC00262888 /* PBXTextBookmark */; + 6B74B5FC128312AC00262888 /* PBXTextBookmark */ = 6B74B5FC128312AC00262888 /* PBXTextBookmark */; + 6B74B60E128312E900262888 /* PBXTextBookmark */ = 6B74B60E128312E900262888 /* PBXTextBookmark */; + 6B74B60F128312E900262888 /* PBXTextBookmark */ = 6B74B60F128312E900262888 /* PBXTextBookmark */; + 6B74B610128312E900262888 /* PBXTextBookmark */ = 6B74B610128312E900262888 /* PBXTextBookmark */; + 6B74B611128312E900262888 /* PBXTextBookmark */ = 6B74B611128312E900262888 /* PBXTextBookmark */; + 6B74B612128312E900262888 /* PBXTextBookmark */ = 6B74B612128312E900262888 /* PBXTextBookmark */; + 6B74B613128312E900262888 /* PBXTextBookmark */ = 6B74B613128312E900262888 /* PBXTextBookmark */; + 6B74B618128313D600262888 /* PBXTextBookmark */ = 6B74B618128313D600262888 /* PBXTextBookmark */; + 6B74B622128314A500262888 /* PBXTextBookmark */ = 6B74B622128314A500262888 /* PBXTextBookmark */; + 6B74B623128314A500262888 /* PBXTextBookmark */ = 6B74B623128314A500262888 /* PBXTextBookmark */; + 6B74B624128314A500262888 /* PBXTextBookmark */ = 6B74B624128314A500262888 /* PBXTextBookmark */; + 6B74B625128314A500262888 /* PBXTextBookmark */ = 6B74B625128314A500262888 /* PBXTextBookmark */; + 6B74B626128314A500262888 /* PBXTextBookmark */ = 6B74B626128314A500262888 /* PBXTextBookmark */; + 6B74B627128314A500262888 /* PBXTextBookmark */ = 6B74B627128314A500262888 /* PBXTextBookmark */; + 6B74B628128314A500262888 /* PBXTextBookmark */ = 6B74B628128314A500262888 /* PBXTextBookmark */; + 6B74B629128314A500262888 /* PBXTextBookmark */ = 6B74B629128314A500262888 /* PBXTextBookmark */; + 6B74B62A128314A500262888 /* PBXTextBookmark */ = 6B74B62A128314A500262888 /* PBXTextBookmark */; + 6B74B62B128314A500262888 /* PBXTextBookmark */ = 6B74B62B128314A500262888 /* PBXTextBookmark */; + 6B74B62C128314A500262888 /* PBXTextBookmark */ = 6B74B62C128314A500262888 /* PBXTextBookmark */; + 6B74B62D128314A500262888 /* XCBuildMessageTextBookmark */ = 6B74B62D128314A500262888 /* XCBuildMessageTextBookmark */; + 6B74B62E128314A500262888 /* PBXTextBookmark */ = 6B74B62E128314A500262888 /* PBXTextBookmark */; + 6B74B66412869CE100262888 /* PBXTextBookmark */ = 6B74B66412869CE100262888 /* PBXTextBookmark */; + 6B74B66512869CE100262888 /* PBXTextBookmark */ = 6B74B66512869CE100262888 /* PBXTextBookmark */; + 6B74B66612869CE100262888 /* PBXTextBookmark */ = 6B74B66612869CE100262888 /* PBXTextBookmark */; + 6B74B66712869CE100262888 /* PBXTextBookmark */ = 6B74B66712869CE100262888 /* PBXTextBookmark */; + 6B74B66812869CE100262888 /* PBXTextBookmark */ = 6B74B66812869CE100262888 /* PBXTextBookmark */; + 6B74B66F12869E3000262888 /* PBXTextBookmark */ = 6B74B66F12869E3000262888 /* PBXTextBookmark */; + 6B74B67012869E3000262888 /* XCBuildMessageTextBookmark */ = 6B74B67012869E3000262888 /* XCBuildMessageTextBookmark */; + 6B74B67112869E3000262888 /* PBXTextBookmark */ = 6B74B67112869E3000262888 /* PBXTextBookmark */; + 6B74B6831286A39000262888 /* PBXTextBookmark */ = 6B74B6831286A39000262888 /* PBXTextBookmark */; + 6B74B6841286A39000262888 /* PBXTextBookmark */ = 6B74B6841286A39000262888 /* PBXTextBookmark */; + 6B74B6851286A39000262888 /* XCBuildMessageTextBookmark */ = 6B74B6851286A39000262888 /* XCBuildMessageTextBookmark */; + 6B74B6861286A39000262888 /* PBXTextBookmark */ = 6B74B6861286A39000262888 /* PBXTextBookmark */; + 6B74B68A1286A47800262888 /* PBXTextBookmark */ = 6B74B68A1286A47800262888 /* PBXTextBookmark */; + 6B74B68B1286A47800262888 /* PBXTextBookmark */ = 6B74B68B1286A47800262888 /* PBXTextBookmark */; + 6B74B68C1286A47800262888 /* PBXTextBookmark */ = 6B74B68C1286A47800262888 /* PBXTextBookmark */; + 6B74B68F1286A4DD00262888 /* PBXTextBookmark */ = 6B74B68F1286A4DD00262888 /* PBXTextBookmark */; + 6B74B69C1286A52A00262888 /* PBXTextBookmark */ = 6B74B69C1286A52A00262888 /* PBXTextBookmark */; + 6B74B69D1286A52A00262888 /* PBXTextBookmark */ = 6B74B69D1286A52A00262888 /* PBXTextBookmark */; + 6B74B69E1286A52A00262888 /* PBXTextBookmark */ = 6B74B69E1286A52A00262888 /* PBXTextBookmark */; + 6B74B6A01286A67500262888 /* PBXTextBookmark */ = 6B74B6A01286A67500262888 /* PBXTextBookmark */; + 6B74B6A11286A6AE00262888 /* PBXTextBookmark */ = 6B74B6A11286A6AE00262888 /* PBXTextBookmark */; + 6B74B6A61286A6C300262888 /* PBXTextBookmark */ = 6B74B6A61286A6C300262888 /* PBXTextBookmark */; + 6B74B6AA1286A85800262888 /* PBXTextBookmark */ = 6B74B6AA1286A85800262888 /* PBXTextBookmark */; + 6B74B6AB1286A85800262888 /* PBXTextBookmark */ = 6B74B6AB1286A85800262888 /* PBXTextBookmark */; + 6B74B6AC1286A85800262888 /* PBXTextBookmark */ = 6B74B6AC1286A85800262888 /* PBXTextBookmark */; + 6B74B6B51286A9BD00262888 /* PBXTextBookmark */ = 6B74B6B51286A9BD00262888 /* PBXTextBookmark */; + 6B74B6B61286A9BD00262888 /* PBXTextBookmark */ = 6B74B6B61286A9BD00262888 /* PBXTextBookmark */; + 6B74B6B71286A9BD00262888 /* XCBuildMessageTextBookmark */ = 6B74B6B71286A9BD00262888 /* XCBuildMessageTextBookmark */; + 6B74B6B81286A9BD00262888 /* PBXTextBookmark */ = 6B74B6B81286A9BD00262888 /* PBXTextBookmark */; + 6B74B6BE1286AA0C00262888 /* PBXTextBookmark */ = 6B74B6BE1286AA0C00262888 /* PBXTextBookmark */; + 6B74B6BF1286AA0C00262888 /* PBXTextBookmark */ = 6B74B6BF1286AA0C00262888 /* PBXTextBookmark */; + 6B74B6C01286AA0C00262888 /* PBXTextBookmark */ = 6B74B6C01286AA0C00262888 /* PBXTextBookmark */; + 6B74B6C11286AA0C00262888 /* PBXTextBookmark */ = 6B74B6C11286AA0C00262888 /* PBXTextBookmark */; + 6B74B6C51286AA5900262888 /* PBXTextBookmark */ = 6B74B6C51286AA5900262888 /* PBXTextBookmark */; + 6B74B6C91286AAA200262888 /* PBXTextBookmark */ = 6B74B6C91286AAA200262888 /* PBXTextBookmark */; + 6B74B6CA1286AAA200262888 /* PBXTextBookmark */ = 6B74B6CA1286AAA200262888 /* PBXTextBookmark */; + 6B74B6CB1286AAA200262888 /* PBXTextBookmark */ = 6B74B6CB1286AAA200262888 /* PBXTextBookmark */; + 6B74B6CF1286AAF000262888 /* PBXTextBookmark */ = 6B74B6CF1286AAF000262888 /* PBXTextBookmark */; + 6B74B6D31286AB3B00262888 /* PBXTextBookmark */ = 6B74B6D31286AB3B00262888 /* PBXTextBookmark */; + 6B74B6D71286ABC000262888 /* PBXTextBookmark */ = 6B74B6D71286ABC000262888 /* PBXTextBookmark */; + 6B74B6D81286ABC000262888 /* PBXTextBookmark */ = 6B74B6D81286ABC000262888 /* PBXTextBookmark */; + 6B74B6D91286ABC000262888 /* PBXTextBookmark */ = 6B74B6D91286ABC000262888 /* PBXTextBookmark */; + 6B74B6DA1286ABC000262888 /* PBXTextBookmark */ = 6B74B6DA1286ABC000262888 /* PBXTextBookmark */; + 6B74B6DB1286ABC000262888 /* PBXTextBookmark */ = 6B74B6DB1286ABC000262888 /* PBXTextBookmark */; + 6B74B6DF1286AC2A00262888 /* PBXTextBookmark */ = 6B74B6DF1286AC2A00262888 /* PBXTextBookmark */; + 6B74B6E01286AC2A00262888 /* PBXTextBookmark */ = 6B74B6E01286AC2A00262888 /* PBXTextBookmark */; + 6B74B6E11286AC2A00262888 /* PBXTextBookmark */ = 6B74B6E11286AC2A00262888 /* PBXTextBookmark */; + 6B74B6E51286AC8200262888 /* PBXTextBookmark */ = 6B74B6E51286AC8200262888 /* PBXTextBookmark */; + 6B74B6E91286ACC200262888 /* PBXTextBookmark */ = 6B74B6E91286ACC200262888 /* PBXTextBookmark */; + 6B74B6ED1286AD3800262888 /* PBXTextBookmark */ = 6B74B6ED1286AD3800262888 /* PBXTextBookmark */; + 6B74B6EE1286AD3800262888 /* PBXTextBookmark */ = 6B74B6EE1286AD3800262888 /* PBXTextBookmark */; + 6B74B6EF1286AD3800262888 /* PBXTextBookmark */ = 6B74B6EF1286AD3800262888 /* PBXTextBookmark */; + 6B74B6F11286AD5400262888 /* PBXTextBookmark */ = 6B74B6F11286AD5400262888 /* PBXTextBookmark */; + 6B74B6F41286AD6A00262888 /* PBXTextBookmark */ = 6B74B6F41286AD6A00262888 /* PBXTextBookmark */; + 6B74B6FC1286AE0B00262888 /* PBXTextBookmark */ = 6B74B6FC1286AE0B00262888 /* PBXTextBookmark */; + 6B74B6FD1286AE0B00262888 /* PBXTextBookmark */ = 6B74B6FD1286AE0B00262888 /* PBXTextBookmark */; + 6B74B6FE1286AE0B00262888 /* PBXTextBookmark */ = 6B74B6FE1286AE0B00262888 /* PBXTextBookmark */; + 6B74B7061286AEBD00262888 /* PBXTextBookmark */ = 6B74B7061286AEBD00262888 /* PBXTextBookmark */; + 6B74B7071286AEBD00262888 /* PBXTextBookmark */ = 6B74B7071286AEBD00262888 /* PBXTextBookmark */; + 6B74B7081286AEBD00262888 /* XCBuildMessageTextBookmark */ = 6B74B7081286AEBD00262888 /* XCBuildMessageTextBookmark */; + 6B74B7091286AEBD00262888 /* PBXTextBookmark */ = 6B74B7091286AEBD00262888 /* PBXTextBookmark */; + 6B74B70D1286AEE900262888 /* PBXTextBookmark */ = 6B74B70D1286AEE900262888 /* PBXTextBookmark */; + 6B74B7111286AF1000262888 /* PBXTextBookmark */ = 6B74B7111286AF1000262888 /* PBXTextBookmark */; + 6B74B7151286AF9000262888 /* PBXTextBookmark */ = 6B74B7151286AF9000262888 /* PBXTextBookmark */; + 6B74B7191286AFD100262888 /* PBXTextBookmark */ = 6B74B7191286AFD100262888 /* PBXTextBookmark */; + 6B74B71F1286B09D00262888 /* XCBuildMessageTextBookmark */ = 6B74B71F1286B09D00262888 /* XCBuildMessageTextBookmark */; + 6B74B7201286B09D00262888 /* PBXTextBookmark */ = 6B74B7201286B09D00262888 /* PBXTextBookmark */; + 6B74B7241286B0D900262888 /* PBXTextBookmark */ = 6B74B7241286B0D900262888 /* PBXTextBookmark */; + 6B74B7281286B14600262888 /* PBXTextBookmark */ = 6B74B7281286B14600262888 /* PBXTextBookmark */; + 6B74B72C1286B16F00262888 /* PBXTextBookmark */ = 6B74B72C1286B16F00262888 /* PBXTextBookmark */; + 6B74B7301286B1B300262888 /* PBXTextBookmark */ = 6B74B7301286B1B300262888 /* PBXTextBookmark */; + 6B74B7311286B1B300262888 /* PBXTextBookmark */ = 6B74B7311286B1B300262888 /* PBXTextBookmark */; + 6B74B7321286B1B300262888 /* PBXTextBookmark */ = 6B74B7321286B1B300262888 /* PBXTextBookmark */; + 6B74B7351286B1F900262888 /* PBXTextBookmark */ = 6B74B7351286B1F900262888 /* PBXTextBookmark */; + 6B74B7361286B1F900262888 /* PBXTextBookmark */ = 6B74B7361286B1F900262888 /* PBXTextBookmark */; + 6B74B7371286B1F900262888 /* PBXTextBookmark */ = 6B74B7371286B1F900262888 /* PBXTextBookmark */; + 6B74B7381286B1F900262888 /* PBXTextBookmark */ = 6B74B7381286B1F900262888 /* PBXTextBookmark */; + 6B74B73C1286B22000262888 /* PBXTextBookmark */ = 6B74B73C1286B22000262888 /* PBXTextBookmark */; + 6B74B7401286B7C400262888 /* PBXTextBookmark */ = 6B74B7401286B7C400262888 /* PBXTextBookmark */; + 6B74B7411286B7C400262888 /* PBXTextBookmark */ = 6B74B7411286B7C400262888 /* PBXTextBookmark */; + 6B74B7421286B7C400262888 /* PBXTextBookmark */ = 6B74B7421286B7C400262888 /* PBXTextBookmark */; + 6B74B7441286B8E600262888 /* PBXTextBookmark */ = 6B74B7441286B8E600262888 /* PBXTextBookmark */; + 6B74B7451286B8E600262888 /* PBXTextBookmark */ = 6B74B7451286B8E600262888 /* PBXTextBookmark */; + 6B74B7461286B8E600262888 /* PBXTextBookmark */ = 6B74B7461286B8E600262888 /* PBXTextBookmark */; + 6B74B7471286B8E600262888 /* PBXTextBookmark */ = 6B74B7471286B8E600262888 /* PBXTextBookmark */; + 6B74B74A1286B90100262888 /* PBXTextBookmark */ = 6B74B74A1286B90100262888 /* PBXTextBookmark */; + 6B74B74B1286B90100262888 /* PBXTextBookmark */ = 6B74B74B1286B90100262888 /* PBXTextBookmark */; + 6B74B74C1286B90100262888 /* PBXTextBookmark */ = 6B74B74C1286B90100262888 /* PBXTextBookmark */; + 6B74B74D1286B90100262888 /* PBXTextBookmark */ = 6B74B74D1286B90100262888 /* PBXTextBookmark */; + 6B74B7561286B92300262888 /* PBXTextBookmark */ = 6B74B7561286B92300262888 /* PBXTextBookmark */; + 6B74B7571286B92300262888 /* XCBuildMessageTextBookmark */ = 6B74B7571286B92300262888 /* XCBuildMessageTextBookmark */; + 6B74B7581286B92300262888 /* PBXTextBookmark */ = 6B74B7581286B92300262888 /* PBXTextBookmark */; + 6B74B75F1286BB6900262888 /* PBXTextBookmark */ = 6B74B75F1286BB6900262888 /* PBXTextBookmark */; + 6B74B7601286BB6900262888 /* PBXTextBookmark */ = 6B74B7601286BB6900262888 /* PBXTextBookmark */; + 6B74B7611286BB6900262888 /* PBXTextBookmark */ = 6B74B7611286BB6900262888 /* PBXTextBookmark */; + 6B74B7621286BB6900262888 /* PBXTextBookmark */ = 6B74B7621286BB6900262888 /* PBXTextBookmark */; + 6B74B7631286BB6900262888 /* PBXTextBookmark */ = 6B74B7631286BB6900262888 /* PBXTextBookmark */; + 6B8D565F127ADB0D0077C699 = 6B8D565F127ADB0D0077C699 /* PBXTextBookmark */; + 6B8D566D127ADB7D0077C699 = 6B8D566D127ADB7D0077C699 /* PBXTextBookmark */; + 6B8D566F127ADB7D0077C699 = 6B8D566F127ADB7D0077C699 /* PBXTextBookmark */; + 6B8D56C7127AEC100077C699 = 6B8D56C7127AEC100077C699 /* PBXTextBookmark */; + 6B8D56C8127AEC100077C699 = 6B8D56C8127AEC100077C699 /* PBXTextBookmark */; + 6B8D56C9127AEC100077C699 = 6B8D56C9127AEC100077C699 /* PBXTextBookmark */; + 6B8D56CA127AEC100077C699 = 6B8D56CA127AEC100077C699 /* PBXTextBookmark */; + 6B8D56CB127AEC100077C699 = 6B8D56CB127AEC100077C699 /* PBXTextBookmark */; + 6B8D56CC127AEC100077C699 = 6B8D56CC127AEC100077C699 /* PBXTextBookmark */; + 6B8D56CD127AEC100077C699 = 6B8D56CD127AEC100077C699 /* PBXTextBookmark */; + 6B8D56CE127AEC100077C699 = 6B8D56CE127AEC100077C699 /* PBXTextBookmark */; + 6B8D56CF127AEC100077C699 = 6B8D56CF127AEC100077C699 /* PBXTextBookmark */; + 6B8D56D0127AEC100077C699 = 6B8D56D0127AEC100077C699 /* PBXTextBookmark */; + 6B8D56D2127AEC100077C699 = 6B8D56D2127AEC100077C699 /* PBXTextBookmark */; + 6B8D56D8127AEC580077C699 = 6B8D56D8127AEC580077C699 /* PBXTextBookmark */; + 6B8D56DB127DF2620077C699 = 6B8D56DB127DF2620077C699 /* PBXTextBookmark */; + 6B8D56DC127DF2620077C699 = 6B8D56DC127DF2620077C699 /* PBXTextBookmark */; }; sourceControlManager = 6B8632A90F78115100E2684A /* Source Control */; userBookmarkGroup = 6B8DE6F010A88F0500DF20FB /* PBXBookmarkGroup */; @@ -305,22 +349,22 @@ ignoreCount = 0; lineNumber = 1324; location = Recast; - modificationTime = 310028981.602046; + modificationTime = 310817222.607196; originalNumberOfMultipleMatches = 1; - state = 0; + state = 1; }; 6B1185F41006895B0018F96F /* DetourNode.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 1820}}"; - sepNavSelRange = "{1066, 9}"; - sepNavVisRange = "{0, 1792}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 2210}}"; + sepNavSelRange = "{2206, 0}"; + sepNavVisRange = "{2084, 586}"; }; }; 6B1185F61006896B0018F96F /* DetourNode.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 1794}}"; - sepNavSelRange = "{1470, 0}"; - sepNavVisRange = "{924, 1088}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 1807}}"; + sepNavSelRange = "{1621, 0}"; + sepNavVisRange = "{1443, 559}"; }; }; 6B1185FC10068B040018F96F /* DetourCommon.h */ = { @@ -432,185 +476,25 @@ sepNavVisRange = "{24581, 1610}"; }; }; - 6B1633101268326F0083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 668"; - rLen = 0; - rLoc = 18513; - rType = 0; - vrLen = 1034; - vrLoc = 17469; - }; - 6B1633121268326F0083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; - name = "DetourCommon.h: 185"; - rLen = 0; - rLoc = 4673; - rType = 0; - vrLen = 765; - vrLoc = 4324; - }; - 6B1633141268326F0083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B1185F61006896B0018F96F /* DetourNode.h */; - name = "DetourNode.h: 44"; - rLen = 0; - rLoc = 1470; - rType = 0; - vrLen = 886; - vrLoc = 1012; - }; - 6B163317126832D20083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B1185F41006895B0018F96F /* DetourNode.cpp */; - name = "DetourNode.cpp: 25"; - rLen = 9; - rLoc = 1066; - rType = 0; - vrLen = 1208; - vrLoc = 249; - }; - 6B16357012687A5D0083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; - name = "RecastRegion.cpp: 1054"; - rLen = 0; - rLoc = 25263; - rType = 0; - vrLen = 1143; - vrLoc = 24701; - }; - 6B16358E12687D740083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB788180FC04753003C24DB /* ChunkyTriMesh.h */; - name = "ChunkyTriMesh.h: 46"; - rLen = 26; - rLoc = 1575; - rType = 0; - vrLen = 1115; - vrLoc = 133; - }; - 6B16359012687D740083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; - name = "Sample_TileMesh.cpp: 958"; - rLen = 0; - rLoc = 26618; - rType = 0; - vrLen = 958; - vrLoc = 26138; - }; - 6B16359112687D740083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; - name = "Sample_SoloMeshTiled.cpp: 800"; - rLen = 959; - rLoc = 23991; - rType = 0; - vrLen = 1174; - vrLoc = 24082; - }; - 6B1635B9126884520083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; - name = "DebugDraw.cpp: 197"; - rLen = 0; - rLoc = 5629; - rType = 0; - vrLen = 1323; - vrLoc = 5148; - }; - 6B1635BB126884520083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */; - name = "SampleInterfaces.h: 64"; - rLen = 11; - rLoc = 2197; - rType = 0; - vrLen = 1224; - vrLoc = 1702; - }; - 6B1635C8126885AD0083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */; - name = "ChunkyTriMesh.cpp: 279"; - rLen = 0; - rLoc = 6788; - rType = 0; - vrLen = 937; - vrLoc = 6004; - }; - 6B1635D3126887C80083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; - name = "InputGeom.h: 89"; - rLen = 0; - rLoc = 3499; - rType = 0; - vrLen = 1748; - vrLoc = 1777; - }; - 6B1635D4126887C80083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; - name = "InputGeom.cpp: 337"; - rLen = 0; - rLoc = 8238; - rType = 0; - vrLen = 974; - vrLoc = 7703; - }; - 6B1635E812688D1B0083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 358"; - rLen = 0; - rLoc = 12869; - rType = 0; - vrLen = 883; - vrLoc = 12440; - }; - 6B16360A126891A40083FC15 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B324C64111C5D9A00EBD2FD /* ConvexVolumeTool.h */; - name = "ConvexVolumeTool.h: 43"; - rLen = 0; - rLoc = 1384; - rType = 0; - vrLen = 1504; - vrLoc = 249; - }; - 6B1C8E08121EB4FF0048697F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; - name = "Sample_TileMesh.h: 92"; - rLen = 0; - rLoc = 2493; - rType = 0; - vrLen = 900; - vrLoc = 1998; - }; 6B25B6100FFA62AD004F1BC4 /* Sample.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 1820}}"; - sepNavSelRange = "{2579, 0}"; - sepNavVisRange = "{1824, 1149}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 1794}}"; + sepNavSelRange = "{2249, 1}"; + sepNavVisRange = "{1493, 965}"; }; }; 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 2613}}"; - sepNavSelRange = "{1438, 0}"; - sepNavVisRange = "{950, 826}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 2717}}"; + sepNavSelRange = "{4728, 0}"; + sepNavVisRange = "{4269, 569}"; }; }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 11921}}"; - sepNavSelRange = "{2461, 0}"; - sepNavVisRange = "{1520, 1280}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 11999}}"; + sepNavSelRange = "{4517, 0}"; + sepNavVisRange = "{4260, 637}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; @@ -624,24 +508,24 @@ }; 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1223, 15886}}"; - sepNavSelRange = "{19430, 0}"; - sepNavVisRange = "{19043, 640}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 16172}}"; + sepNavSelRange = "{2988, 0}"; + sepNavVisRange = "{2639, 757}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; 6B324C64111C5D9A00EBD2FD /* ConvexVolumeTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 715}}"; - sepNavSelRange = "{1384, 0}"; - sepNavVisRange = "{207, 1546}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 728}}"; + sepNavSelRange = "{1597, 0}"; + sepNavVisRange = "{979, 804}"; }; }; 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 3471}}"; - sepNavSelRange = "{5809, 0}"; - sepNavVisRange = "{5428, 1197}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 3913}}"; + sepNavSelRange = "{5654, 0}"; + sepNavVisRange = "{5394, 529}"; }; }; 6B42164711806B2F006C347B /* DetourDebugDraw.cpp:362 */ = { @@ -658,10 +542,351 @@ ignoreCount = 0; lineNumber = 362; location = Recast; - modificationTime = 310028983.516233; + modificationTime = 310817201.696615; originalNumberOfMultipleMatches = 1; state = 1; }; + 6B4DE616127F2407001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 543"; + rLen = 8; + rLoc = 14441; + rType = 0; + vrLen = 1012; + vrLoc = 13908; + }; + 6B4DE62E12807542001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 537"; + rLen = 0; + rLoc = 14234; + rType = 0; + vrLen = 1338; + vrLoc = 13908; + }; + 6B4DE62F12807542001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 51"; + rLen = 71; + rLoc = 1797; + rType = 0; + vrLen = 1235; + vrLoc = 1112; + }; + 6B4DE63012807542001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 805"; + rLen = 0; + rLoc = 21598; + rType = 0; + vrLen = 935; + vrLoc = 21001; + }; + 6B4DE63112807542001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; + name = "DetourNavMeshQuery.h: 166"; + rLen = 679; + rLoc = 7509; + rType = 0; + vrLen = 1926; + vrLoc = 6655; + }; + 6B4DE63212807542001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */; + name = "CrowdManager.h: 313"; + rLen = 0; + rLoc = 7714; + rType = 0; + vrLen = 1485; + vrLoc = 6661; + }; + 6B4DE63312807542001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; + name = "DetourDebugDraw.h: 33"; + rLen = 83; + rLoc = 1365; + rType = 0; + vrLen = 1748; + vrLoc = 0; + }; + 6B4DE63412807542001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 324"; + rLen = 0; + rLoc = 8762; + rType = 0; + vrLen = 1076; + vrLoc = 7627; + }; + 6B4DE63512807542001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 571"; + rLen = 0; + rLoc = 12978; + rType = 0; + vrLen = 892; + vrLoc = 12474; + }; + 6B4DE63612807542001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 556"; + rLen = 0; + rLoc = 12709; + rType = 0; + vrLen = 889; + vrLoc = 12477; + }; + 6B4DE64412807587001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 550"; + rLen = 0; + rLoc = 12708; + rType = 0; + vrLen = 906; + vrLoc = 12567; + }; + 6B4DE646128079E0001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 558"; + rLen = 29; + rLoc = 12908; + rType = 0; + vrLen = 936; + vrLoc = 12471; + }; + 6B4DE647128079E0001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 384"; + rLen = 0; + rLoc = 15099; + rType = 0; + vrLen = 1790; + vrLoc = 14074; + }; + 6B4DE648128079E0001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; + name = "DetourNavMeshQuery.h: 182"; + rLen = 50; + rLoc = 8694; + rType = 0; + vrLen = 2063; + vrLoc = 7576; + }; + 6B4DE649128079E0001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185F41006895B0018F96F /* DetourNode.cpp */; + name = "DetourNode.cpp: 73"; + rLen = 0; + rLoc = 2206; + rType = 0; + vrLen = 586; + vrLoc = 2084; + }; + 6B4DE64A128079E0001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185F61006896B0018F96F /* DetourNode.h */; + name = "DetourNode.h: 50"; + rLen = 0; + rLoc = 1621; + rType = 0; + vrLen = 559; + vrLoc = 1443; + }; + 6B4DE64B128079E0001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 2558"; + rLen = 8; + rLoc = 68383; + rType = 0; + vrLen = 552; + vrLoc = 67890; + }; + 6B4DE64C128079E0001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1054"; + rLen = 0; + rLoc = 28267; + rType = 0; + vrLen = 495; + vrLoc = 28027; + }; + 6B4DE651128079F3001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1050"; + rLen = 0; + rLoc = 28236; + rType = 0; + vrLen = 677; + vrLoc = 28024; + }; + 6B4DE65D12807AB6001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 557"; + rLen = 0; + rLoc = 12879; + rType = 0; + vrLen = 1002; + vrLoc = 12405; + }; + 6B4DE65E12807AB6001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + rLen = 0; + rLoc = 1020; + rType = 1; + }; + 6B4DE65F12807AB6001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1036"; + rLen = 0; + rLoc = 27891; + rType = 0; + vrLen = 812; + vrLoc = 27359; + }; + 6B4DE66212807AD9001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1027"; + rLen = 0; + rLoc = 27715; + rType = 0; + vrLen = 812; + vrLoc = 27359; + }; + 6B4DE66512807B09001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1027"; + rLen = 0; + rLoc = 27715; + rType = 0; + vrLen = 861; + vrLoc = 27359; + }; + 6B4DE66612807B39001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1031"; + rLen = 0; + rLoc = 27843; + rType = 0; + vrLen = 461; + vrLoc = 27468; + }; + 6B4DE66712807B39001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + rLen = 0; + rLoc = 460; + rType = 1; + }; + 6B4DE66812807B39001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 927"; + rLen = 0; + rLoc = 20986; + rType = 0; + vrLen = 384; + vrLoc = 21176; + }; + 6B4DE66912807B41001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 914"; + rLen = 0; + rLoc = 20986; + rType = 0; + vrLen = 927; + vrLoc = 20847; + }; + 6B4DE66A12807B41001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; + name = "DetourNavMeshQuery.h: 182"; + rLen = 0; + rLoc = 8696; + rType = 0; + vrLen = 2234; + vrLoc = 7469; + }; + 6B4DE66B12807B41001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1027"; + rLen = 0; + rLoc = 27715; + rType = 0; + vrLen = 861; + vrLoc = 27359; + }; + 6B4DE66C12807B41001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1027"; + rLen = 0; + rLoc = 27715; + rType = 0; + vrLen = 861; + vrLoc = 27359; + }; + 6B4DE67112807C71001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 415"; + rLen = 0; + rLoc = 11165; + rType = 0; + vrLen = 1074; + vrLoc = 10401; + }; + 6B4DE67312807D05001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 546"; + rLen = 0; + rLoc = 12608; + rType = 0; + vrLen = 1014; + vrLoc = 12198; + }; + 6B4DE67412807D05001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + rLen = 0; + rLoc = 831; + rType = 1; + }; + 6B4DE67512807D05001CFDF4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 832"; + rLen = 0; + rLoc = 22260; + rType = 0; + vrLen = 911; + vrLoc = 25853; + }; 6B555DAE100B211D00247EA3 /* imguiRenderGL.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {931, 641}}"; @@ -691,18 +916,1415 @@ sepNavWindowFrame = "{{61, 36}, {1011, 695}}"; }; }; + 6B74B5DC1283104100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 832"; + rLen = 0; + rLoc = 22260; + rType = 0; + vrLen = 996; + vrLoc = 25772; + }; + 6B74B5EA128312A900262888 /* main.cpp:211 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + functionName = "main(int /*argc*/, char** /*argv*/)"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 211; + location = Recast; + modificationTime = 310817201.778767; + originalNumberOfMultipleMatches = 1; + state = 1; + }; + 6B74B5EC128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 946"; + rLen = 0; + rLoc = 26084; + rType = 0; + vrLen = 996; + vrLoc = 25772; + }; + 6B74B5ED128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 31"; + rLen = 0; + rLoc = 1158; + rType = 0; + vrLen = 474; + vrLoc = 980; + }; + 6B74B5EE128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 536"; + rLen = 0; + rLoc = 14217; + rType = 0; + vrLen = 734; + vrLoc = 13910; + }; + 6B74B5EF128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 61"; + rLen = 0; + rLoc = 1741; + rType = 0; + vrLen = 513; + vrLoc = 1527; + }; + 6B74B5F0128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 27"; + rLen = 0; + rLoc = 1112; + rType = 0; + vrLen = 610; + vrLoc = 956; + }; + 6B74B5F1128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; + name = "ConvexVolumeTool.cpp: 232"; + rLen = 0; + rLoc = 5577; + rType = 0; + vrLen = 400; + vrLoc = 5482; + }; + 6B74B5F2128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C64111C5D9A00EBD2FD /* ConvexVolumeTool.h */; + name = "ConvexVolumeTool.h: 32"; + rLen = 0; + rLoc = 1172; + rType = 0; + vrLen = 598; + vrLoc = 1049; + }; + 6B74B5F3128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 131"; + rLen = 0; + rLoc = 3338; + rType = 0; + vrLen = 598; + vrLoc = 3021; + }; + 6B74B5F4128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; + name = "Sample_Debug.h: 7"; + rLen = 0; + rLoc = 269; + rType = 0; + vrLen = 1049; + vrLoc = 0; + }; + 6B74B5F5128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 709"; + rLen = 0; + rLoc = 19162; + rType = 0; + vrLen = 633; + vrLoc = 19049; + }; + 6B74B5F6128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1081"; + rLen = 0; + rLoc = 32852; + rType = 0; + vrLen = 681; + vrLoc = 32693; + }; + 6B74B5F7128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 111"; + rLen = 12; + rLoc = 3125; + rType = 0; + vrLen = 994; + vrLoc = 2824; + }; + 6B74B5F8128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 187"; + rLen = 0; + rLoc = 4732; + rType = 0; + vrLen = 276; + vrLoc = 4556; + }; + 6B74B5F9128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 285"; + rLen = 0; + rLoc = 7734; + rType = 0; + vrLen = 612; + vrLoc = 6937; + }; + 6B74B5FA128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 58"; + rLen = 0; + rLoc = 1724; + rType = 0; + vrLen = 684; + vrLoc = 1550; + }; + 6B74B5FB128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 212"; + rLen = 0; + rLoc = 5203; + rType = 0; + vrLen = 733; + vrLoc = 4772; + }; + 6B74B5FC128312AC00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 212"; + rLen = 0; + rLoc = 5203; + rType = 0; + vrLen = 733; + vrLoc = 4772; + }; + 6B74B60C128312E600262888 /* CrowdTool.cpp:296 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + functionName = "CrowdTool::handleStep()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 296; + location = Recast; + modificationTime = 310817201.786539; + originalNumberOfMultipleMatches = 1; + state = 1; + }; + 6B74B60E128312E900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 187"; + rLen = 0; + rLoc = 4732; + rType = 0; + vrLen = 382; + vrLoc = 4450; + }; + 6B74B60F128312E900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 183"; + rLen = 0; + rLoc = 4517; + rType = 0; + vrLen = 637; + vrLoc = 4260; + }; + 6B74B610128312E900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 77"; + rLen = 0; + rLoc = 2115; + rType = 0; + vrLen = 684; + vrLoc = 1550; + }; + 6B74B611128312E900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 112"; + rLen = 0; + rLoc = 3168; + rType = 0; + vrLen = 1232; + vrLoc = 2783; + }; + 6B74B612128312E900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 273"; + rLen = 0; + rLoc = 7553; + rType = 0; + vrLen = 612; + vrLoc = 6937; + }; + 6B74B613128312E900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 283"; + rLen = 0; + rLoc = 7733; + rType = 0; + vrLen = 612; + vrLoc = 6937; + }; + 6B74B618128313D600262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 283"; + rLen = 0; + rLoc = 7733; + rType = 0; + vrLen = 570; + vrLoc = 7005; + }; + 6B74B622128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 283"; + rLen = 0; + rLoc = 7733; + rType = 0; + vrLen = 609; + vrLoc = 7005; + }; + 6B74B623128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 188"; + rLen = 0; + rLoc = 4728; + rType = 0; + vrLen = 569; + vrLoc = 4269; + }; + 6B74B624128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 69"; + rLen = 1; + rLoc = 2249; + rType = 0; + vrLen = 965; + vrLoc = 1493; + }; + 6B74B625128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 78"; + rLen = 0; + rLoc = 2143; + rType = 0; + vrLen = 697; + vrLoc = 1537; + }; + 6B74B626128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C64111C5D9A00EBD2FD /* ConvexVolumeTool.h */; + name = "ConvexVolumeTool.h: 49"; + rLen = 0; + rLoc = 1597; + rType = 0; + vrLen = 804; + vrLoc = 979; + }; + 6B74B627128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; + name = "ConvexVolumeTool.cpp: 237"; + rLen = 0; + rLoc = 5654; + rType = 0; + vrLen = 529; + vrLoc = 5394; + }; + 6B74B628128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 44"; + rLen = 0; + rLoc = 1546; + rType = 0; + vrLen = 910; + vrLoc = 789; + }; + 6B74B629128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 139"; + rLen = 0; + rLoc = 3327; + rType = 0; + vrLen = 569; + vrLoc = 2831; + }; + 6B74B62A128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 97"; + rLen = 0; + rLoc = 2745; + rType = 0; + vrLen = 953; + vrLoc = 2051; + }; + 6B74B62B128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 323"; + rLen = 0; + rLoc = 8413; + rType = 0; + vrLen = 624; + vrLoc = 8249; + }; + 6B74B62C128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 130"; + rLen = 0; + rLoc = 2988; + rType = 0; + vrLen = 757; + vrLoc = 2639; + }; + 6B74B62D128314A500262888 /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Cannot allocate an object of abstract type 'TileHighlightTool'"; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 1; + rLoc = 227; + rType = 1; + }; + 6B74B62E128314A500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 95"; + rLen = 0; + rLoc = 2414; + rType = 0; + vrLen = 739; + vrLoc = 1996; + }; + 6B74B66412869CE100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 79"; + rLen = 0; + rLoc = 2078; + rType = 0; + vrLen = 852; + vrLoc = 1883; + }; + 6B74B66512869CE100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */; + name = "CrowdManager.h: 144"; + rLen = 0; + rLoc = 3497; + rType = 0; + vrLen = 1121; + vrLoc = 2907; + }; + 6B74B66612869CE100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 542"; + rLen = 0; + rLoc = 12512; + rType = 0; + vrLen = 985; + vrLoc = 12246; + }; + 6B74B66712869CE100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; + name = "DetourNavMeshQuery.h: 189"; + rLen = 29; + rLoc = 8664; + rType = 0; + vrLen = 2073; + vrLoc = 7667; + }; + 6B74B66812869CE100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1029"; + rLen = 0; + rLoc = 27789; + rType = 0; + vrLen = 755; + vrLoc = 27424; + }; + 6B74B66F12869E3000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1029"; + rLen = 0; + rLoc = 27789; + rType = 0; + vrLen = 755; + vrLoc = 27424; + }; + 6B74B67012869E3000262888 /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "'class PathCorridor' has no member named 'optimizePath2'"; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 0; + rLoc = 1299; + rType = 1; + }; + 6B74B67112869E3000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1268"; + rLen = 0; + rLoc = 20986; + rType = 0; + vrLen = 659; + vrLoc = 29463; + }; + 6B74B6831286A39000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */; + name = "CrowdManager.h: 221"; + rLen = 15; + rLoc = 5373; + rType = 0; + vrLen = 645; + vrLoc = 5191; + }; + 6B74B6841286A39000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1287"; + rLen = 0; + rLoc = 20986; + rType = 0; + vrLen = 730; + vrLoc = 29522; + }; + 6B74B6851286A39000262888 /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "'class CrowdManager' has no member named 'optimizePaths'"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 1; + rLoc = 295; + rType = 1; + }; + 6B74B6861286A39000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 288"; + rLen = 0; + rLoc = 7786; + rType = 0; + vrLen = 564; + vrLoc = 7012; + }; + 6B74B68A1286A47800262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 288"; + rLen = 0; + rLoc = 7786; + rType = 0; + vrLen = 560; + vrLoc = 7016; + }; + 6B74B68B1286A47800262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1287"; + rLen = 0; + rLoc = 20986; + rType = 0; + vrLen = 643; + vrLoc = 30497; + }; + 6B74B68C1286A47800262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1287"; + rLen = 0; + rLoc = 20986; + rType = 0; + vrLen = 643; + vrLoc = 30497; + }; + 6B74B68F1286A4DD00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1307"; + rLen = 0; + rLoc = 20986; + rType = 0; + vrLen = 646; + vrLoc = 30512; + }; + 6B74B69C1286A52A00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */; + name = "CrowdManager.h: 221"; + rLen = 15; + rLoc = 5373; + rType = 0; + vrLen = 577; + vrLoc = 5191; + }; + 6B74B69D1286A52A00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1319"; + rLen = 0; + rLoc = 20986; + rType = 0; + vrLen = 664; + vrLoc = 30512; + }; + 6B74B69E1286A52A00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1266"; + rLen = 0; + rLoc = 29651; + rType = 0; + vrLen = 645; + vrLoc = 29509; + }; + 6B74B6A01286A67500262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1311"; + rLen = 0; + rLoc = 30586; + rType = 0; + vrLen = 712; + vrLoc = 30235; + }; + 6B74B6A11286A6AE00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1320"; + rLen = 0; + rLoc = 30793; + rType = 0; + vrLen = 823; + vrLoc = 30235; + }; + 6B74B6A61286A6C300262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1303"; + rLen = 0; + rLoc = 30432; + rType = 0; + vrLen = 901; + vrLoc = 30193; + }; + 6B74B6AA1286A85800262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1308"; + rLen = 0; + rLoc = 30536; + rType = 0; + vrLen = 917; + vrLoc = 30193; + }; + 6B74B6AB1286A85800262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 288"; + rLen = 0; + rLoc = 7786; + rType = 0; + vrLen = 864; + vrLoc = 6760; + }; + 6B74B6AC1286A85800262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 499"; + rLen = 0; + rLoc = 13825; + rType = 0; + vrLen = 1470; + vrLoc = 12774; + }; + 6B74B6B51286A9BD00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 329"; + rLen = 0; + rLoc = 9151; + rType = 0; + vrLen = 887; + vrLoc = 8781; + }; + 6B74B6B61286A9BD00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 144"; + rLen = 0; + rLoc = 5161; + rType = 0; + vrLen = 1546; + vrLoc = 4603; + }; + 6B74B6B71286A9BD00262888 /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Unused variable 'radius'"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 1; + rLoc = 536; + rType = 1; + }; + 6B74B6B81286A9BD00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 510"; + rLen = 0; + rLoc = 14053; + rType = 0; + vrLen = 769; + vrLoc = 12965; + }; + 6B74B6BE1286AA0C00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 510"; + rLen = 0; + rLoc = 14053; + rType = 0; + vrLen = 769; + vrLoc = 12965; + }; + 6B74B6BF1286AA0C00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 902"; + rLen = 0; + rLoc = 24360; + rType = 0; + vrLen = 634; + vrLoc = 24147; + }; + 6B74B6C01286AA0C00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 329"; + rLen = 0; + rLoc = 9151; + rType = 0; + vrLen = 837; + vrLoc = 8781; + }; + 6B74B6C11286AA0C00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 326"; + rLen = 0; + rLoc = 9079; + rType = 0; + vrLen = 831; + vrLoc = 8785; + }; + 6B74B6C51286AA5900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 344"; + rLen = 0; + rLoc = 9815; + rType = 0; + vrLen = 1029; + vrLoc = 9070; + }; + 6B74B6C91286AAA200262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 348"; + rLen = 0; + rLoc = 10015; + rType = 0; + vrLen = 1043; + vrLoc = 9070; + }; + 6B74B6CA1286AAA200262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 510"; + rLen = 0; + rLoc = 14053; + rType = 0; + vrLen = 769; + vrLoc = 12965; + }; + 6B74B6CB1286AAA200262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 500"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 851; + vrLoc = 12704; + }; + 6B74B6CF1286AAF000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 496"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 840; + vrLoc = 12774; + }; + 6B74B6D31286AB3B00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 500"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 846; + vrLoc = 12739; + }; + 6B74B6D71286ABC000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 503"; + rLen = 0; + rLoc = 13825; + rType = 0; + vrLen = 881; + vrLoc = 12739; + }; + 6B74B6D81286ABC000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; + name = "DetourDebugDraw.h: 33"; + rLen = 83; + rLoc = 1365; + rType = 0; + vrLen = 1352; + vrLoc = 396; + }; + 6B74B6D91286ABC000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 80"; + rLen = 9; + rLoc = 2578; + rType = 0; + vrLen = 1110; + vrLoc = 2479; + }; + 6B74B6DA1286ABC000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 321"; + rLen = 0; + rLoc = 8935; + rType = 0; + vrLen = 902; + vrLoc = 8458; + }; + 6B74B6DB1286ABC000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 351"; + rLen = 0; + rLoc = 10027; + rType = 0; + vrLen = 1217; + vrLoc = 9152; + }; + 6B74B6DF1286AC2A00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 351"; + rLen = 0; + rLoc = 10027; + rType = 0; + vrLen = 1219; + vrLoc = 9152; + }; + 6B74B6E01286AC2A00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 503"; + rLen = 0; + rLoc = 13825; + rType = 0; + vrLen = 1049; + vrLoc = 12631; + }; + 6B74B6E11286AC2A00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 500"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 927; + vrLoc = 12551; + }; + 6B74B6E51286AC8200262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 496"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 985; + vrLoc = 12631; + }; + 6B74B6E91286ACC200262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 500"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 976; + vrLoc = 12672; + }; + 6B74B6ED1286AD3800262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 321"; + rLen = 0; + rLoc = 8933; + rType = 0; + vrLen = 993; + vrLoc = 8604; + }; + 6B74B6EE1286AD3800262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 496"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 1005; + vrLoc = 12672; + }; + 6B74B6EF1286AD3800262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 500"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 989; + vrLoc = 12701; + }; + 6B74B6F11286AD5400262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 500"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 989; + vrLoc = 12701; + }; + 6B74B6F41286AD6A00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 496"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 1009; + vrLoc = 12739; + }; + 6B74B6FC1286AE0B00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 134"; + rLen = 157; + rLoc = 4603; + rType = 0; + vrLen = 1887; + vrLoc = 3693; + }; + 6B74B6FD1286AE0B00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 498"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 987; + vrLoc = 12701; + }; + 6B74B6FE1286AE0B00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 498"; + rLen = 0; + rLoc = 13806; + rType = 0; + vrLen = 1054; + vrLoc = 12704; + }; + 6B74B7061286AEBD00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 60"; + rLen = 0; + rLoc = 2030; + rType = 0; + vrLen = 956; + vrLoc = 1526; + }; + 6B74B7071286AEBD00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 321"; + rLen = 0; + rLoc = 8933; + rType = 0; + vrLen = 932; + vrLoc = 8604; + }; + 6B74B7081286AEBD00262888 /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "'radius' was not declared in this scope"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 1; + rLoc = 540; + rType = 1; + }; + 6B74B7091286AEBD00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 517"; + rLen = 0; + rLoc = 14115; + rType = 0; + vrLen = 1144; + vrLoc = 12631; + }; + 6B74B70D1286AEE900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 557"; + rLen = 0; + rLoc = 15443; + rType = 0; + vrLen = 985; + vrLoc = 14447; + }; + 6B74B7111286AF1000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 548"; + rLen = 0; + rLoc = 15443; + rType = 0; + vrLen = 1067; + vrLoc = 14345; + }; + 6B74B7151286AF9000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 536"; + rLen = 0; + rLoc = 14163; + rType = 0; + vrLen = 1225; + vrLoc = 13877; + }; + 6B74B7191286AFD100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 494"; + rLen = 0; + rLoc = 13359; + rType = 0; + vrLen = 1218; + vrLoc = 12577; + }; + 6B74B71F1286B09D00262888 /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Unused variable 'height'"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 1; + rLoc = 507; + rType = 1; + }; + 6B74B7201286B09D00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 343"; + rLen = 0; + rLoc = 9172; + rType = 0; + vrLen = 871; + vrLoc = 8171; + }; + 6B74B7241286B0D900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 345"; + rLen = 0; + rLoc = 9304; + rType = 0; + vrLen = 887; + vrLoc = 8007; + }; + 6B74B7281286B14600262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 323"; + rLen = 0; + rLoc = 8633; + rType = 0; + vrLen = 880; + vrLoc = 7714; + }; + 6B74B72C1286B16F00262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 329"; + rLen = 0; + rLoc = 8802; + rType = 0; + vrLen = 820; + vrLoc = 7780; + }; + 6B74B72E1286B1B000262888 /* CrowdManager.cpp:1313 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + functionName = "CrowdManager::updateTopologyOptimization(const float dt, dtNavMeshQuery* navquery, const dtQueryFilter* filter)"; + hitCount = 1; + ignoreCount = 0; + lineNumber = 1313; + location = Recast; + modificationTime = 310817204.828732; + originalNumberOfMultipleMatches = 1; + state = 1; + }; + 6B74B7301286B1B300262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 319"; + rLen = 0; + rLoc = 8592; + rType = 0; + vrLen = 820; + vrLoc = 7780; + }; + 6B74B7311286B1B300262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1312"; + rLen = 0; + rLoc = 30588; + rType = 0; + vrLen = 752; + vrLoc = 30193; + }; + 6B74B7321286B1B300262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1312"; + rLen = 0; + rLoc = 30588; + rType = 0; + vrLen = 752; + vrLoc = 30193; + }; + 6B74B7351286B1F900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */; + name = "CrowdManager.h: 226"; + rLen = 0; + rLoc = 5467; + rType = 0; + vrLen = 586; + vrLoc = 5189; + }; + 6B74B7361286B1F900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1314"; + rLen = 0; + rLoc = 30626; + rType = 0; + vrLen = 755; + vrLoc = 30193; + }; + 6B74B7371286B1F900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 411"; + rLen = 0; + rLoc = 11541; + rType = 0; + vrLen = 853; + vrLoc = 11381; + }; + 6B74B7381286B1F900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 77"; + rLen = 0; + rLoc = 2328; + rType = 0; + vrLen = 813; + vrLoc = 2036; + }; + 6B74B73C1286B22000262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 77"; + rLen = 0; + rLoc = 2326; + rType = 0; + vrLen = 846; + vrLoc = 2059; + }; + 6B74B7401286B7C400262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 84"; + rLen = 0; + rLoc = 2425; + rType = 0; + vrLen = 912; + vrLoc = 2195; + }; + 6B74B7411286B7C400262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 319"; + rLen = 0; + rLoc = 8592; + rType = 0; + vrLen = 903; + vrLoc = 7715; + }; + 6B74B7421286B7C400262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 521"; + rLen = 0; + rLoc = 14191; + rType = 0; + vrLen = 934; + vrLoc = 12915; + }; + 6B74B7441286B8E600262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 317"; + rLen = 0; + rLoc = 8174; + rType = 0; + vrLen = 766; + vrLoc = 7584; + }; + 6B74B7451286B8E600262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 47"; + rLen = 11; + rLoc = 1457; + rType = 0; + vrLen = 1262; + vrLoc = 0; + }; + 6B74B7461286B8E600262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */; + name = "CrowdManager.h: 251"; + rLen = 0; + rLoc = 5925; + rType = 0; + vrLen = 610; + vrLoc = 5680; + }; + 6B74B7471286B8E600262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1388"; + rLen = 0; + rLoc = 32778; + rType = 0; + vrLen = 1296; + vrLoc = 31907; + }; + 6B74B74A1286B90100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1386"; + rLen = 0; + rLoc = 32640; + rType = 0; + vrLen = 1296; + vrLoc = 31907; + }; + 6B74B74B1286B90100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 52"; + rLen = 0; + rLoc = 1585; + rType = 0; + vrLen = 641; + vrLoc = 1351; + }; + 6B74B74C1286B90100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 311"; + rLen = 0; + rLoc = 8048; + rType = 0; + vrLen = 765; + vrLoc = 7584; + }; + 6B74B74D1286B90100262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 342"; + rLen = 0; + rLoc = 8775; + rType = 0; + vrLen = 806; + vrLoc = 8096; + }; + 6B74B7561286B92300262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 342"; + rLen = 0; + rLoc = 8775; + rType = 0; + vrLen = 806; + vrLoc = 8096; + }; + 6B74B7571286B92300262888 /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Expected `;' before '->' token"; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 1; + rLoc = 1387; + rType = 1; + }; + 6B74B7581286B92300262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1377"; + rLen = 0; + rLoc = 32369; + rType = 0; + vrLen = 1155; + vrLoc = 31987; + }; + 6B74B75F1286BB6900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; + name = "CrowdManager.cpp: 1390"; + rLen = 0; + rLoc = 32809; + rType = 0; + vrLen = 873; + vrLoc = 32331; + }; + 6B74B7601286BB6900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */; + name = "CrowdManager.h: 251"; + rLen = 0; + rLoc = 5925; + rType = 0; + vrLen = 1233; + vrLoc = 7098; + }; + 6B74B7611286BB6900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 48"; + rLen = 15; + rLoc = 1476; + rType = 0; + vrLen = 517; + vrLoc = 1351; + }; + 6B74B7621286BB6900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 342"; + rLen = 0; + rLoc = 8775; + rType = 0; + vrLen = 682; + vrLoc = 8220; + }; + 6B74B7631286BB6900262888 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 627"; + rLen = 0; + rLoc = 16726; + rType = 0; + vrLen = 917; + vrLoc = 16277; + }; 6B8036AC113BAABE005ED67B /* Sample_Debug.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 741}}"; - sepNavSelRange = "{1048, 0}"; - sepNavVisRange = "{0, 1703}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 689}}"; + sepNavSelRange = "{269, 0}"; + sepNavVisRange = "{0, 1049}"; }; }; 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 4745}}"; - sepNavSelRange = "{3296, 15}"; - sepNavVisRange = "{2962, 716}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 5070}}"; + sepNavSelRange = "{3338, 0}"; + sepNavVisRange = "{3021, 598}"; }; }; 6B847774122D220D00ADF63D /* ValueHistory.h */ = { @@ -719,66 +2341,6 @@ sepNavVisRange = "{1337, 1555}"; }; }; - 6B847779122D223D00ADF63D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B555DF6100B273500247EA3 /* stb_truetype.h */; - name = "stb_truetype.h: 660"; - rLen = 0; - rLoc = 27273; - rType = 0; - vrLen = 1094; - vrLoc = 26646; - }; - 6B84778B122D279700ADF63D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B555DAE100B211D00247EA3 /* imguiRenderGL.h */; - name = "imguiRenderGL.h: 18"; - rLen = 0; - rLoc = 923; - rType = 0; - vrLen = 1106; - vrLoc = 0; - }; - 6B8477BB122D297200ADF63D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7A0F7FCBE400459200 /* imgui.h */; - name = "imgui.h: 61"; - rLen = 20; - rLoc = 2208; - rType = 0; - vrLen = 1048; - vrLoc = 1528; - }; - 6B8477E1122D2B9100ADF63D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 32CA4F630368D1EE00C91783 /* Recast_Prefix.pch */; - name = "Recast_Prefix.pch: 8"; - rLen = 0; - rLoc = 143; - rType = 0; - vrLen = 143; - vrLoc = 0; - }; - 6B8477FE122D2E2A00ADF63D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B847776122D221C00ADF63D /* ValueHistory.cpp */; - name = "ValueHistory.cpp: 89"; - rLen = 0; - rLoc = 2028; - rType = 0; - vrLen = 1019; - vrLoc = 1694; - }; - 6B8477FF122D2E2A00ADF63D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B847774122D220D00ADF63D /* ValueHistory.h */; - name = "ValueHistory.h: 33"; - rLen = 0; - rLoc = 587; - rType = 0; - vrLen = 686; - vrLoc = 331; - }; 6B8632970F78114600E2684A /* Recast */ = { isa = PBXExecutable; activeArgIndices = ( @@ -825,47 +2387,7 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 6B8D5565127A98FB0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 181"; - rLen = 0; - rLoc = 4199; - rType = 0; - vrLen = 1204; - vrLoc = 4449; - }; - 6B8D559F127AA3E70077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6C0F7FCBBB00459200 /* imgui.cpp */; - name = "imgui.cpp: 125"; - rLen = 0; - rLoc = 3831; - rType = 0; - vrLen = 1383; - vrLoc = 2959; - }; - 6B8D55A0127AA3E70077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; - name = "imguiRenderGL.cpp: 459"; - rLen = 0; - rLoc = 10776; - rType = 0; - vrLen = 1355; - vrLoc = 9786; - }; - 6B8D55B5127AA5E60077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; - name = "DetourNavMeshQuery.cpp: 1282"; - rLen = 0; - rLoc = 35371; - rType = 0; - vrLen = 1444; - vrLoc = 34213; - }; - 6B8D55CD127AAA360077C699 /* CrowdManager.cpp:1169 */ = { + 6B8D55CD127AAA360077C699 /* CrowdManager.cpp:1197 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -875,289 +2397,14 @@ delayBeforeContinue = 0; fileReference = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; functionName = "CrowdManager::updateMoveRequest(const float dt, dtNavMeshQuery* navquery, const dtQueryFilter* filter)"; - hitCount = 1; + hitCount = 0; ignoreCount = 0; - lineNumber = 1169; + lineNumber = 1197; location = Recast; - modificationTime = 310029010.458691; + modificationTime = 310817201.753503; originalNumberOfMultipleMatches = 1; state = 1; }; - 6B8D55F2127ABAD40077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; - name = "CrowdManager.cpp: 521"; - rLen = 0; - rLoc = 11943; - rType = 0; - vrLen = 1220; - vrLoc = 11524; - }; - 6B8D55F3127ABAD40077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */; - name = "CrowdManager.h: 307"; - rLen = 0; - rLoc = 7186; - rType = 0; - vrLen = 1731; - vrLoc = 6316; - }; - 6B8D5603127ABBD80077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; - name = "CrowdTool.h: 23"; - rLen = 0; - rLoc = 1011; - rType = 0; - vrLen = 1186; - vrLoc = 0; - }; - 6B8D5609127ACF8D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; - name = "CrowdTool.cpp: 183"; - rLen = 0; - rLoc = 4685; - rType = 0; - vrLen = 955; - vrLoc = 4538; - }; - 6B8D560A127ACF8D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 308"; - rLen = 0; - rLoc = 12505; - rType = 0; - vrLen = 1670; - vrLoc = 11452; - }; - 6B8D560B127ACF8D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; - name = "DetourNavMeshQuery.h: 112"; - rLen = 12139; - rLoc = 4625; - rType = 0; - vrLen = 2295; - vrLoc = 15188; - }; - 6B8D560C127ACF8D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8D560D127ACF8D0077C699 /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 171"; - rLen = 0; - rLoc = 6839; - rType = 0; - vrLen = 1854; - vrLoc = 5556; - }; - 6B8D560D127ACF8D0077C699 /* DetourNavMesh.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = DetourNavMesh.h; - path = /Users/memon/Code/tmp/DetourNavMesh.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 5252}}"; - sepNavSelRange = "{2478, 0}"; - sepNavVisRange = "{1977, 1252}"; - }; - }; - 6B8D560E127ACF8D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8D560F127ACF8D0077C699 /* DetourNavMeshQuery.h */; - rLen = 0; - rLoc = 18985; - rType = 0; - }; - 6B8D560F127ACF8D0077C699 /* DetourNavMeshQuery.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = DetourNavMeshQuery.h; - path = /Users/memon/Code/tmp/DetourNavMeshQuery.h; - sourceTree = ""; - }; - 6B8D5610127ACF8D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8D5611127ACF8D0077C699 /* DetourNavMeshQuery.h */; - name = "DetourNavMeshQuery.h: 93"; - rLen = 0; - rLoc = 4349; - rType = 0; - vrLen = 2034; - vrLoc = 3914; - }; - 6B8D5611127ACF8D0077C699 /* DetourNavMeshQuery.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = DetourNavMeshQuery.h; - path = /Users/memon/Code/tmp/DetourNavMeshQuery.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 5252}}"; - sepNavSelRange = "{4349, 0}"; - sepNavVisRange = "{3751, 2237}"; - }; - }; - 6B8D5621127AD44A0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8D5611127ACF8D0077C699 /* DetourNavMeshQuery.h */; - name = "DetourNavMeshQuery.h: 93"; - rLen = 0; - rLoc = 4349; - rType = 0; - vrLen = 2287; - vrLoc = 3751; - }; - 6B8D5622127AD44A0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; - name = "DetourNavMeshQuery.h: 99"; - rLen = 0; - rLoc = 4553; - rType = 0; - vrLen = 2143; - vrLoc = 3380; - }; - 6B8D5623127AD44A0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 308"; - rLen = 0; - rLoc = 12505; - rType = 0; - vrLen = 1671; - vrLoc = 11451; - }; - 6B8D5624127AD44A0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 73"; - rLen = 0; - rLoc = 2697; - rType = 0; - vrLen = 1769; - vrLoc = 1761; - }; - 6B8D5636127AD6CA0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8D560D127ACF8D0077C699 /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 71"; - rLen = 0; - rLoc = 2478; - rType = 0; - vrLen = 1252; - vrLoc = 1977; - }; - 6B8D5637127AD6CA0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 177"; - rLen = 8; - rLoc = 4287; - rType = 0; - vrLen = 934; - vrLoc = 4242; - }; - 6B8D5638127AD6CA0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - rLen = 1; - rLoc = 68; - rType = 1; - }; - 6B8D5639127AD6CA0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 71"; - rLen = 0; - rLoc = 2489; - rType = 0; - vrLen = 1164; - vrLoc = 1977; - }; - 6B8D5640127AD6EC0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 285"; - rLen = 0; - rLoc = 11541; - rType = 0; - vrLen = 1460; - vrLoc = 9639; - }; - 6B8D5641127AD6EC0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 285"; - rLen = 0; - rLoc = 11541; - rType = 0; - vrLen = 1460; - vrLoc = 9639; - }; - 6B8D5649127AD7800077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 71"; - rLen = 0; - rLoc = 2489; - rType = 0; - vrLen = 1185; - vrLoc = 1850; - }; - 6B8D564A127AD7800077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 917"; - rLen = 0; - rLoc = 24845; - rType = 0; - vrLen = 1078; - vrLoc = 24130; - }; - 6B8D564B127AD7800077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 718"; - rLen = 0; - rLoc = 19586; - rType = 0; - vrLen = 744; - vrLoc = 18987; - }; - 6B8D5654127AD9590077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 72"; - rLen = 0; - rLoc = 2545; - rType = 0; - vrLen = 993; - vrLoc = 1850; - }; - 6B8D5655127AD9590077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1094"; - rLen = 0; - rLoc = 29662; - rType = 0; - vrLen = 1152; - vrLoc = 28844; - }; - 6B8D5656127AD9590077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1214"; - rLen = 0; - rLoc = 33113; - rType = 0; - vrLen = 990; - vrLoc = 32105; - }; 6B8D565F127ADB0D0077C699 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; @@ -1168,113 +2415,16 @@ vrLen = 715; vrLoc = 923; }; - 6B8D5660127ADB0D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; - name = "Sample_SoloMeshTiled.cpp: 1104"; - rLen = 6; - rLoc = 33468; - rType = 0; - vrLen = 740; - vrLoc = 33053; - }; - 6B8D5661127ADB0D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 642"; - rLen = 6; - rLoc = 19996; - rType = 0; - vrLen = 728; - vrLoc = 19576; - }; - 6B8D5662127ADB0D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; - name = "Sample_TileMesh.cpp: 710"; - rLen = 0; - rLoc = 19209; - rType = 0; - vrLen = 764; - vrLoc = 18866; - }; - 6B8D5663127ADB0D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 852"; - rLen = 0; - rLoc = 23968; - rType = 0; - vrLen = 817; - vrLoc = 23408; - }; - 6B8D5664127ADB0D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; - name = "DetourNavMeshQuery.cpp: 2157"; - rLen = 0; - rLoc = 59708; - rType = 0; - vrLen = 779; - vrLoc = 58115; - }; - 6B8D5665127ADB0D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 262"; - rLen = 19; - rLoc = 10243; - rType = 0; - vrLen = 1454; - vrLoc = 9785; - }; - 6B8D5666127ADB0D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 911"; - rLen = 19; - rLoc = 24568; - rType = 0; - vrLen = 827; - vrLoc = 24082; - }; - 6B8D5667127ADB0D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; - rLen = 19; - rLoc = 11849; - rType = 0; - }; - 6B8D5668127ADB0D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 424"; - rLen = 0; - rLoc = 11844; - rType = 0; - vrLen = 814; - vrLoc = 11386; - }; 6B8D566D127ADB7D0077C699 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; name = "DetourDebugDraw.cpp: 411"; rLen = 0; - rLoc = 11542; + rLoc = 11541; rType = 0; vrLen = 814; vrLoc = 11386; }; - 6B8D566E127ADB7D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 636"; - rLen = 0; - rLoc = 4199; - rType = 0; - vrLen = 895; - vrLoc = 17266; - }; 6B8D566F127ADB7D0077C699 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B9846EE11E718F800FA177B /* DetourAlloc.cpp */; @@ -1285,56 +2435,6 @@ vrLen = 488; vrLoc = 1021; }; - 6B8D5670127ADB7D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 285"; - rLen = 33; - rLoc = 11379; - rType = 0; - vrLen = 1083; - vrLoc = 11026; - }; - 6B8D5671127ADB7D0077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 246"; - rLen = 0; - rLoc = 9713; - rType = 0; - vrLen = 1112; - vrLoc = 8614; - }; - 6B8D5672127ADBB00077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 203"; - rLen = 0; - rLoc = 7852; - rType = 0; - vrLen = 1222; - vrLoc = 7198; - }; - 6B8D5673127ADBB00077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; - name = "DetourNavMeshQuery.h: 99"; - rLen = 0; - rLoc = 4553; - rType = 0; - vrLen = 933; - vrLoc = 4074; - }; - 6B8D5674127ADBB00077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; - name = "DetourNavMeshQuery.h: 110"; - rLen = 0; - rLoc = 4845; - rType = 0; - vrLen = 2129; - vrLoc = 4074; - }; 6B8D56C7127AEC100077C699 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; @@ -1350,7 +2450,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1089"; rLen = 0; - rLoc = 33013; + rLoc = 33045; rType = 0; vrLen = 769; vrLoc = 32691; @@ -1360,7 +2460,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 719"; rLen = 0; - rLoc = 19430; + rLoc = 19463; rType = 0; vrLen = 640; vrLoc = 19043; @@ -1370,7 +2470,7 @@ fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; name = "CrowdTool.cpp: 257"; rLen = 0; - rLoc = 6739; + rLoc = 7183; rType = 0; vrLen = 868; vrLoc = 6285; @@ -1410,7 +2510,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 1084"; rLen = 18; - rLoc = 29185; + rLoc = 30464; rType = 0; vrLen = 736; vrLoc = 28778; @@ -1420,7 +2520,7 @@ fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */; name = "DetourNavMeshQuery.h: 337"; rLen = 0; - rLoc = 16550; + rLoc = 17195; rType = 0; vrLen = 1215; vrLoc = 15770; @@ -1435,16 +2535,6 @@ vrLen = 539; vrLoc = 980; }; - 6B8D56D1127AEC100077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 749"; - rLen = 0; - rLoc = 20634; - rType = 0; - vrLen = 892; - vrLoc = 20067; - }; 6B8D56D2127AEC100077C699 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; @@ -1455,54 +2545,35 @@ vrLen = 905; vrLoc = 4411; }; - 6B8D56D3127AEC100077C699 /* XCBuildMessageTextBookmark */ = { - isa = PBXTextBookmark; - comments = "No matching function for call to 'dtNavMeshQuery::raycast(unsigned int&, float [3], float [3], const dtQueryFilter*&, float&, float [3], dtPolyRef [32], int*, const int&)'"; - fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; - fallbackIsa = XCBuildMessageTextBookmark; - rLen = 1; - rLoc = 534; - rType = 1; - }; - 6B8D56D4127AEC100077C699 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; - name = "CrowdManager.cpp: 529"; - rLen = 0; - rLoc = 12192; - rType = 0; - vrLen = 710; - vrLoc = 12070; - }; 6B8D56D8127AEC580077C699 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */; name = "CrowdManager.cpp: 529"; rLen = 0; - rLoc = 12192; + rLoc = 12206; rType = 0; vrLen = 710; vrLoc = 12070; }; - 6B8D56D9127AEC580077C699 /* PBXTextBookmark */ = { + 6B8D56DB127DF2620077C699 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 749"; - rLen = 0; - rLoc = 20634; + name = "NavMeshTesterTool.cpp: 543"; + rLen = 8; + rLoc = 14441; rType = 0; - vrLen = 709; - vrLoc = 20250; + vrLen = 853; + vrLoc = 13987; }; - 6B8D56DA127AEC580077C699 /* PBXTextBookmark */ = { + 6B8D56DC127DF2620077C699 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 238"; - rLen = 0; - rLoc = 6218; + name = "NavMeshTesterTool.cpp: 543"; + rLen = 8; + rLoc = 14441; rType = 0; - vrLen = 609; - vrLoc = 5741; + vrLen = 853; + vrLoc = 13987; }; 6B8DE6F010A88F0500DF20FB /* PBXBookmarkGroup */ = { isa = PBXBookmarkGroup; @@ -1513,9 +2584,9 @@ }; 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 15925}}"; - sepNavSelRange = "{15922, 0}"; - sepNavVisRange = "{15121, 783}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 15847}}"; + sepNavSelRange = "{24360, 0}"; + sepNavVisRange = "{24147, 634}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; @@ -1528,9 +2599,9 @@ }; 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 5369}}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 5330}}"; sepNavSelRange = "{15099, 0}"; - sepNavVisRange = "{14287, 1370}"; + sepNavVisRange = "{14074, 1790}"; }; }; 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */ = { @@ -1564,7 +2635,7 @@ ignoreCount = 0; lineNumber = 78; location = Recast; - modificationTime = 310028981.602589; + modificationTime = 310817200.088296; originalNumberOfMultipleMatches = 0; state = 2; }; @@ -1581,39 +2652,9 @@ hitCount = 0; ignoreCount = 0; lineNumber = 131; - modificationTime = 310028981.602769; + modificationTime = 310817222.611796; originalNumberOfMultipleMatches = 1; - state = 0; - }; - 6B920A521225C0AC00D5B5AD /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; - name = "Sample_SoloMeshSimple.h: 34"; - rLen = 20; - rLoc = 1232; - rType = 0; - vrLen = 694; - vrLoc = 1111; - }; - 6B920A6D1225C5DD00D5B5AD /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7910CFE1D500F74F2B /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 26"; - rLen = 30; - rLoc = 1402; - rType = 0; - vrLen = 2149; - vrLoc = 207; - }; - 6B98462E11E6141900FA177B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7B0F7FCBE400459200 /* MeshLoaderObj.h */; - name = "MeshLoaderObj.h: 27"; - rLen = 0; - rLoc = 1045; - rType = 0; - vrLen = 975; - vrLoc = 596; + state = 1; }; 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */ = { uiCtxt = { @@ -1624,9 +2665,9 @@ }; 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 14729}}"; - sepNavSelRange = "{33013, 0}"; - sepNavVisRange = "{32691, 769}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 14924}}"; + sepNavSelRange = "{2078, 0}"; + sepNavVisRange = "{1883, 852}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; @@ -1648,19 +2689,9 @@ uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {931, 910}}"; sepNavSelRange = "{1797, 71}"; - sepNavVisRange = "{968, 1379}"; + sepNavVisRange = "{1112, 1235}"; }; }; - 6B98473011E737D800FA177B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B9846EE11E718F800FA177B /* DetourAlloc.cpp */; - name = "DetourAlloc.cpp: 49"; - rLen = 0; - rLoc = 1491; - rType = 0; - vrLen = 539; - vrLoc = 970; - }; 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {931, 884}}"; @@ -1696,38 +2727,6 @@ sepNavVisRange = "{923, 715}"; }; }; - 6BA6876E1222F02E00730711 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA6876F1222F02E00730711 /* entries */; - name = "entries: 48"; - rLen = 32; - rLoc = 432; - rType = 0; - vrLen = 237; - vrLoc = 272; - }; - 6BA6876F1222F02E00730711 /* entries */ = { - isa = PBXFileReference; - lastKnownFileType = text; - name = entries; - path = /Users/memon/Code/recastnavigation/Recast/Include/.svn/entries; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 1612}}"; - sepNavSelRange = "{432, 32}"; - sepNavVisRange = "{270, 238}"; - }; - }; - 6BA687881222F4DB00730711 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */; - name = "RecastAlloc.cpp: 47"; - rLen = 0; - rLoc = 1524; - rType = 0; - vrLen = 746; - vrLoc = 1107; - }; 6BA687AC1222F7AC00730711 /* Sample_Debug.cpp:137 */ = { isa = PBXFileBreakpoint; actions = ( @@ -1742,171 +2741,37 @@ ignoreCount = 0; lineNumber = 137; location = Recast; - modificationTime = 310028983.554929; + modificationTime = 310817201.716671; originalNumberOfMultipleMatches = 1; state = 1; }; - 6BA687CA1222FA9300730711 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; - name = "Sample_Debug.cpp: 207"; - rLen = 0; - rLoc = 4661; - rType = 0; - vrLen = 797; - vrLoc = 4335; - }; - 6BA7F8EC1227002300C8C47A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF427A121ADCC2008CFCDF /* DetourAssert.h */; - name = "DetourAssert.h: 27"; - rLen = 56; - rLoc = 1209; - rType = 0; - vrLen = 1351; - vrLoc = 0; - }; - 6BA8CECB1255C1A400272A3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA8CECC1255C1A400272A3B /* ProximityGrid.h */; - name = "ProximityGrid.h: 96"; - rLen = 0; - rLoc = 3027; - rType = 0; - vrLen = 901; - vrLoc = 2412; - }; - 6BA8CECC1255C1A400272A3B /* ProximityGrid.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = ProximityGrid.h; - path = /Users/memon/Oldies/Code/AutoNavGen/Backup_09_03_06/ProximityGrid.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 1547}}"; - sepNavSelRange = "{3027, 0}"; - sepNavVisRange = "{2097, 1216}"; - }; - }; - 6BA8CECD1255C1A400272A3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA8CECE1255C1A400272A3B /* ProximityGrid.cpp */; - name = "ProximityGrid.cpp: 28"; - rLen = 92; - rLoc = 1101; - rType = 0; - vrLen = 1300; - vrLoc = 0; - }; - 6BA8CECE1255C1A400272A3B /* ProximityGrid.cpp */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.cpp.cpp; - name = ProximityGrid.cpp; - path = /Users/memon/Oldies/Code/AutoNavGen/Backup_09_03_06/ProximityGrid.cpp; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 1898}}"; - sepNavSelRange = "{1101, 92}"; - sepNavVisRange = "{0, 1415}"; - }; - }; - 6BA8CEEF1255C4B700272A3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B9846ED11E718F800FA177B /* DetourAlloc.h */; - name = "DetourAlloc.h: 33"; - rLen = 0; - rLoc = 1286; - rType = 0; - vrLen = 1361; - vrLoc = 0; - }; - 6BA8CF4A1255D44700272A3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; - name = "OffMeshConnectionTool.h: 32"; - rLen = 27; - rLoc = 1186; - rType = 0; - vrLen = 996; - vrLoc = 711; - }; - 6BA8CF4D1255D44700272A3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; - name = "ConvexVolumeTool.cpp: 246"; - rLen = 0; - rLoc = 5809; - rType = 0; - vrLen = 704; - vrLoc = 5564; - }; - 6BA8CF511255D44700272A3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; - name = "Sample_SoloMeshTiled.h: 72"; - rLen = 25; - rLoc = 2060; - rType = 0; - vrLen = 663; - vrLoc = 1753; - }; - 6BA8CF5B1255D49B00272A3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; - name = "DetourDebugDraw.h: 27"; - rLen = 0; - rLoc = 1096; - rType = 0; - vrLen = 797; - vrLoc = 923; - }; - 6BA8CF951255D97400272A3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; - name = "OffMeshConnectionTool.cpp: 68"; - rLen = 0; - rLoc = 1807; - rType = 0; - vrLen = 855; - vrLoc = 1456; - }; - 6BA8CFBE1255DE0500272A3B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 252"; - rLen = 0; - rLoc = 7249; - rType = 0; - vrLen = 964; - vrLoc = 6814; - }; 6BAF3C571211663A008CFCDF /* CrowdTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 1053}}"; - sepNavSelRange = "{1011, 0}"; - sepNavVisRange = "{0, 1516}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 1170}}"; + sepNavSelRange = "{1476, 15}"; + sepNavVisRange = "{1351, 517}"; }; }; 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 8346}}"; - sepNavSelRange = "{6739, 0}"; - sepNavVisRange = "{6285, 868}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 8281}}"; + sepNavSelRange = "{16726, 0}"; + sepNavVisRange = "{16277, 917}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 5200}}"; - sepNavSelRange = "{16550, 0}"; - sepNavVisRange = "{15770, 1215}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 5265}}"; + sepNavSelRange = "{8664, 29}"; + sepNavVisRange = "{7667, 2073}"; }; }; 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 32500}}"; - sepNavSelRange = "{29185, 18}"; - sepNavVisRange = "{28778, 736}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 33280}}"; + sepNavSelRange = "{27789, 0}"; + sepNavVisRange = "{27424, 755}"; }; }; 6BAF427A121ADCC2008CFCDF /* DetourAssert.h */ = { @@ -1916,26 +2781,6 @@ sepNavVisRange = "{0, 1368}"; }; }; - 6BAF4321121AF998008CFCDF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; - name = "NavMeshTesterTool.h: 35"; - rLen = 0; - rLoc = 1216; - rType = 0; - vrLen = 445; - vrLoc = 980; - }; - 6BAF4421121C25E3008CFCDF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */; - name = "MeshLoaderObj.cpp: 192"; - rLen = 0; - rLoc = 4217; - rType = 0; - vrLen = 550; - vrLoc = 3888; - }; 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {931, 1196}}"; @@ -1950,16 +2795,6 @@ sepNavVisRange = "{637, 1139}"; }; }; - 6BAF4525121D1723008CFCDF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; - name = "Sample_Debug.h: 25"; - rLen = 0; - rLoc = 1048; - rType = 0; - vrLen = 875; - vrLoc = 446; - }; 6BAF4561121D173A008CFCDF /* RecastAssert.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {931, 641}}"; @@ -1967,120 +2802,6 @@ sepNavVisRange = "{0, 1368}"; }; }; - 6BAF46D3121D8FF1008CFCDF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF46D4121D8FF1008CFCDF /* mach_time.h */; - name = "mach_time.h: 45"; - rLen = 0; - rLoc = 1648; - rType = 0; - vrLen = 754; - vrLoc = 1108; - }; - 6BAF46D4121D8FF1008CFCDF /* mach_time.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = mach_time.h; - path = /Developer/SDKs/MacOSX10.5.sdk/usr/include/mach/mach_time.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 741}}"; - sepNavSelRange = "{1648, 0}"; - sepNavVisRange = "{270, 1592}"; - }; - }; - 6BB2EDF91261C75400E350F8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB2EDFA1261C75400E350F8 /* math.h */; - name = "math.h: 532"; - rLen = 0; - rLoc = 21537; - rType = 0; - vrLen = 1128; - vrLoc = 21132; - }; - 6BB2EDFA1261C75400E350F8 /* math.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = math.h; - path = /Developer/SDKs/MacOSX10.5.sdk/usr/include/architecture/i386/math.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {964, 7943}}"; - sepNavSelRange = "{21537, 0}"; - sepNavVisRange = "{20535, 1881}"; - }; - }; - 6BB2EE241261C92300E350F8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; - name = "DebugDraw.h: 22"; - rLen = 0; - rLoc = 965; - rType = 0; - vrLen = 634; - vrLoc = 672; - }; - 6BB2EE261261C92300E350F8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 60"; - rLen = 0; - rLoc = 2030; - rType = 0; - vrLen = 650; - vrLoc = 1689; - }; - 6BB2EE271261C92300E350F8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; - name = "Recast.cpp: 225"; - rLen = 0; - rLoc = 5691; - rType = 0; - vrLen = 700; - vrLoc = 5327; - }; - 6BB2EE361261CEB800E350F8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; - name = "RecastAlloc.h: 51"; - rLen = 71; - rLoc = 1797; - rType = 0; - vrLen = 1378; - vrLoc = 969; - }; - 6BB2EE3F1261D02000E350F8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 752"; - rLen = 0; - rLoc = 20095; - rType = 0; - vrLen = 1374; - vrLoc = 19389; - }; - 6BB2EE661261D48100E350F8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; - name = "Sample.h: 87"; - rLen = 0; - rLoc = 2579; - rType = 0; - vrLen = 551; - vrLoc = 2271; - }; - 6BB2EE691261D48100E350F8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 379"; - rLen = 0; - rLoc = 11552; - rType = 0; - vrLen = 1315; - vrLoc = 10928; - }; 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {931, 4056}}"; @@ -2097,16 +2818,16 @@ }; 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 1313}}"; - sepNavSelRange = "{1207, 0}"; - sepNavVisRange = "{980, 539}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 1521}}"; + sepNavSelRange = "{2745, 0}"; + sepNavVisRange = "{2051, 953}"; }; }; 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 15990}}"; - sepNavSelRange = "{6218, 0}"; - sepNavVisRange = "{5741, 609}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 15951}}"; + sepNavSelRange = "{8413, 0}"; + sepNavVisRange = "{8249, 624}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; @@ -2126,16 +2847,16 @@ }; 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 2678}}"; - sepNavSelRange = "{965, 0}"; - sepNavVisRange = "{0, 1707}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 2652}}"; + sepNavSelRange = "{4603, 157}"; + sepNavVisRange = "{3693, 1887}"; }; }; 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {957, 641}}"; - sepNavSelRange = "{1096, 0}"; - sepNavVisRange = "{0, 1748}"; + sepNavIntBoundsRect = "{{0, 0}, {957, 494}}"; + sepNavSelRange = "{1365, 83}"; + sepNavVisRange = "{396, 1352}"; }; }; 6BB93C7910CFE1D500F74F2B /* RecastDebugDraw.h */ = { @@ -2147,24 +2868,24 @@ }; 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 6773}}"; - sepNavSelRange = "{5629, 0}"; - sepNavVisRange = "{5006, 1645}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 7917}}"; + sepNavSelRange = "{8933, 0}"; + sepNavVisRange = "{8604, 932}"; }; }; 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 6110}}"; - sepNavSelRange = "{11542, 0}"; - sepNavVisRange = "{11386, 814}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 6006}}"; + sepNavSelRange = "{2425, 0}"; + sepNavVisRange = "{2195, 912}"; sepNavWindowFrame = "{{61, 9}, {1214, 722}}"; }; }; 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 8632}}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 8619}}"; sepNavSelRange = "{2030, 0}"; - sepNavVisRange = "{1319, 1315}"; + sepNavVisRange = "{1526, 956}"; }; }; 6BB93CF410CFEC4500F74F2B /* RecastDump.h */ = { @@ -2182,167 +2903,7 @@ sepNavVisRange = "{2368, 1168}"; }; }; - 6BB9C229126F4A9100B97C1C /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; - name = "main.cpp: 82"; - rLen = 0; - rLoc = 2461; - rType = 0; - vrLen = 1213; - vrLoc = 1585; - }; - 6BB9C253126F555F00B97C1C /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B9EFF02122819E200535FF1 /* DetourObstacleAvoidance.h */; - name = "DetourObstacleAvoidance.h: 105"; - rLen = 22; - rLoc = 3711; - rType = 0; - vrLen = 1535; - vrLoc = 3162; - }; - 6BB9C2A2126F623D00B97C1C /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; - name = "Sample.cpp: 45"; - rLen = 0; - rLoc = 1438; - rType = 0; - vrLen = 785; - vrLoc = 987; - }; - 6BB9C2AA126F62C000B97C1C /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B9EFF0812281C3E00535FF1 /* DetourObstacleAvoidance.cpp */; - name = "DetourObstacleAvoidance.cpp: 467"; - rLen = 0; - rLoc = 11554; - rType = 0; - vrLen = 1291; - vrLoc = 10959; - }; - 6BB9C2B5127449CE00B97C1C /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB9C2B6127449CE00B97C1C /* Detour.mk */; - name = "Detour.mk: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 394; - vrLoc = 0; - }; - 6BB9C2B6127449CE00B97C1C /* Detour.mk */ = { - isa = PBXFileReference; - lastKnownFileType = text; - name = Detour.mk; - path = /Users/memon/Code/recastnavigation/RecastDemo/Build/GNUMake/Detour.mk; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 641}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 394}"; - }; - }; - 6BB9C2BD127449CE00B97C1C /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB9C2BE127449CE00B97C1C /* Recast.mk */; - name = "Recast.mk: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 271; - vrLoc = 0; - }; - 6BB9C2BE127449CE00B97C1C /* Recast.mk */ = { - isa = PBXFileReference; - lastKnownFileType = text; - name = Recast.mk; - path = /Users/memon/Code/recastnavigation/RecastDemo/Build/GNUMake/Recast.mk; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 641}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 271}"; - }; - }; - 6BB9C372127A0E5600B97C1C /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BF5F23F1174763B000502A6 /* SlideShow.cpp */; - name = "SlideShow.cpp: 29"; - rLen = 0; - rLoc = 1126; - rType = 0; - vrLen = 1338; - vrLoc = 61; - }; - 6BBB0361124E242E00533229 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BBB0362124E242E00533229 /* Matrix4.h */; - name = "Matrix4.h: 18"; - rLen = 0; - rLoc = 279; - rType = 0; - vrLen = 1004; - vrLoc = 3210; - }; - 6BBB0362124E242E00533229 /* Matrix4.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = Matrix4.h; - path = "/Users/memon/Oldies/Public/Drop Box/sx/ZenBound_iPhone/Matrix4.h"; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 6864}}"; - sepNavSelRange = "{279, 0}"; - sepNavVisRange = "{3028, 1352}"; - }; - }; - 6BBB0363124E242E00533229 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BBB0364124E242E00533229 /* GameModel.cpp */; - name = "GameModel.cpp: 3143"; - rLen = 2; - rLoc = 80242; - rType = 0; - vrLen = 842; - vrLoc = 79866; - }; - 6BBB0364124E242E00533229 /* GameModel.cpp */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.cpp.cpp; - name = GameModel.cpp; - path = "/Users/memon/Oldies/Public/Drop Box/sx/ZenBound_iPhone/GameModel.cpp"; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 43160}}"; - sepNavSelRange = "{80242, 2}"; - sepNavVisRange = "{79608, 1319}"; - }; - }; - 6BBB4C34115B7A3D00CF791D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BBB4C35115B7A3D00CF791D /* string.h */; - name = "string.h: 83"; - rLen = 44; - rLoc = 3369; - rType = 0; - vrLen = 690; - vrLoc = 2803; - }; - 6BBB4C35115B7A3D00CF791D /* string.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = string.h; - path = /Developer/SDKs/MacOSX10.5.sdk/usr/include/string.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 1924}}"; - sepNavSelRange = "{3369, 44}"; - sepNavVisRange = "{2329, 1674}"; - }; - }; - 6BBB4C4C115B7BAD00CF791D /* Sample_TileMesh.cpp:279 */ = { + 6BBB4C4C115B7BAD00CF791D /* Sample_TileMesh.cpp:281 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -2354,24 +2915,24 @@ functionName = "Sample_TileMesh::loadAll(const char* path)"; hitCount = 0; ignoreCount = 0; - lineNumber = 279; + lineNumber = 281; location = Recast; - modificationTime = 310028983.4964229; + modificationTime = 310817201.688729; originalNumberOfMultipleMatches = 1; - state = 0; + state = 1; }; 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 650}}"; - sepNavSelRange = "{1186, 27}"; - sepNavVisRange = "{0, 1707}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 663}}"; + sepNavSelRange = "{1546, 0}"; + sepNavVisRange = "{789, 910}"; }; }; 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 2158}}"; - sepNavSelRange = "{1807, 0}"; - sepNavVisRange = "{1408, 936}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 2470}}"; + sepNavSelRange = "{3327, 0}"; + sepNavVisRange = "{2831, 569}"; }; }; 6BD401FF1224278800995864 /* PerfTimer.h */ = { @@ -2388,77 +2949,7 @@ sepNavVisRange = "{0, 1430}"; }; }; - 6BD402111224336600995864 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BD401FF1224278800995864 /* PerfTimer.h */; - name = "PerfTimer.h: 1"; - rLen = 923; - rLoc = 0; - rType = 0; - vrLen = 1176; - vrLoc = 0; - }; - 6BD402121224336600995864 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BD402001224279400995864 /* PerfTimer.cpp */; - name = "PerfTimer.cpp: 22"; - rLen = 0; - rLoc = 967; - rType = 0; - vrLen = 1174; - vrLoc = 0; - }; - 6BD402611224387200995864 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; - name = "RecastFilter.cpp: 161"; - rLen = 1; - rLoc = 4691; - rType = 0; - vrLen = 648; - vrLoc = 4401; - }; - 6BD402621224387200995864 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; - name = "RecastRasterization.cpp: 349"; - rLen = 0; - rLoc = 9517; - rType = 0; - vrLen = 674; - vrLoc = 9167; - }; - 6BD402811224393000995864 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93CF410CFEC4500F74F2B /* RecastDump.h */; - name = "RecastDump.h: 38"; - rLen = 0; - rLoc = 1619; - rType = 0; - vrLen = 804; - vrLoc = 924; - }; - 6BD4028C1224399300995864 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BF7C13E11119520002B3F46 /* TestCase.h */; - name = "TestCase.h: 73"; - rLen = 0; - rLoc = 1776; - rType = 0; - vrLen = 592; - vrLoc = 1372; - }; - 6BD4029B12243A8000995864 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BF7C13F1111953A002B3F46 /* TestCase.cpp */; - name = "TestCase.cpp: 16"; - rLen = 0; - rLoc = 895; - rType = 0; - vrLen = 1084; - vrLoc = 64; - }; - 6BD403421224642500995864 /* NavMeshTesterTool.cpp:543 */ = { + 6BD403421224642500995864 /* NavMeshTesterTool.cpp:547 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -2470,9 +2961,9 @@ functionName = "NavMeshTesterTool::recalc()"; hitCount = 0; ignoreCount = 0; - lineNumber = 543; + lineNumber = 547; location = Recast; - modificationTime = 310028983.563242; + modificationTime = 310817201.723887; originalNumberOfMultipleMatches = 1; state = 1; }; @@ -2486,30 +2977,20 @@ }; 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 4173}}"; - sepNavSelRange = "{7186, 0}"; - sepNavVisRange = "{6277, 1770}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 4264}}"; + sepNavSelRange = "{5925, 0}"; + sepNavVisRange = "{7098, 1233}"; }; }; 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 19032}}"; - sepNavSelRange = "{12192, 0}"; - sepNavVisRange = "{12070, 710}"; + sepNavIntBoundsRect = "{{0, 0}, {853, 20241}}"; + sepNavSelRange = "{32809, 0}"; + sepNavVisRange = "{32331, 873}"; sepNavWindowFrame = "{{15, 134}, {1120, 639}}"; }; }; - 6BD6681812434B790021A7A4 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B1185FD10068B150018F96F /* DetourCommon.cpp */; - name = "DetourCommon.cpp: 276"; - rLen = 0; - rLoc = 7172; - rType = 0; - vrLen = 739; - vrLoc = 6676; - }; - 6BD66851124350F50021A7A4 /* NavMeshTesterTool.cpp:482 */ = { + 6BD66851124350F50021A7A4 /* NavMeshTesterTool.cpp:486 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -2521,92 +3002,12 @@ functionName = "NavMeshTesterTool::handleUpdate(const float /*dt*/)"; hitCount = 0; ignoreCount = 0; - lineNumber = 482; + lineNumber = 486; location = Recast; - modificationTime = 310028983.582127; + modificationTime = 310817201.740568; originalNumberOfMultipleMatches = 1; state = 1; }; - 6BD66855124350F80021A7A4 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; - name = "RecastArea.cpp: 21"; - rLen = 0; - rLoc = 986; - rType = 0; - vrLen = 1294; - vrLoc = 133; - }; - 6BD668A3124361EB0021A7A4 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; - name = "SampleInterfaces.cpp: 53"; - rLen = 0; - rLoc = 1116; - rType = 0; - vrLen = 811; - vrLoc = 658; - }; - 6BD66930124374D60021A7A4 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BAF4561121D173A008CFCDF /* RecastAssert.h */; - name = "RecastAssert.h: 26"; - rLen = 149; - rLoc = 1133; - rType = 0; - vrLen = 1368; - vrLoc = 0; - }; - 6BD66937124376780021A7A4 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; - name = "RecastMeshDetail.cpp: 1156"; - rLen = 0; - rLoc = 29028; - rType = 0; - vrLen = 1206; - vrLoc = 28499; - }; - 6BD66938124376780021A7A4 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; - name = "DetourNavMeshBuilder.h: 39"; - rLen = 12; - rLoc = 1676; - rType = 0; - vrLen = 2392; - vrLoc = 1321; - }; - 6BD669501243778E0021A7A4 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; - name = "DetourNavMeshBuilder.cpp: 684"; - rLen = 0; - rLoc = 20163; - rType = 0; - vrLen = 645; - vrLoc = 19724; - }; - 6BD669511243778E0021A7A4 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; - name = "RecastDump.cpp: 124"; - rLen = 0; - rLoc = 3140; - rType = 0; - vrLen = 711; - vrLoc = 2714; - }; - 6BD6695C124377D40021A7A4 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; - name = "RecastMesh.cpp: 1159"; - rLen = 0; - rLoc = 30602; - rType = 0; - vrLen = 965; - vrLoc = 30236; - }; 6BF5F23911747606000502A6 /* Filelist.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {931, 1222}}"; @@ -2635,16 +3036,6 @@ sepNavVisRange = "{3, 1396}"; }; }; - 6BF5F27311747CFA000502A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BF5F23911747606000502A6 /* Filelist.cpp */; - name = "Filelist.cpp: 38"; - rLen = 0; - rLoc = 1296; - rType = 0; - vrLen = 620; - vrLoc = 1035; - }; 6BF5F2C511747E9F000502A6 /* stb_image.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {931, 50882}}"; @@ -2652,58 +3043,6 @@ sepNavVisRange = "{107349, 1210}"; }; }; - 6BF5F2E411748884000502A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BF5F23C11747614000502A6 /* Filelist.h */; - name = "Filelist.h: 17"; - rLen = 0; - rLoc = 922; - rType = 0; - vrLen = 1116; - vrLoc = 64; - }; - 6BF5F2E511748884000502A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BF5F2C511747E9F000502A6 /* stb_image.h */; - name = "stb_image.h: 3138"; - rLen = 0; - rLoc = 108151; - rType = 0; - vrLen = 689; - vrLoc = 107791; - }; - 6BF5F2E611748884000502A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BF5F23E1174763B000502A6 /* SlideShow.h */; - name = "SlideShow.h: 46"; - rLen = 0; - rLoc = 1292; - rType = 0; - vrLen = 527; - vrLoc = 920; - }; - 6BF5F2E711748884000502A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BF5F2E811748884000502A6 /* SDL_keysym.h */; - name = "SDL_keysym.h: 55"; - rLen = 11; - rLoc = 1666; - rType = 0; - vrLen = 660; - vrLoc = 1264; - }; - 6BF5F2E811748884000502A6 /* SDL_keysym.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = SDL_keysym.h; - path = /Library/Frameworks/SDL.framework/Versions/A/Headers/SDL_keysym.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 4056}}"; - sepNavSelRange = "{1666, 11}"; - sepNavVisRange = "{913, 1171}"; - }; - }; 6BF7C13E11119520002B3F46 /* TestCase.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {931, 1027}}"; diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index c1ff7ea..737dfca 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -284,14 +284,14 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 59 + 52 51 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 590}, {264, 660}} + {{0, 577}, {264, 622}} PBXTopSmartGroupGIDs @@ -301,14 +301,14 @@ GeometryConfiguration Frame - {{0, 0}, {281, 678}} + {{0, 0}, {281, 640}} GroupTreeTableConfiguration MainColumn 264 RubberWindowFrame - 0 59 1278 719 0 0 1280 778 + 47 97 1200 681 0 0 1280 778 Module PBXSmartGroupTreeModule @@ -326,7 +326,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - NavMeshTesterTool.cpp + CrowdTool.cpp PBXSplitModuleInNavigatorKey Split0 @@ -334,29 +334,46 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - NavMeshTesterTool.cpp + CrowdTool.cpp _historyCapacity 0 bookmark - 6B8D56DA127AEC580077C699 + 6B74B7631286BB6900262888 history 6B8D565F127ADB0D0077C699 - 6B8D566D127ADB7D0077C699 6B8D566F127ADB7D0077C699 6B8D56C7127AEC100077C699 - 6B8D56C8127AEC100077C699 - 6B8D56C9127AEC100077C699 - 6B8D56CA127AEC100077C699 - 6B8D56CB127AEC100077C699 - 6B8D56CC127AEC100077C699 - 6B8D56CD127AEC100077C699 - 6B8D56CE127AEC100077C699 - 6B8D56CF127AEC100077C699 - 6B8D56D0127AEC100077C699 6B8D56D2127AEC100077C699 - 6B8D56D8127AEC580077C699 - 6B8D56D9127AEC580077C699 + 6B4DE62F12807542001CFDF4 + 6B4DE647128079E0001CFDF4 + 6B4DE649128079E0001CFDF4 + 6B4DE64A128079E0001CFDF4 + 6B74B5F3128312AC00262888 + 6B74B5F4128312AC00262888 + 6B74B60F128312E900262888 + 6B74B623128314A500262888 + 6B74B624128314A500262888 + 6B74B626128314A500262888 + 6B74B627128314A500262888 + 6B74B628128314A500262888 + 6B74B629128314A500262888 + 6B74B62A128314A500262888 + 6B74B62B128314A500262888 + 6B74B62C128314A500262888 + 6B74B66412869CE100262888 + 6B74B66712869CE100262888 + 6B74B66F12869E3000262888 + 6B74B6BF1286AA0C00262888 + 6B74B6D81286ABC000262888 + 6B74B6FC1286AE0B00262888 + 6B74B7061286AEBD00262888 + 6B74B7071286AEBD00262888 + 6B74B7401286B7C400262888 + 6B74B75F1286BB6900262888 + 6B74B7601286BB6900262888 + 6B74B7611286BB6900262888 + 6B74B7621286BB6900262888 SplitCount @@ -370,18 +387,18 @@ GeometryConfiguration Frame - {{0, 0}, {992, 434}} + {{0, 0}, {914, 472}} RubberWindowFrame - 0 59 1278 719 0 0 1280 778 + 47 97 1200 681 0 0 1280 778 Module PBXNavigatorGroup Proportion - 434pt + 472pt Proportion - 239pt + 164pt Tabs @@ -395,7 +412,7 @@ GeometryConfiguration Frame - {{10, 27}, {992, -27}} + {{10, 27}, {992, 49}} Module XCDetailModule @@ -411,7 +428,7 @@ GeometryConfiguration Frame - {{10, 27}, {992, 212}} + {{10, 27}, {992, 169}} Module PBXProjectFindModule @@ -449,9 +466,9 @@ GeometryConfiguration Frame - {{10, 27}, {992, 212}} + {{10, 27}, {914, 137}} RubberWindowFrame - 0 59 1278 719 0 0 1280 778 + 47 97 1200 681 0 0 1280 778 Module PBXBuildResultsModule @@ -460,7 +477,7 @@ Proportion - 992pt + 914pt Name @@ -479,11 +496,11 @@ TableOfContents - 6B8D5625127AD44A0077C699 + 6B74B5DD1283104100262888 1CA23ED40692098700951B8B - 6B8D5626127AD44A0077C699 + 6B74B5DE1283104100262888 6B8632A30F78115100E2684A - 6B8D5627127AD44A0077C699 + 6B74B5DF1283104100262888 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -631,14 +648,14 @@ TableOfContents - 6B8D563A127AD6CA0077C699 + 6B74B5FD128312AC00262888 1CCC7628064C1048000F2A68 1CCC7629064C1048000F2A68 - 6B8D563B127AD6CA0077C699 - 6B8D563C127AD6CA0077C699 - 6B8D563D127AD6CA0077C699 - 6B8D563E127AD6CA0077C699 - 6B8D563F127AD6CA0077C699 + 6B74B5FE128312AC00262888 + 6B74B5FF128312AC00262888 + 6B74B600128312AC00262888 + 6B74B601128312AC00262888 + 6B74B602128312AC00262888 ToolbarConfigUserDefaultsMinorVersion 2 @@ -670,13 +687,12 @@ 5 WindowOrderList - 6B8D56D5127AEC100077C699 - 6B8D56D6127AEC100077C699 - 6B8D56D7127AEC100077C699 + 6B74B604128312AC00262888 + 6B74B605128312AC00262888 /Users/memon/Code/recastnavigation/RecastDemo/Build/Xcode/Recast.xcodeproj WindowString - 0 59 1278 719 0 0 1280 778 + 47 97 1200 681 0 0 1280 778 WindowToolsV3 diff --git a/RecastDemo/Include/ConvexVolumeTool.h b/RecastDemo/Include/ConvexVolumeTool.h index bcfb3a3..e338230 100644 --- a/RecastDemo/Include/ConvexVolumeTool.h +++ b/RecastDemo/Include/ConvexVolumeTool.h @@ -45,6 +45,7 @@ public: virtual void reset(); virtual void handleMenu(); virtual void handleClick(const float* s, const float* p, bool shift); + virtual void handleToggle(); virtual void handleStep(); virtual void handleUpdate(const float dt); virtual void handleRender(); diff --git a/RecastDemo/Include/CrowdManager.h b/RecastDemo/Include/CrowdManager.h index 98bd705..faa6423 100644 --- a/RecastDemo/Include/CrowdManager.h +++ b/RecastDemo/Include/CrowdManager.h @@ -138,8 +138,10 @@ public: dtPolyRef* cornerPolys, const int maxCorners, dtNavMeshQuery* navquery, const dtQueryFilter* filter); - void optimizePath(const float* next, const float pathOptimizationRange, - dtNavMeshQuery* navquery, const dtQueryFilter* filter); + void optimizePathVisibility(const float* next, const float pathOptimizationRange, + dtNavMeshQuery* navquery, const dtQueryFilter* filter); + + bool optimizePathTopology(dtNavMeshQuery* navquery, const dtQueryFilter* filter); void movePosition(const float* npos, dtNavMeshQuery* navquery, const dtQueryFilter* filter); void moveTargetPosition(const float* npos, dtNavMeshQuery* navquery, const dtQueryFilter* filter); @@ -216,6 +218,8 @@ struct Agent float collisionQueryRange; float pathOptimizationRange; + float topologyOptTime; + Neighbour neis[AGENT_MAX_NEIGHBOURS]; int nneis; @@ -243,6 +247,8 @@ enum UpdateFlags CROWDMAN_ANTICIPATE_TURNS = 1, CROWDMAN_USE_VO = 2, CROWDMAN_DRUNK = 4, + CROWDMAN_OPTIMIZE_VIS = 8, + CROWDMAN_OPTIMIZE_TOPO = 16, }; @@ -295,6 +301,9 @@ class CrowdManager int getNeighbours(const float* pos, const float height, const float range, const Agent* skip, Neighbour* result, const int maxResult); + void updateTopologyOptimization(const float dt, dtNavMeshQuery* navquery, const dtQueryFilter* filter); + void updateMoveRequest(const float dt, dtNavMeshQuery* navquery, const dtQueryFilter* filter); + public: CrowdManager(); ~CrowdManager(); @@ -307,9 +316,8 @@ public: bool requestMoveTarget(const int idx, dtPolyRef ref, const float* pos); bool adjustMoveTarget(const int idx, dtPolyRef ref, const float* pos); - + int getActiveAgents(Agent** agents, const int maxAgents); - void updateMoveRequest(const float dt, dtNavMeshQuery* navquery, const dtQueryFilter* filter); void update(const float dt, unsigned int flags, dtNavMeshQuery* navquery); const dtQueryFilter* getFilter() const { return &m_filter; } diff --git a/RecastDemo/Include/CrowdTool.h b/RecastDemo/Include/CrowdTool.h index 1f92f3a..1c69f6e 100644 --- a/RecastDemo/Include/CrowdTool.h +++ b/RecastDemo/Include/CrowdTool.h @@ -44,9 +44,13 @@ class CrowdTool : public SampleTool bool m_showVO; bool m_showOpt; bool m_showGrid; + bool m_showNodes; + bool m_showPerfGraph; bool m_expandOptions; bool m_anticipateTurns; + bool m_optimizeVis; + bool m_optimizeTopo; bool m_useVO; bool m_drunkMove; @@ -74,6 +78,7 @@ public: virtual void reset(); virtual void handleMenu(); virtual void handleClick(const float* s, const float* p, bool shift); + virtual void handleToggle(); virtual void handleStep(); virtual void handleUpdate(const float dt); virtual void handleRender(); diff --git a/RecastDemo/Include/NavMeshTesterTool.h b/RecastDemo/Include/NavMeshTesterTool.h index 4051685..51f16f7 100644 --- a/RecastDemo/Include/NavMeshTesterTool.h +++ b/RecastDemo/Include/NavMeshTesterTool.h @@ -93,6 +93,7 @@ public: virtual void reset(); virtual void handleMenu(); virtual void handleClick(const float* s, const float* p, bool shift); + virtual void handleToggle(); virtual void handleStep(); virtual void handleUpdate(const float dt); virtual void handleRender(); diff --git a/RecastDemo/Include/OffMeshConnectionTool.h b/RecastDemo/Include/OffMeshConnectionTool.h index 08bdb16..1b5aefb 100644 --- a/RecastDemo/Include/OffMeshConnectionTool.h +++ b/RecastDemo/Include/OffMeshConnectionTool.h @@ -40,6 +40,7 @@ public: virtual void reset(); virtual void handleMenu(); virtual void handleClick(const float* s, const float* p, bool shift); + virtual void handleToggle(); virtual void handleStep(); virtual void handleUpdate(const float dt); virtual void handleRender(); diff --git a/RecastDemo/Include/Sample.h b/RecastDemo/Include/Sample.h index 8ef7421..fbc44b6 100644 --- a/RecastDemo/Include/Sample.h +++ b/RecastDemo/Include/Sample.h @@ -65,6 +65,7 @@ struct SampleTool virtual void handleClick(const float* s, const float* p, bool shift) = 0; virtual void handleRender() = 0; virtual void handleRenderOverlay(double* proj, double* model, int* view) = 0; + virtual void handleToggle() = 0; virtual void handleStep() = 0; virtual void handleUpdate(const float dt) = 0; }; @@ -108,6 +109,7 @@ public: virtual void handleTools(); virtual void handleDebugMode(); virtual void handleClick(const float* s, const float* p, bool shift); + virtual void handleToggle(); virtual void handleStep(); virtual void handleRender(); virtual void handleRenderOverlay(double* proj, double* model, int* view); diff --git a/RecastDemo/Include/Sample_Debug.h b/RecastDemo/Include/Sample_Debug.h index 1e0042a..5df1ccf 100644 --- a/RecastDemo/Include/Sample_Debug.h +++ b/RecastDemo/Include/Sample_Debug.h @@ -44,7 +44,7 @@ public: virtual void handleTools(); virtual void handleDebugMode(); virtual void handleClick(const float* s, const float* p, bool shift); - virtual void handleStep(); + virtual void handleToggle(); virtual void handleRender(); virtual void handleRenderOverlay(double* proj, double* model, int* view); virtual void handleMeshChanged(class InputGeom* geom); diff --git a/RecastDemo/Source/ConvexVolumeTool.cpp b/RecastDemo/Source/ConvexVolumeTool.cpp index ff6a0c6..00c9e09 100644 --- a/RecastDemo/Source/ConvexVolumeTool.cpp +++ b/RecastDemo/Source/ConvexVolumeTool.cpp @@ -230,6 +230,10 @@ void ConvexVolumeTool::handleClick(const float* /*s*/, const float* p, bool shif } +void ConvexVolumeTool::handleToggle() +{ +} + void ConvexVolumeTool::handleStep() { } diff --git a/RecastDemo/Source/CrowdManager.cpp b/RecastDemo/Source/CrowdManager.cpp index 9fac489..9211d67 100644 --- a/RecastDemo/Source/CrowdManager.cpp +++ b/RecastDemo/Source/CrowdManager.cpp @@ -506,8 +506,8 @@ int PathCorridor::findCorners(float* cornerVerts, unsigned char* cornerFlags, return ncorners; } -void PathCorridor::optimizePath(const float* next, const float pathOptimizationRange, - dtNavMeshQuery* navquery, const dtQueryFilter* filter) +void PathCorridor::optimizePathVisibility(const float* next, const float pathOptimizationRange, + dtNavMeshQuery* navquery, const dtQueryFilter* filter) { dtAssert(m_path); @@ -539,6 +539,31 @@ void PathCorridor::optimizePath(const float* next, const float pathOptimizationR } } +bool PathCorridor::optimizePathTopology(dtNavMeshQuery* navquery, const dtQueryFilter* filter) +{ + dtAssert(m_path); + + if (m_npath < 3) + return false; + + static const int MAX_ITER = 32; + static const int MAX_RES = 32; + + dtPolyRef res[MAX_RES]; + int nres = 0; + navquery->initSlicedFindPath(m_path[0], m_path[m_npath-1], m_pos, m_target, filter); + navquery->updateSlicedFindPath(MAX_ITER); + dtStatus status = navquery->finalizeSlicedFindPathPartial(m_path, m_npath, res, &nres, MAX_RES); + + if (status == DT_SUCCESS && nres > 0) + { + m_npath = mergeCorridor(m_path, m_npath, m_maxPath, res, nres); + return true; + } + + return false; +} + void PathCorridor::movePosition(const float* npos, dtNavMeshQuery* navquery, const dtQueryFilter* filter) { dtAssert(m_path); @@ -876,6 +901,7 @@ int CrowdManager::addAgent(const float* pos, const float radius, const float hei ag->height = height; ag->collisionQueryRange = radius * 8; ag->pathOptimizationRange = radius * 30; + ag->topologyOptTime = 0; ag->nneis = 0; dtVset(ag->dvel, 0,0,0); @@ -901,7 +927,9 @@ int CrowdManager::addAgent(const float* pos, const float radius, const float hei void CrowdManager::removeAgent(const int idx) { if (idx >= 0 && idx < MAX_AGENTS) - memset(&m_agents[idx], 0, sizeof(Agent)); + { + m_agents[idx].active = 0; + } } bool CrowdManager::requestMoveTarget(const int idx, dtPolyRef ref, const float* pos) @@ -1231,6 +1259,76 @@ void CrowdManager::updateMoveRequest(const float dt, dtNavMeshQuery* navquery, c } + + +static int addToOptQueue(Agent* newag, Agent** agents, const int nagents, const int maxAgents) +{ + // Insert neighbour based on greatest time. + int slot = 0; + if (!nagents) + { + slot = nagents; + } + else if (newag->topologyOptTime <= agents[nagents-1]->topologyOptTime) + { + if (nagents >= maxAgents) + return nagents; + slot = nagents; + } + else + { + int i; + for (i = 0; i < nagents; ++i) + if (newag->topologyOptTime >= agents[i]->topologyOptTime) + break; + + const int tgt = i+1; + const int n = dtMin(nagents-i, maxAgents-tgt); + + dtAssert(tgt+n <= maxAgents); + + if (n > 0) + memmove(&agents[tgt], &agents[i], sizeof(Agent*)*n); + slot = i; + } + + agents[slot] = newag; + + return dtMin(nagents+1, maxAgents); +} + +void CrowdManager::updateTopologyOptimization(const float dt, dtNavMeshQuery* navquery, const dtQueryFilter* filter) +{ + Agent* agents[MAX_AGENTS]; + int nagents = getActiveAgents(agents, MAX_AGENTS); + if (!nagents) + return; + + const float OPT_TIME_THR = 0.5f; // seconds + const int OPT_MAX_AGENTS = 1; + + Agent* queue[OPT_MAX_AGENTS]; + int nqueue = 0; + + for (int i = 0; i < nagents; ++i) + { + Agent* ag = agents[i]; + ag->topologyOptTime += dt; + if (ag->topologyOptTime >= OPT_TIME_THR) + { + nqueue = addToOptQueue(ag, queue, nqueue, OPT_MAX_AGENTS); + } + } + + for (int i = 0; i < nqueue; ++i) + { + Agent* ag = queue[i]; + ag->corridor.optimizePathTopology(navquery, filter); + ag->topologyOptTime = 0; + } + +} + void CrowdManager::update(const float dt, unsigned int flags, dtNavMeshQuery* navquery) { m_sampleCount = 0; @@ -1251,6 +1349,10 @@ void CrowdManager::update(const float dt, unsigned int flags, dtNavMeshQuery* na // Update async move request and path finder. updateMoveRequest(dt, navquery, &m_filter); + // Optimize path topology. + if (flags & CROWDMAN_OPTIMIZE_TOPO) + updateTopologyOptimization(dt, navquery, &m_filter); + // Register agents to proximity grid. m_grid.clear(); for (int i = 0; i < nagents; ++i) @@ -1283,12 +1385,12 @@ void CrowdManager::update(const float dt, unsigned int flags, dtNavMeshQuery* na // Check to see if the corner after the next corner is directly visible, // and short cut to there. - if (ag->ncorners > 0) + if ((flags & CROWDMAN_OPTIMIZE_VIS) && ag->ncorners > 0) { const float* target = &ag->cornerVerts[dtMin(1,ag->ncorners-1)*3]; dtVcopy(ag->opts, ag->corridor.getPos()); dtVcopy(ag->opte, target); - ag->corridor.optimizePath(target, ag->pathOptimizationRange, navquery, &m_filter); + ag->corridor.optimizePathVisibility(target, ag->pathOptimizationRange, navquery, &m_filter); } else { diff --git a/RecastDemo/Source/CrowdTool.cpp b/RecastDemo/Source/CrowdTool.cpp index fb990a2..f5ecd73 100644 --- a/RecastDemo/Source/CrowdTool.cpp +++ b/RecastDemo/Source/CrowdTool.cpp @@ -95,7 +95,7 @@ CrowdTool::CrowdTool() : m_oldFlags(0), m_targetRef(0), m_expandDebugDraw(false), - m_showLabels(true), + m_showLabels(false), m_showCorners(false), m_showTargets(false), m_showCollisionSegments(false), @@ -103,8 +103,12 @@ CrowdTool::CrowdTool() : m_showVO(false), m_showOpt(false), m_showGrid(false), + m_showNodes(false), + m_showPerfGraph(false), m_expandOptions(true), m_anticipateTurns(true), + m_optimizeVis(true), + m_optimizeTopo(true), m_useVO(true), m_drunkMove(false), m_run(true), @@ -168,6 +172,10 @@ void CrowdTool::handleMenu() if (m_expandOptions) { imguiIndent(); + if (imguiCheck("Optimize Visibility", m_optimizeVis)) + m_optimizeVis = !m_optimizeVis; + if (imguiCheck("Optimize Topology", m_optimizeTopo)) + m_optimizeTopo = !m_optimizeTopo; if (imguiCheck("Anticipate Turns", m_anticipateTurns)) m_anticipateTurns = !m_anticipateTurns; if (imguiCheck("Use VO", m_useVO)) @@ -199,6 +207,10 @@ void CrowdTool::handleMenu() m_showOpt = !m_showOpt; if (imguiCheck("Show Prox Grid", m_showGrid)) m_showGrid = !m_showGrid; + if (imguiCheck("Show Nodes", m_showNodes)) + m_showNodes = !m_showNodes; + if (imguiCheck("Show Perf Graph", m_showPerfGraph)) + m_showPerfGraph = !m_showPerfGraph; imguiUnindent(); } } @@ -280,6 +292,10 @@ void CrowdTool::handleClick(const float* s, const float* p, bool shift) } void CrowdTool::handleStep() +{ +} + +void CrowdTool::handleToggle() { m_run = !m_run; } @@ -298,6 +314,10 @@ void CrowdTool::handleUpdate(const float dt) flags |= CROWDMAN_USE_VO; if (m_drunkMove) flags |= CROWDMAN_DRUNK; + if (m_optimizeVis) + flags |= CROWDMAN_OPTIMIZE_VIS; + if (m_optimizeTopo) + flags |= CROWDMAN_OPTIMIZE_TOPO; m_crowd.update(dt, flags, m_sample->getNavMeshQuery()); @@ -315,33 +335,76 @@ void CrowdTool::handleRender() dtNavMesh* nmesh = m_sample->getNavMesh(); if (!nmesh) return; + + dtNavMeshQuery* navquery = m_sample->getNavMeshQuery(); + if (m_showNodes) + { + if (navquery) + duDebugDrawNavMeshNodes(&dd, *navquery); + } + + dd.depthMask(false); + + // Draw paths + if (m_showPath) + { + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + + const dtPolyRef* path = ag->corridor.getPath(); + const int npath = ag->corridor.getPathCount(); + for (int i = 0; i < npath; ++i) + duDebugDrawNavMeshPoly(&dd, *nmesh, path[i], duRGBA(0,0,0,32)); + } + } + if (m_targetRef) - duDebugDrawCross(&dd, m_targetPos[0],m_targetPos[1]+0.1f,m_targetPos[2], s, duRGBA(0,0,0,128), 2.0f); - - + duDebugDrawCross(&dd, m_targetPos[0],m_targetPos[1]+0.1f,m_targetPos[2], s, duRGBA(255,255,255,192), 2.0f); + + // Occupancy grid. + if (m_showGrid) + { + float gridy = -FLT_MAX; + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + const float* pos = ag->corridor.getPos(); + gridy = dtMax(gridy, pos[1]); + } + gridy += 1.0f; + + dd.begin(DU_DRAW_QUADS); + const ProximityGrid* grid = m_crowd.getGrid(); + const int* bounds = grid->getBounds(); + const float cs = grid->getCellSize(); + for (int y = bounds[1]; y <= bounds[3]; ++y) + { + for (int x = bounds[0]; x <= bounds[2]; ++x) + { + const int count = grid->getItemCountAt(x,y); + if (!count) continue; + unsigned int col = duRGBA(128,0,0,dtMin(count*40,255)); + dd.vertex(x*cs, gridy, y*cs, col); + dd.vertex(x*cs, gridy, y*cs+cs, col); + dd.vertex(x*cs+cs, gridy, y*cs+cs, col); + dd.vertex(x*cs+cs, gridy, y*cs, col); + } + } + dd.end(); + } + + // Trail for (int i = 0; i < m_crowd.getAgentCount(); ++i) { const Agent* ag = m_crowd.getAgent(i); if (!ag->active) continue; - const float height = ag->height; - const float radius = ag->radius; const float* pos = ag->npos; - const float* target = ag->corridor.getTarget(); - const float* vel = ag->vel; - const float* dvel = ag->dvel; - - dd.depthMask(false); - - if (m_showPath) - { - const dtPolyRef* path = ag->corridor.getPath(); - const int npath = ag->corridor.getPathCount(); - for (int i = 0; i < npath; ++i) - duDebugDrawNavMeshPoly(&dd, *nmesh, path[i], duRGBA(0,0,0,64)); - } - + dd.begin(DU_DRAW_LINES,3.0f); float prev[3], preva = 1; dtVcopy(prev, pos); @@ -356,13 +419,18 @@ void CrowdTool::handleRender() dtVcopy(prev, v); } dd.end(); - - if (m_showTargets) - { - duDebugDrawArc(&dd, pos[0], pos[1], pos[2], target[0], target[1], target[2], - 0.25f, 0, 0.4f, duRGBA(0,0,0,128), 1.0f); - } + } + + // Corners & co + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + + const float radius = ag->radius; + const float* pos = ag->npos; + if (m_showCorners) { if (ag->ncorners) @@ -372,32 +440,32 @@ void CrowdTool::handleRender() { const float* va = j == 0 ? pos : &ag->cornerVerts[(j-1)*3]; const float* vb = &ag->cornerVerts[j*3]; - dd.vertex(va[0],va[1]+radius,va[2], duRGBA(128,0,0,64)); - dd.vertex(vb[0],vb[1]+radius,vb[2], duRGBA(128,0,0,64)); + dd.vertex(va[0],va[1]+radius,va[2], duRGBA(128,0,0,192)); + dd.vertex(vb[0],vb[1]+radius,vb[2], duRGBA(128,0,0,192)); } dd.end(); - + if (m_anticipateTurns) { -/* float dvel[3], pos[3]; - calcSmoothSteerDirection(ag->pos, ag->cornerVerts, ag->ncorners, dvel); - pos[0] = ag->pos[0] + dvel[0]; - pos[1] = ag->pos[1] + dvel[1]; - pos[2] = ag->pos[2] + dvel[2]; - - const float off = ag->radius+0.1f; - const float* tgt = &ag->cornerVerts[0]; - const float y = ag->pos[1]+off; - - dd.begin(DU_DRAW_LINES, 2.0f); - - dd.vertex(ag->pos[0],y,ag->pos[2], duRGBA(255,0,0,192)); - dd.vertex(pos[0],y,pos[2], duRGBA(255,0,0,192)); - - dd.vertex(pos[0],y,pos[2], duRGBA(255,0,0,192)); - dd.vertex(tgt[0],y,tgt[2], duRGBA(255,0,0,192)); - - dd.end();*/ + /* float dvel[3], pos[3]; + calcSmoothSteerDirection(ag->pos, ag->cornerVerts, ag->ncorners, dvel); + pos[0] = ag->pos[0] + dvel[0]; + pos[1] = ag->pos[1] + dvel[1]; + pos[2] = ag->pos[2] + dvel[2]; + + const float off = ag->radius+0.1f; + const float* tgt = &ag->cornerVerts[0]; + const float y = ag->pos[1]+off; + + dd.begin(DU_DRAW_LINES, 2.0f); + + dd.vertex(ag->pos[0],y,ag->pos[2], duRGBA(255,0,0,192)); + dd.vertex(pos[0],y,pos[2], duRGBA(255,0,0,192)); + + dd.vertex(pos[0],y,pos[2], duRGBA(255,0,0,192)); + dd.vertex(tgt[0],y,tgt[2], duRGBA(255,0,0,192)); + + dd.end();*/ } } } @@ -408,7 +476,7 @@ void CrowdTool::handleRender() duDebugDrawCross(&dd, center[0],center[1]+radius,center[2], 0.2f, duRGBA(192,0,128,255), 2.0f); duDebugDrawCircle(&dd, center[0],center[1]+radius,center[2], ag->collisionQueryRange, duRGBA(192,0,128,128), 2.0f); - + dd.begin(DU_DRAW_LINES, 3.0f); for (int j = 0; j < ag->boundary.getSegmentCount(); ++j) { @@ -421,7 +489,7 @@ void CrowdTool::handleRender() } dd.end(); } - + if (m_showOpt) { dd.begin(DU_DRAW_LINES, 2.0f); @@ -429,6 +497,48 @@ void CrowdTool::handleRender() dd.vertex(ag->opte[0],ag->opte[1]+0.3f,ag->opte[2], duRGBA(0,128,0,192)); dd.end(); } + } + + // Agent cylinders. + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + + const float radius = ag->radius; + const float* pos = ag->npos; + + duDebugDrawCircle(&dd, pos[0], pos[1], pos[2], radius, duRGBA(0,0,0,32), 2.0f); + } + + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + + const float height = ag->height; + const float radius = ag->radius; + const float* pos = ag->npos; + + duDebugDrawCylinder(&dd, pos[0]-radius, pos[1]+radius*0.1f, pos[2]-radius, + pos[0]+radius, pos[1]+height, pos[2]+radius, + duRGBA(220,220,220,128)); + } + + + // Velocity stuff. + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + + const float radius = ag->radius; + const float height = ag->height; + const float* pos = ag->npos; + const float* vel = ag->vel; + const float* dvel = ag->dvel; + + duDebugDrawCircle(&dd, pos[0], pos[1]+height, pos[2], radius, duRGBA(220,220,220,192), 2.0f); if (m_showVO) { @@ -458,138 +568,31 @@ void CrowdTool::handleRender() } duDebugDrawArrow(&dd, pos[0],pos[1]+height,pos[2], - pos[0]+vel[0],pos[1]+height+vel[1],pos[2]+vel[2], - 0.0f, 0.4f, duRGBA(0,0,0,192), 2.0f); - - duDebugDrawArrow(&dd, pos[0],pos[1]+height-0.1f,pos[2], - pos[0]+dvel[0],pos[1]+height-0.1f+dvel[1],pos[2]+dvel[2], + pos[0]+dvel[0],pos[1]+height+dvel[1],pos[2]+dvel[2], 0.0f, 0.4f, duRGBA(0,192,255,192), 1.0f); - duDebugDrawCylinderWire(&dd, pos[0]-radius, pos[1]+radius*0.1f, pos[2]-radius, - pos[0]+radius, pos[1]+height, pos[2]+radius, - duRGBA(0,192,255,255), 3.0f); + duDebugDrawArrow(&dd, pos[0],pos[1]+height,pos[2], + pos[0]+vel[0],pos[1]+height+vel[1],pos[2]+vel[2], + 0.0f, 0.4f, duRGBA(0,0,0,192), 2.0f); + } + + // Targets + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; - dd.depthMask(true); - } - - if (m_showGrid) - { - float gridy = -FLT_MAX; - for (int i = 0; i < m_crowd.getAgentCount(); ++i) + const float* pos = ag->npos; + const float* target = ag->corridor.getTarget(); + + if (m_showTargets) { - const Agent* ag = m_crowd.getAgent(i); - if (!ag->active) continue; - const float* pos = ag->corridor.getPos(); - gridy = dtMax(gridy, pos[1]); + duDebugDrawArc(&dd, pos[0], pos[1], pos[2], target[0], target[1], target[2], + 0.25f, 0, 0.4f, duRGBA(0,0,0,128), 1.0f); } - gridy += 1.0f; - - dd.depthMask(false); - dd.begin(DU_DRAW_QUADS); - const ProximityGrid* grid = m_crowd.getGrid(); - const int* bounds = grid->getBounds(); - const float cs = grid->getCellSize(); - for (int y = bounds[1]; y <= bounds[3]; ++y) - { - for (int x = bounds[0]; x <= bounds[2]; ++x) - { - const int count = grid->getItemCountAt(x,y); - if (!count) continue; - unsigned int col = duRGBA(128,0,0,dtMin(count*40,255)); - dd.vertex(x*cs, gridy, y*cs, col); - dd.vertex(x*cs, gridy, y*cs+cs, col); - dd.vertex(x*cs+cs, gridy, y*cs+cs, col); - dd.vertex(x*cs+cs, gridy, y*cs, col); - } - } - dd.end(); - dd.depthMask(true); - } - - -/* - for (int i = 0; i < m_form.npolys; ++i) - { - duDebugDrawNavMeshPoly(&dd, *nmesh, m_form.polys[i], duRGBA(255,255,255,32)); - } - - dd.depthMask(false); - - dd.begin(DU_DRAW_POINTS, 4.0f); - for (int i = 0; i < m_form.nsegs; ++i) - { - const FormationSeg* seg = &m_form.segs[i]; - for (int j = 0; j < seg->nints-1; ++j) - { - if (seg->ints[j].inside == 0) continue; - const float u0 = seg->ints[j].u; - const float u1 = seg->ints[j+1].u; - float ia[3], ib[3]; - dtVlerp(ia, seg->p,seg->q, u0); - dtVlerp(ib, seg->p,seg->q, u1); - dd.vertex(ia,duRGBA(128,0,0,192)); - dd.vertex(ib,duRGBA(128,0,0,192)); - } - } - dd.end(); - - dd.begin(DU_DRAW_LINES, 2.0f); - for (int i = 0; i < m_form.nsegs; ++i) - { - const FormationSeg* seg = &m_form.segs[i]; - dd.vertex(seg->p,duRGBA(255,255,255,128)); - dd.vertex(seg->q,duRGBA(255,255,255,128)); - for (int j = 0; j < seg->nints-1; ++j) - { - if (seg->ints[j].inside == 0) continue; - const float u0 = seg->ints[j].u; - const float u1 = seg->ints[j+1].u; - float ia[3], ib[3]; - dtVlerp(ia, seg->p,seg->q, u0); - dtVlerp(ib, seg->p,seg->q, u1); - dd.vertex(ia,duRGBA(128,0,0,192)); - dd.vertex(ib,duRGBA(128,0,0,192)); - } - } - dd.end(); - - { - const float r = m_sample->getAgentRadius(); - dd.begin(DU_DRAW_LINES, 2.0f); - for (int i = 0; i < m_form.nsegs; ++i) - { - const FormationSeg* seg = &m_form.segs[i]; - dd.vertex(seg->p,duRGBA(255,255,255,128)); - dd.vertex(seg->q,duRGBA(255,255,255,128)); - for (int j = 0; j < seg->nints-1; ++j) - { - if (seg->ints[j].inside == 0) continue; - const float u0 = seg->ints[j].u; - const float u1 = seg->ints[j+1].u; - float ia[3], ib[3]; - dtVlerp(ia, seg->p,seg->q, u0); - dtVlerp(ib, seg->p,seg->q, u1); - - const float spacing = r*2.5f; - float delta[3]; - dtVsub(delta, ib,ia); - float d = dtVlen(delta); - int np = (int)floorf(d/spacing); - for (int k = 0; k < np; ++k) - { - float pos[3]; - dtVmad(pos, ia, delta, (float)(k+0.5f)/(float)np); - dd.vertex(pos[0],pos[1]-1,pos[2],duRGBA(128,0,0,192)); - dd.vertex(pos[0],pos[1]+2,pos[2],duRGBA(128,0,0,192)); - } - } - } - dd.end(); } dd.depthMask(true); -*/ - } void CrowdTool::handleRenderOverlay(double* proj, double* model, int* view) @@ -622,15 +625,18 @@ void CrowdTool::handleRenderOverlay(double* proj, double* model, int* view) } } - GraphParams gp; - gp.setRect(300, 10, 500, 200, 8); - gp.setValueRange(0.0f, 2.0f, 4, "ms"); + if (m_showPerfGraph) + { + GraphParams gp; + gp.setRect(300, 10, 500, 200, 8); + gp.setValueRange(0.0f, 2.0f, 4, "ms"); - drawGraphBackground(&gp); - drawGraph(&gp, &m_crowdRvoTime, 0, "RVO Sampling", duRGBA(255,0,128,255)); - drawGraph(&gp, &m_crowdTotalTime, 1, "Total", duRGBA(128,255,0,255)); - - gp.setRect(300, 10, 500, 50, 8); - gp.setValueRange(0.0f, 2000.0f, 1, "0"); - drawGraph(&gp, &m_crowdSampleCount, 0, "Sample Count", duRGBA(255,255,255,255)); + drawGraphBackground(&gp); + drawGraph(&gp, &m_crowdRvoTime, 0, "RVO Sampling", duRGBA(255,0,128,255)); + drawGraph(&gp, &m_crowdTotalTime, 1, "Total", duRGBA(128,255,0,255)); + + gp.setRect(300, 10, 500, 50, 8); + gp.setValueRange(0.0f, 2000.0f, 1, "0"); + drawGraph(&gp, &m_crowdSampleCount, 0, "Sample Count", duRGBA(255,255,255,255)); + } } diff --git a/RecastDemo/Source/NavMeshTesterTool.cpp b/RecastDemo/Source/NavMeshTesterTool.cpp index 5056293..38b06e4 100644 --- a/RecastDemo/Source/NavMeshTesterTool.cpp +++ b/RecastDemo/Source/NavMeshTesterTool.cpp @@ -321,6 +321,10 @@ void NavMeshTesterTool::handleClick(const float* /*s*/, const float* p, bool shi } void NavMeshTesterTool::handleStep() +{ +} + +void NavMeshTesterTool::handleToggle() { // TODO: merge separate to a path iterator. Use same code in recalc() too. if (m_toolMode != TOOLMODE_PATHFIND_FOLLOW) diff --git a/RecastDemo/Source/OffMeshConnectionTool.cpp b/RecastDemo/Source/OffMeshConnectionTool.cpp index a93175d..3af941d 100644 --- a/RecastDemo/Source/OffMeshConnectionTool.cpp +++ b/RecastDemo/Source/OffMeshConnectionTool.cpp @@ -132,6 +132,10 @@ void OffMeshConnectionTool::handleClick(const float* /*s*/, const float* p, bool } +void OffMeshConnectionTool::handleToggle() +{ +} + void OffMeshConnectionTool::handleStep() { } diff --git a/RecastDemo/Source/Sample.cpp b/RecastDemo/Source/Sample.cpp index 7a5ebc6..a082289 100644 --- a/RecastDemo/Source/Sample.cpp +++ b/RecastDemo/Source/Sample.cpp @@ -176,6 +176,12 @@ void Sample::handleClick(const float* s, const float* p, bool shift) m_tool->handleClick(s, p, shift); } +void Sample::handleToggle() +{ + if (m_tool) + m_tool->handleToggle(); +} + void Sample::handleStep() { if (m_tool) diff --git a/RecastDemo/Source/Sample_Debug.cpp b/RecastDemo/Source/Sample_Debug.cpp index ba8dd18..502b113 100644 --- a/RecastDemo/Source/Sample_Debug.cpp +++ b/RecastDemo/Source/Sample_Debug.cpp @@ -357,10 +357,10 @@ void Sample_Debug::handleClick(const float* s, const float* p, bool shift) m_tool->handleClick(s, p, shift); } -void Sample_Debug::handleStep() +void Sample_Debug::handleToggle() { if (m_tool) - m_tool->handleStep(); + m_tool->handleToggle(); } bool Sample_Debug::handleBuild() diff --git a/RecastDemo/Source/Sample_SoloMeshTiled.cpp b/RecastDemo/Source/Sample_SoloMeshTiled.cpp index 755798e..15b0244 100644 --- a/RecastDemo/Source/Sample_SoloMeshTiled.cpp +++ b/RecastDemo/Source/Sample_SoloMeshTiled.cpp @@ -86,8 +86,10 @@ public: m_sample->setHighlightedTile(m_hitPos); } + virtual void handleToggle() {} + virtual void handleStep() {} - + virtual void handleUpdate(const float /*dt*/) {} virtual void handleRender() diff --git a/RecastDemo/Source/Sample_TileMesh.cpp b/RecastDemo/Source/Sample_TileMesh.cpp index 3a21e3e..9c6cde7 100644 --- a/RecastDemo/Source/Sample_TileMesh.cpp +++ b/RecastDemo/Source/Sample_TileMesh.cpp @@ -125,6 +125,8 @@ public: } } + virtual void handleToggle() {} + virtual void handleStep() {} virtual void handleUpdate(const float /*dt*/) {} diff --git a/RecastDemo/Source/main.cpp b/RecastDemo/Source/main.cpp index c97e3a3..883d600 100644 --- a/RecastDemo/Source/main.cpp +++ b/RecastDemo/Source/main.cpp @@ -204,14 +204,19 @@ int main(int /*argc*/, char** /*argv*/) else if (event.key.keysym.sym == SDLK_SPACE) { if (sample) - sample->handleStep(); + sample->handleToggle(); } else if (event.key.keysym.sym == SDLK_1) + { + if (sample) + sample->handleStep(); + } + else if (event.key.keysym.sym == SDLK_9) { if (geom) geom->save("geomset.txt"); } - else if (event.key.keysym.sym == SDLK_2) + else if (event.key.keysym.sym == SDLK_0) { delete geom; geom = new InputGeom;