diff --git a/DebugUtils/Include/DebugDraw.h b/DebugUtils/Include/DebugDraw.h index 6114ba4..712c3f9 100644 --- a/DebugUtils/Include/DebugDraw.h +++ b/DebugUtils/Include/DebugDraw.h @@ -83,11 +83,35 @@ inline unsigned int duMultCol(const unsigned int col, const unsigned int d) return duRGBA((r*d) >> 8, (g*d) >> 8, (b*d) >> 8, a); } -inline unsigned int duDarkenColor(unsigned int col) +inline unsigned int duDarkenCol(unsigned int col) { return ((col >> 1) & 0x007f7f7f) | (col & 0xff000000); } +inline unsigned int duLerpCol(unsigned int ca, unsigned int cb, unsigned int u) +{ + const unsigned int ra = ca & 0xff; + const unsigned int ga = (ca >> 8) & 0xff; + const unsigned int ba = (ca >> 16) & 0xff; + const unsigned int aa = (ca >> 24) & 0xff; + const unsigned int rb = cb & 0xff; + const unsigned int gb = (cb >> 8) & 0xff; + const unsigned int bb = (cb >> 16) & 0xff; + const unsigned int ab = (cb >> 24) & 0xff; + + unsigned int r = (ra*(255-u) + rb*u)/255; + unsigned int g = (ga*(255-u) + gb*u)/255; + unsigned int b = (ba*(255-u) + bb*u)/255; + unsigned int a = (aa*(255-u) + ab*u)/255; + return duRGBA(r,g,b,a); +} + +inline unsigned int duTransCol(unsigned int c, unsigned int a) +{ + return (a<<24) | (c & 0x00ffffff); +} + + void duCalcBoxColors(unsigned int* colors, unsigned int colTop, unsigned int colSide); void duDebugDrawCylinderWire(struct duDebugDraw* dd, float minx, float miny, float minz, @@ -100,6 +124,10 @@ void duDebugDrawArc(struct duDebugDraw* dd, const float x0, const float y0, cons const float x1, const float y1, const float z1, const float h, const float as0, const float as1, unsigned int col, const float lineWidth); +void duDebugDrawArrow(struct duDebugDraw* dd, const float x0, const float y0, const float z0, + const float x1, const float y1, const float z1, + const float as0, const float as1, unsigned int col, const float lineWidth); + void duDebugDrawCircle(struct duDebugDraw* dd, const float x, const float y, const float z, const float r, unsigned int col, const float lineWidth); @@ -128,6 +156,10 @@ void duAppendArc(struct duDebugDraw* dd, const float x0, const float y0, const f const float x1, const float y1, const float z1, const float h, const float as0, const float as1, unsigned int col); +void duAppendArrow(struct duDebugDraw* dd, const float x0, const float y0, const float z0, + const float x1, const float y1, const float z1, + const float as0, const float as1, unsigned int col); + void duAppendCircle(struct duDebugDraw* dd, const float x, const float y, const float z, const float r, unsigned int col); diff --git a/DebugUtils/Source/DebugDraw.cpp b/DebugUtils/Source/DebugDraw.cpp index 6cad530..070d797 100644 --- a/DebugUtils/Source/DebugDraw.cpp +++ b/DebugUtils/Source/DebugDraw.cpp @@ -94,6 +94,17 @@ void duDebugDrawArc(struct duDebugDraw* dd, const float x0, const float y0, cons dd->end(); } +void duDebugDrawArrow(struct duDebugDraw* dd, const float x0, const float y0, const float z0, + const float x1, const float y1, const float z1, + const float as0, const float as1, unsigned int col, const float lineWidth) +{ + if (!dd) return; + + dd->begin(DU_DRAW_LINES, lineWidth); + duAppendArrow(dd, x0,y0,z0, x1,y1,z1, as0, as1, col); + dd->end(); +} + void duDebugDrawCircle(struct duDebugDraw* dd, const float x, const float y, const float z, const float r, unsigned int col, const float lineWidth) { @@ -375,6 +386,23 @@ void duAppendArc(struct duDebugDraw* dd, const float x0, const float y0, const f } } +void duAppendArrow(struct duDebugDraw* dd, const float x0, const float y0, const float z0, + const float x1, const float y1, const float z1, + const float as0, const float as1, unsigned int col) +{ + if (!dd) return; + + dd->vertex(x0,y0,z0, col); + dd->vertex(x1,y1,z1, col); + + // End arrows + const float p[3] = {x0,y0,z0}, q[3] = {x1,y1,z1}; + if (as0 > 0.001f) + appendArrowHead(dd, p, q, as0, col); + if (as1 > 0.001f) + appendArrowHead(dd, q, p, as1, col); +} + void duAppendCircle(struct duDebugDraw* dd, const float x, const float y, const float z, const float r, unsigned int col) { diff --git a/DebugUtils/Source/DetourDebugDraw.cpp b/DebugUtils/Source/DetourDebugDraw.cpp index 194e23b..0e4df4b 100755 --- a/DebugUtils/Source/DetourDebugDraw.cpp +++ b/DebugUtils/Source/DetourDebugDraw.cpp @@ -174,7 +174,7 @@ static void drawMeshTile(duDebugDraw* dd, const dtNavMesh& mesh, const dtMeshTil if ((flags & DU_DRAWNAVMESH_CLOSEDLIST) && mesh.isInClosedList(base | (dtPolyRef)i)) col = duRGBA(255,196,0,220); else - col = duDarkenColor(duIntToCol(p->area, 220)); + col = duDarkenCol(duIntToCol(p->area, 220)); const dtOffMeshConnection* con = &tile->offMeshCons[i - tile->header->offMeshBase]; const float* va = &tile->verts[p->verts[0]*3]; diff --git a/DebugUtils/Source/RecastDebugDraw.cpp b/DebugUtils/Source/RecastDebugDraw.cpp index 687f7b4..45a8b75 100644 --- a/DebugUtils/Source/RecastDebugDraw.cpp +++ b/DebugUtils/Source/RecastDebugDraw.cpp @@ -342,7 +342,7 @@ void duDebugDrawRegionConnections(duDebugDraw* dd, const rcContourSet& cset, con for (int i = 0; i < cset.nconts; ++i) { const rcContour* cont = &cset.conts[i]; - unsigned int color = duDarkenColor(duIntToCol(cont->reg,a)); + unsigned int color = duDarkenCol(duIntToCol(cont->reg,a)); getContourCenter(cont, orig, cs, ch, pos); dd->vertex(pos, color); } @@ -390,7 +390,7 @@ void duDebugDrawRawContours(duDebugDraw* dd, const rcContourSet& cset, const flo for (int i = 0; i < cset.nconts; ++i) { const rcContour& c = cset.conts[i]; - unsigned int color = duDarkenColor(duIntToCol(c.reg, a)); + unsigned int color = duDarkenCol(duIntToCol(c.reg, a)); for (int j = 0; j < c.nrverts; ++j) { @@ -455,7 +455,7 @@ void duDebugDrawContours(duDebugDraw* dd, const rcContourSet& cset, const float for (int i = 0; i < cset.nconts; ++i) { const rcContour& c = cset.conts[i]; - unsigned int color = duDarkenColor(duIntToCol(c.reg, a)); + unsigned int color = duDarkenCol(duIntToCol(c.reg, a)); for (int j = 0; j < c.nverts; ++j) { const int* v = &c.verts[j*4]; diff --git a/Detour/Include/DetourCommon.h b/Detour/Include/DetourCommon.h index 1173ecf..42e49a8 100644 --- a/Detour/Include/DetourCommon.h +++ b/Detour/Include/DetourCommon.h @@ -89,6 +89,11 @@ inline void dtVmax(float* mx, const float* v) mx[2] = dtMax(mx[2], v[2]); } +inline void dtVset(float* dest, const float x, const float y, const float z) +{ + dest[0] = x; dest[1] = y; dest[2] = z; +} + inline void dtVcopy(float* dest, const float* a) { dest[0] = a[0]; @@ -96,22 +101,46 @@ inline void dtVcopy(float* dest, const float* a) dest[2] = a[2]; } +inline float dtVlen(const float* v) +{ + return dtSqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); +} + +inline float dtVlenSqr(const float* v) +{ + return v[0]*v[0] + v[1]*v[1] + v[2]*v[2]; +} + inline float dtVdist(const float* v1, const float* v2) { - float dx = v2[0] - v1[0]; - float dy = v2[1] - v1[1]; - float dz = v2[2] - v1[2]; + const float dx = v2[0] - v1[0]; + const float dy = v2[1] - v1[1]; + const float dz = v2[2] - v1[2]; return dtSqrt(dx*dx + dy*dy + dz*dz); } inline float dtVdistSqr(const float* v1, const float* v2) { - float dx = v2[0] - v1[0]; - float dy = v2[1] - v1[1]; - float dz = v2[2] - v1[2]; + const float dx = v2[0] - v1[0]; + const float dy = v2[1] - v1[1]; + const float dz = v2[2] - v1[2]; return dx*dx + dy*dy + dz*dz; } +inline float dtVdist2D(const float* v1, const float* v2) +{ + const float dx = v2[0] - v1[0]; + const float dz = v2[2] - v1[2]; + return dtSqrt(dx*dx + dz*dz); +} + +inline float dtVdist2DSqr(const float* v1, const float* v2) +{ + const float dx = v2[0] - v1[0]; + const float dz = v2[2] - v1[2]; + return dx*dx + dz*dz; +} + inline void dtVnormalize(float* v) { float d = 1.0f / dtSqrt(dtSqr(v[0]) + dtSqr(v[1]) + dtSqr(v[2])); diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 6819931..5f0b7ce 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -9,17 +9,17 @@ }; }; 29B97313FDCFA39411CA2CEA /* Project object */ = { - activeBuildConfigurationName = Debug; + activeBuildConfigurationName = Release; activeExecutable = 6B8632970F78114600E2684A /* Recast */; activeTarget = 8D1107260486CEB800E47090 /* Recast */; addToTargets = ( 8D1107260486CEB800E47090 /* Recast */, ); breakpoints = ( - 6BBB4C4C115B7BAD00CF791D /* Sample_TileMesh.cpp:276 */, + 6BBB4C4C115B7BAD00CF791D /* Sample_TileMesh.cpp:279 */, 6B42164711806B2F006C347B /* DetourDebugDraw.cpp:413 */, 6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1398 */, - 6BAF3BD31211479B008CFCDF /* DetourNavMesh.cpp:1814 */, + 6BAF3EB31212906D008CFCDF /* CrowdTool.cpp:774 */, ); codeSenseManager = 6B8632AA0F78115100E2684A /* Code sense */; executables = ( @@ -865,6 +865,615 @@ 6BAF3C5012116315008CFCDF /* PBXTextBookmark */ = 6BAF3C5012116315008CFCDF /* PBXTextBookmark */; 6BAF3C54121163F0008CFCDF /* PBXTextBookmark */ = 6BAF3C54121163F0008CFCDF /* PBXTextBookmark */; 6BAF3C56121163FD008CFCDF /* PBXTextBookmark */ = 6BAF3C56121163FD008CFCDF /* PBXTextBookmark */; + 6BAF3C5C12116712008CFCDF /* PBXTextBookmark */ = 6BAF3C5C12116712008CFCDF /* PBXTextBookmark */; + 6BAF3C5D12116712008CFCDF /* PBXTextBookmark */ = 6BAF3C5D12116712008CFCDF /* PBXTextBookmark */; + 6BAF3C5E12116712008CFCDF /* PBXTextBookmark */ = 6BAF3C5E12116712008CFCDF /* PBXTextBookmark */; + 6BAF3C5F12116712008CFCDF /* PBXTextBookmark */ = 6BAF3C5F12116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6012116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6012116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6112116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6112116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6212116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6212116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6312116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6312116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6412116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6412116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6512116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6512116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6612116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6612116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6712116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6712116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6812116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6812116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6912116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6912116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6A12116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6A12116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6B12116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6B12116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6C12116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6C12116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6D12116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6D12116712008CFCDF /* PBXTextBookmark */; + 6BAF3C6E12116712008CFCDF /* PBXTextBookmark */ = 6BAF3C6E12116712008CFCDF /* PBXTextBookmark */; + 6BAF3C71121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C71121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C72121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C72121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C73121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C73121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C74121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C74121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C75121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C75121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C76121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C76121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C77121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C77121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C78121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C78121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C79121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C79121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C7A121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C7A121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C7B121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C7B121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C7C121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C7C121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C7D121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C7D121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C7E121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C7E121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C7F121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C7F121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C80121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C80121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C81121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C81121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C82121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C82121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C83121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C83121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C84121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C84121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C85121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C85121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C86121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C86121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C87121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C87121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C88121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C88121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C89121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C89121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C8A121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C8A121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C8B121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C8B121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C8C121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C8C121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C8D121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C8D121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C8E121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C8E121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C8F121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C8F121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3C90121167CA008CFCDF /* PBXTextBookmark */ = 6BAF3C90121167CA008CFCDF /* PBXTextBookmark */; + 6BAF3CAD12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CAD12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CAE12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CAE12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CAF12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CAF12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CB012116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CB012116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CB112116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CB112116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CB212116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CB212116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CB312116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CB312116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CB412116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CB412116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CB512116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CB512116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CB612116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CB612116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CB712116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CB712116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CB812116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CB812116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CB912116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CB912116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CBA12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CBA12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CBB12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CBB12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CBC12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CBC12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CBD12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CBD12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CBE12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CBE12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CBF12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CBF12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CC012116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CC012116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CC112116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CC112116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CC212116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CC212116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CC312116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CC312116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CC412116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CC412116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CC512116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CC512116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CC612116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CC612116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CC712116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CC712116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CC812116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CC812116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CC912116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CC912116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CCA12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CCA12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CCB12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CCB12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CCC12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CCC12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CCD12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CCD12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CCE12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CCE12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CCF12116AD9008CFCDF /* PBXTextBookmark */ = 6BAF3CCF12116AD9008CFCDF /* PBXTextBookmark */; + 6BAF3CD112116B16008CFCDF /* PBXTextBookmark */ = 6BAF3CD112116B16008CFCDF /* PBXTextBookmark */; + 6BAF3CD312116B90008CFCDF /* PBXTextBookmark */ = 6BAF3CD312116B90008CFCDF /* PBXTextBookmark */; + 6BAF3CD4121174E9008CFCDF /* PBXTextBookmark */ = 6BAF3CD4121174E9008CFCDF /* PBXTextBookmark */; + 6BAF3CD5121174E9008CFCDF /* PBXTextBookmark */ = 6BAF3CD5121174E9008CFCDF /* PBXTextBookmark */; + 6BAF3CD6121174E9008CFCDF /* PBXTextBookmark */ = 6BAF3CD6121174E9008CFCDF /* PBXTextBookmark */; + 6BAF3CD7121174E9008CFCDF /* PBXTextBookmark */ = 6BAF3CD7121174E9008CFCDF /* PBXTextBookmark */; + 6BAF3CD8121174E9008CFCDF /* PBXTextBookmark */ = 6BAF3CD8121174E9008CFCDF /* PBXTextBookmark */; + 6BAF3CD9121174E9008CFCDF /* PBXTextBookmark */ = 6BAF3CD9121174E9008CFCDF /* PBXTextBookmark */; + 6BAF3CDA121174E9008CFCDF /* PBXTextBookmark */ = 6BAF3CDA121174E9008CFCDF /* PBXTextBookmark */; + 6BAF3CDB121174E9008CFCDF /* PBXTextBookmark */ = 6BAF3CDB121174E9008CFCDF /* PBXTextBookmark */; + 6BAF3CDC121174E9008CFCDF /* PBXTextBookmark */ = 6BAF3CDC121174E9008CFCDF /* PBXTextBookmark */; + 6BAF3CDD121174E9008CFCDF /* PBXTextBookmark */ = 6BAF3CDD121174E9008CFCDF /* PBXTextBookmark */; + 6BAF3CDE12117580008CFCDF /* PBXTextBookmark */ = 6BAF3CDE12117580008CFCDF /* PBXTextBookmark */; + 6BAF3CDF12117769008CFCDF /* PBXTextBookmark */ = 6BAF3CDF12117769008CFCDF /* PBXTextBookmark */; + 6BAF3CE012117769008CFCDF /* PBXTextBookmark */ = 6BAF3CE012117769008CFCDF /* PBXTextBookmark */; + 6BAF3CE112117769008CFCDF /* PBXTextBookmark */ = 6BAF3CE112117769008CFCDF /* PBXTextBookmark */; + 6BAF3CE212117769008CFCDF /* PBXTextBookmark */ = 6BAF3CE212117769008CFCDF /* PBXTextBookmark */; + 6BAF3CE312117769008CFCDF /* PBXTextBookmark */ = 6BAF3CE312117769008CFCDF /* PBXTextBookmark */; + 6BAF3CE412117769008CFCDF /* PBXTextBookmark */ = 6BAF3CE412117769008CFCDF /* PBXTextBookmark */; + 6BAF3CE512117769008CFCDF /* PBXTextBookmark */ = 6BAF3CE512117769008CFCDF /* PBXTextBookmark */; + 6BAF3CE612117769008CFCDF /* PBXTextBookmark */ = 6BAF3CE612117769008CFCDF /* PBXTextBookmark */; + 6BAF3CE712117769008CFCDF /* PBXTextBookmark */ = 6BAF3CE712117769008CFCDF /* PBXTextBookmark */; + 6BAF3CE812117769008CFCDF /* PBXTextBookmark */ = 6BAF3CE812117769008CFCDF /* PBXTextBookmark */; + 6BAF3CE912117769008CFCDF /* PBXTextBookmark */ = 6BAF3CE912117769008CFCDF /* PBXTextBookmark */; + 6BAF3CEA12117769008CFCDF /* PBXTextBookmark */ = 6BAF3CEA12117769008CFCDF /* PBXTextBookmark */; + 6BAF3CEB12117769008CFCDF /* PBXTextBookmark */ = 6BAF3CEB12117769008CFCDF /* PBXTextBookmark */; + 6BAF3CEC12117769008CFCDF /* PBXTextBookmark */ = 6BAF3CEC12117769008CFCDF /* PBXTextBookmark */; + 6BAF3CED12117769008CFCDF /* PBXTextBookmark */ = 6BAF3CED12117769008CFCDF /* PBXTextBookmark */; + 6BAF3CEE12117769008CFCDF /* PBXTextBookmark */ = 6BAF3CEE12117769008CFCDF /* PBXTextBookmark */; + 6BAF3CEF12117769008CFCDF /* PBXTextBookmark */ = 6BAF3CEF12117769008CFCDF /* PBXTextBookmark */; + 6BAF3CF012117769008CFCDF /* PBXTextBookmark */ = 6BAF3CF012117769008CFCDF /* PBXTextBookmark */; + 6BAF3CF112117769008CFCDF /* PBXTextBookmark */ = 6BAF3CF112117769008CFCDF /* PBXTextBookmark */; + 6BAF3CF21211780F008CFCDF /* PBXTextBookmark */ = 6BAF3CF21211780F008CFCDF /* PBXTextBookmark */; + 6BAF3CF7121178A3008CFCDF /* PBXTextBookmark */ = 6BAF3CF7121178A3008CFCDF /* PBXTextBookmark */; + 6BAF3CF8121178A3008CFCDF /* PBXTextBookmark */ = 6BAF3CF8121178A3008CFCDF /* PBXTextBookmark */; + 6BAF3CF9121178A3008CFCDF /* PBXTextBookmark */ = 6BAF3CF9121178A3008CFCDF /* PBXTextBookmark */; + 6BAF3CFA121178A3008CFCDF /* PBXTextBookmark */ = 6BAF3CFA121178A3008CFCDF /* PBXTextBookmark */; + 6BAF3D09121178CE008CFCDF /* PBXTextBookmark */ = 6BAF3D09121178CE008CFCDF /* PBXTextBookmark */; + 6BAF3D0A121178D9008CFCDF /* PBXTextBookmark */ = 6BAF3D0A121178D9008CFCDF /* PBXTextBookmark */; + 6BAF3D0B121178D9008CFCDF /* PBXTextBookmark */ = 6BAF3D0B121178D9008CFCDF /* PBXTextBookmark */; + 6BAF3D0C121178D9008CFCDF /* PBXTextBookmark */ = 6BAF3D0C121178D9008CFCDF /* PBXTextBookmark */; + 6BAF3D0D121178D9008CFCDF /* PBXTextBookmark */ = 6BAF3D0D121178D9008CFCDF /* PBXTextBookmark */; + 6BAF3D0E121178D9008CFCDF /* PBXTextBookmark */ = 6BAF3D0E121178D9008CFCDF /* PBXTextBookmark */; + 6BAF3D0F121178D9008CFCDF /* PBXTextBookmark */ = 6BAF3D0F121178D9008CFCDF /* PBXTextBookmark */; + 6BAF3D15121178EC008CFCDF /* PBXTextBookmark */ = 6BAF3D15121178EC008CFCDF /* PBXTextBookmark */; + 6BAF3D19121178FC008CFCDF /* PBXTextBookmark */ = 6BAF3D19121178FC008CFCDF /* PBXTextBookmark */; + 6BAF3D25121179CD008CFCDF /* PBXTextBookmark */ = 6BAF3D25121179CD008CFCDF /* PBXTextBookmark */; + 6BAF3D26121179CD008CFCDF /* PBXTextBookmark */ = 6BAF3D26121179CD008CFCDF /* PBXTextBookmark */; + 6BAF3D27121179CD008CFCDF /* PBXTextBookmark */ = 6BAF3D27121179CD008CFCDF /* PBXTextBookmark */; + 6BAF3D28121179CD008CFCDF /* PBXTextBookmark */ = 6BAF3D28121179CD008CFCDF /* PBXTextBookmark */; + 6BAF3D29121179CD008CFCDF /* PBXTextBookmark */ = 6BAF3D29121179CD008CFCDF /* PBXTextBookmark */; + 6BAF3D2A121179CD008CFCDF /* PBXTextBookmark */ = 6BAF3D2A121179CD008CFCDF /* PBXTextBookmark */; + 6BAF3D2B121179CD008CFCDF /* PBXTextBookmark */ = 6BAF3D2B121179CD008CFCDF /* PBXTextBookmark */; + 6BAF3D2C121179CD008CFCDF /* PBXTextBookmark */ = 6BAF3D2C121179CD008CFCDF /* PBXTextBookmark */; + 6BAF3D3012117A05008CFCDF /* PBXTextBookmark */ = 6BAF3D3012117A05008CFCDF /* PBXTextBookmark */; + 6BAF3D3112117A05008CFCDF /* PBXTextBookmark */ = 6BAF3D3112117A05008CFCDF /* PBXTextBookmark */; + 6BAF3D3212117A05008CFCDF /* PBXTextBookmark */ = 6BAF3D3212117A05008CFCDF /* PBXTextBookmark */; + 6BAF3D3312117A05008CFCDF /* PBXTextBookmark */ = 6BAF3D3312117A05008CFCDF /* PBXTextBookmark */; + 6BAF3D3412117A05008CFCDF /* PBXTextBookmark */ = 6BAF3D3412117A05008CFCDF /* PBXTextBookmark */; + 6BAF3D3512117A05008CFCDF /* PBXTextBookmark */ = 6BAF3D3512117A05008CFCDF /* PBXTextBookmark */; + 6BAF3D3612117A05008CFCDF /* PBXTextBookmark */ = 6BAF3D3612117A05008CFCDF /* PBXTextBookmark */; + 6BAF3D3712117A05008CFCDF /* PBXTextBookmark */ = 6BAF3D3712117A05008CFCDF /* PBXTextBookmark */; + 6BAF3D3A12117B08008CFCDF /* PBXTextBookmark */ = 6BAF3D3A12117B08008CFCDF /* PBXTextBookmark */; + 6BAF3D3E12117B40008CFCDF /* PBXTextBookmark */ = 6BAF3D3E12117B40008CFCDF /* PBXTextBookmark */; + 6BAF3D3F12117B40008CFCDF /* PBXTextBookmark */ = 6BAF3D3F12117B40008CFCDF /* PBXTextBookmark */; + 6BAF3D4012117B40008CFCDF /* PBXTextBookmark */ = 6BAF3D4012117B40008CFCDF /* PBXTextBookmark */; + 6BAF3D4112117B40008CFCDF /* PBXTextBookmark */ = 6BAF3D4112117B40008CFCDF /* PBXTextBookmark */; + 6BAF3D4212117B40008CFCDF /* PBXTextBookmark */ = 6BAF3D4212117B40008CFCDF /* PBXTextBookmark */; + 6BAF3D4312117B40008CFCDF /* PBXTextBookmark */ = 6BAF3D4312117B40008CFCDF /* PBXTextBookmark */; + 6BAF3D4412117B40008CFCDF /* PBXTextBookmark */ = 6BAF3D4412117B40008CFCDF /* PBXTextBookmark */; + 6BAF3D4512117B40008CFCDF /* PBXTextBookmark */ = 6BAF3D4512117B40008CFCDF /* PBXTextBookmark */; + 6BAF3D4912117C1F008CFCDF /* PBXTextBookmark */ = 6BAF3D4912117C1F008CFCDF /* PBXTextBookmark */; + 6BAF3D4A12117C1F008CFCDF /* PBXTextBookmark */ = 6BAF3D4A12117C1F008CFCDF /* PBXTextBookmark */; + 6BAF3D4B12117C1F008CFCDF /* PBXTextBookmark */ = 6BAF3D4B12117C1F008CFCDF /* PBXTextBookmark */; + 6BAF3D4C12117C1F008CFCDF /* PBXTextBookmark */ = 6BAF3D4C12117C1F008CFCDF /* PBXTextBookmark */; + 6BAF3D4D12117C1F008CFCDF /* PBXTextBookmark */ = 6BAF3D4D12117C1F008CFCDF /* PBXTextBookmark */; + 6BAF3D4E12117C1F008CFCDF /* PBXTextBookmark */ = 6BAF3D4E12117C1F008CFCDF /* PBXTextBookmark */; + 6BAF3D4F12117C1F008CFCDF /* PBXTextBookmark */ = 6BAF3D4F12117C1F008CFCDF /* PBXTextBookmark */; + 6BAF3D5012117C1F008CFCDF /* PBXTextBookmark */ = 6BAF3D5012117C1F008CFCDF /* PBXTextBookmark */; + 6BAF3D5112117C1F008CFCDF /* PBXTextBookmark */ = 6BAF3D5112117C1F008CFCDF /* PBXTextBookmark */; + 6BAF3D5312117C38008CFCDF /* PBXTextBookmark */ = 6BAF3D5312117C38008CFCDF /* PBXTextBookmark */; + 6BAF3D5512117C9A008CFCDF /* PBXTextBookmark */ = 6BAF3D5512117C9A008CFCDF /* PBXTextBookmark */; + 6BAF3D5612117CE3008CFCDF /* PBXTextBookmark */ = 6BAF3D5612117CE3008CFCDF /* PBXTextBookmark */; + 6BAF3D5C12117F19008CFCDF /* PBXTextBookmark */ = 6BAF3D5C12117F19008CFCDF /* PBXTextBookmark */; + 6BAF3D5D12117F19008CFCDF /* PBXTextBookmark */ = 6BAF3D5D12117F19008CFCDF /* PBXTextBookmark */; + 6BAF3D5E12118022008CFCDF /* PBXTextBookmark */ = 6BAF3D5E12118022008CFCDF /* PBXTextBookmark */; + 6BAF3D5F12118022008CFCDF /* PBXTextBookmark */ = 6BAF3D5F12118022008CFCDF /* PBXTextBookmark */; + 6BAF3D6012118022008CFCDF /* PBXTextBookmark */ = 6BAF3D6012118022008CFCDF /* PBXTextBookmark */; + 6BAF3D6112118022008CFCDF /* PBXTextBookmark */ = 6BAF3D6112118022008CFCDF /* PBXTextBookmark */; + 6BAF3D6212118022008CFCDF /* PBXTextBookmark */ = 6BAF3D6212118022008CFCDF /* PBXTextBookmark */; + 6BAF3D6312118022008CFCDF /* PBXTextBookmark */ = 6BAF3D6312118022008CFCDF /* PBXTextBookmark */; + 6BAF3D6412118022008CFCDF /* PBXTextBookmark */ = 6BAF3D6412118022008CFCDF /* PBXTextBookmark */; + 6BAF3D6512118022008CFCDF /* PBXTextBookmark */ = 6BAF3D6512118022008CFCDF /* PBXTextBookmark */; + 6BAF3D6612118022008CFCDF /* PBXTextBookmark */ = 6BAF3D6612118022008CFCDF /* PBXTextBookmark */; + 6BAF3D6912118084008CFCDF /* PBXTextBookmark */ = 6BAF3D6912118084008CFCDF /* PBXTextBookmark */; + 6BAF3D6A12118084008CFCDF /* PBXTextBookmark */ = 6BAF3D6A12118084008CFCDF /* PBXTextBookmark */; + 6BAF3D6B12118084008CFCDF /* PBXTextBookmark */ = 6BAF3D6B12118084008CFCDF /* PBXTextBookmark */; + 6BAF3D6C12118084008CFCDF /* PBXTextBookmark */ = 6BAF3D6C12118084008CFCDF /* PBXTextBookmark */; + 6BAF3D6D12118084008CFCDF /* PBXTextBookmark */ = 6BAF3D6D12118084008CFCDF /* PBXTextBookmark */; + 6BAF3D6E12118121008CFCDF /* PBXTextBookmark */ = 6BAF3D6E12118121008CFCDF /* PBXTextBookmark */; + 6BAF3D6F12118121008CFCDF /* PBXTextBookmark */ = 6BAF3D6F12118121008CFCDF /* PBXTextBookmark */; + 6BAF3D7012118121008CFCDF /* PBXTextBookmark */ = 6BAF3D7012118121008CFCDF /* PBXTextBookmark */; + 6BAF3D7112118121008CFCDF /* PBXTextBookmark */ = 6BAF3D7112118121008CFCDF /* PBXTextBookmark */; + 6BAF3D7212118121008CFCDF /* PBXTextBookmark */ = 6BAF3D7212118121008CFCDF /* PBXTextBookmark */; + 6BAF3D7312118121008CFCDF /* PBXTextBookmark */ = 6BAF3D7312118121008CFCDF /* PBXTextBookmark */; + 6BAF3D7412118121008CFCDF /* PBXTextBookmark */ = 6BAF3D7412118121008CFCDF /* PBXTextBookmark */; + 6BAF3D7512118121008CFCDF /* PBXTextBookmark */ = 6BAF3D7512118121008CFCDF /* PBXTextBookmark */; + 6BAF3D7612118121008CFCDF /* PBXTextBookmark */ = 6BAF3D7612118121008CFCDF /* PBXTextBookmark */; + 6BAF3D7912118392008CFCDF /* PBXTextBookmark */ = 6BAF3D7912118392008CFCDF /* PBXTextBookmark */; + 6BAF3D7A12118392008CFCDF /* PBXTextBookmark */ = 6BAF3D7A12118392008CFCDF /* PBXTextBookmark */; + 6BAF3D7B12118392008CFCDF /* PBXTextBookmark */ = 6BAF3D7B12118392008CFCDF /* PBXTextBookmark */; + 6BAF3D7C12118392008CFCDF /* PBXTextBookmark */ = 6BAF3D7C12118392008CFCDF /* PBXTextBookmark */; + 6BAF3D7D12118392008CFCDF /* PBXTextBookmark */ = 6BAF3D7D12118392008CFCDF /* PBXTextBookmark */; + 6BAF3D7E12118392008CFCDF /* PBXTextBookmark */ = 6BAF3D7E12118392008CFCDF /* PBXTextBookmark */; + 6BAF3D7F12118392008CFCDF /* PBXTextBookmark */ = 6BAF3D7F12118392008CFCDF /* PBXTextBookmark */; + 6BAF3D8012118392008CFCDF /* PBXTextBookmark */ = 6BAF3D8012118392008CFCDF /* PBXTextBookmark */; + 6BAF3D8112118392008CFCDF /* PBXTextBookmark */ = 6BAF3D8112118392008CFCDF /* PBXTextBookmark */; + 6BAF3D84121184F7008CFCDF /* PBXTextBookmark */ = 6BAF3D84121184F7008CFCDF /* PBXTextBookmark */; + 6BAF3D85121184F7008CFCDF /* PBXTextBookmark */ = 6BAF3D85121184F7008CFCDF /* PBXTextBookmark */; + 6BAF3D86121184F7008CFCDF /* PBXTextBookmark */ = 6BAF3D86121184F7008CFCDF /* PBXTextBookmark */; + 6BAF3D87121184F7008CFCDF /* PBXTextBookmark */ = 6BAF3D87121184F7008CFCDF /* PBXTextBookmark */; + 6BAF3D88121184F7008CFCDF /* PBXTextBookmark */ = 6BAF3D88121184F7008CFCDF /* PBXTextBookmark */; + 6BAF3D89121184F7008CFCDF /* PBXTextBookmark */ = 6BAF3D89121184F7008CFCDF /* PBXTextBookmark */; + 6BAF3D8A121184F7008CFCDF /* PBXTextBookmark */ = 6BAF3D8A121184F7008CFCDF /* PBXTextBookmark */; + 6BAF3D8B121184F7008CFCDF /* PBXTextBookmark */ = 6BAF3D8B121184F7008CFCDF /* PBXTextBookmark */; + 6BAF3D8C121184F7008CFCDF /* PBXTextBookmark */ = 6BAF3D8C121184F7008CFCDF /* PBXTextBookmark */; + 6BAF3D8D121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D8D121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D8E121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D8E121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D8F121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D8F121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D90121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D90121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D91121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D91121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D92121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D92121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D93121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D93121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D94121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D94121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D95121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D95121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D96121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D96121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D97121185F3008CFCDF /* PBXTextBookmark */ = 6BAF3D97121185F3008CFCDF /* PBXTextBookmark */; + 6BAF3D98121186B9008CFCDF /* PBXTextBookmark */ = 6BAF3D98121186B9008CFCDF /* PBXTextBookmark */; + 6BAF3D99121186B9008CFCDF /* PBXTextBookmark */ = 6BAF3D99121186B9008CFCDF /* PBXTextBookmark */; + 6BAF3D9A121186B9008CFCDF /* PBXTextBookmark */ = 6BAF3D9A121186B9008CFCDF /* PBXTextBookmark */; + 6BAF3D9B121186B9008CFCDF /* PBXTextBookmark */ = 6BAF3D9B121186B9008CFCDF /* PBXTextBookmark */; + 6BAF3D9C121186B9008CFCDF /* PBXTextBookmark */ = 6BAF3D9C121186B9008CFCDF /* PBXTextBookmark */; + 6BAF3D9D121186B9008CFCDF /* PBXTextBookmark */ = 6BAF3D9D121186B9008CFCDF /* PBXTextBookmark */; + 6BAF3D9E121186B9008CFCDF /* PBXTextBookmark */ = 6BAF3D9E121186B9008CFCDF /* PBXTextBookmark */; + 6BAF3D9F1211876A008CFCDF /* PBXTextBookmark */ = 6BAF3D9F1211876A008CFCDF /* PBXTextBookmark */; + 6BAF3DA01211876A008CFCDF /* PBXTextBookmark */ = 6BAF3DA01211876A008CFCDF /* PBXTextBookmark */; + 6BAF3DA11211876A008CFCDF /* PBXTextBookmark */ = 6BAF3DA11211876A008CFCDF /* PBXTextBookmark */; + 6BAF3DA21211876A008CFCDF /* PBXTextBookmark */ = 6BAF3DA21211876A008CFCDF /* PBXTextBookmark */; + 6BAF3DA31211876A008CFCDF /* PBXTextBookmark */ = 6BAF3DA31211876A008CFCDF /* PBXTextBookmark */; + 6BAF3DA41211876A008CFCDF /* PBXTextBookmark */ = 6BAF3DA41211876A008CFCDF /* PBXTextBookmark */; + 6BAF3DA51211882E008CFCDF /* PBXTextBookmark */ = 6BAF3DA51211882E008CFCDF /* PBXTextBookmark */; + 6BAF3DA61211882E008CFCDF /* PBXTextBookmark */ = 6BAF3DA61211882E008CFCDF /* PBXTextBookmark */; + 6BAF3DA71211882E008CFCDF /* PBXTextBookmark */ = 6BAF3DA71211882E008CFCDF /* PBXTextBookmark */; + 6BAF3DA81211882E008CFCDF /* PBXTextBookmark */ = 6BAF3DA81211882E008CFCDF /* PBXTextBookmark */; + 6BAF3DA91211882E008CFCDF /* PBXTextBookmark */ = 6BAF3DA91211882E008CFCDF /* PBXTextBookmark */; + 6BAF3DAA1211882E008CFCDF /* PBXTextBookmark */ = 6BAF3DAA1211882E008CFCDF /* PBXTextBookmark */; + 6BAF3DAB1211882E008CFCDF /* PBXTextBookmark */ = 6BAF3DAB1211882E008CFCDF /* PBXTextBookmark */; + 6BAF3DAC1211882E008CFCDF /* PBXTextBookmark */ = 6BAF3DAC1211882E008CFCDF /* PBXTextBookmark */; + 6BAF3DAD1211882E008CFCDF /* PBXTextBookmark */ = 6BAF3DAD1211882E008CFCDF /* PBXTextBookmark */; + 6BAF3DAE1211882E008CFCDF /* PBXTextBookmark */ = 6BAF3DAE1211882E008CFCDF /* PBXTextBookmark */; + 6BAF3DB11211893A008CFCDF /* PBXTextBookmark */ = 6BAF3DB11211893A008CFCDF /* PBXTextBookmark */; + 6BAF3DB21211893A008CFCDF /* PBXTextBookmark */ = 6BAF3DB21211893A008CFCDF /* PBXTextBookmark */; + 6BAF3DB31211893A008CFCDF /* PBXTextBookmark */ = 6BAF3DB31211893A008CFCDF /* PBXTextBookmark */; + 6BAF3DB41211893A008CFCDF /* PBXTextBookmark */ = 6BAF3DB41211893A008CFCDF /* PBXTextBookmark */; + 6BAF3DB51211893A008CFCDF /* PBXTextBookmark */ = 6BAF3DB51211893A008CFCDF /* PBXTextBookmark */; + 6BAF3DB61211893A008CFCDF /* PBXTextBookmark */ = 6BAF3DB61211893A008CFCDF /* PBXTextBookmark */; + 6BAF3DB81211895C008CFCDF /* PBXTextBookmark */ = 6BAF3DB81211895C008CFCDF /* PBXTextBookmark */; + 6BAF3DBB1211897E008CFCDF /* PBXTextBookmark */ = 6BAF3DBB1211897E008CFCDF /* PBXTextBookmark */; + 6BAF3DBD1211898E008CFCDF /* PBXTextBookmark */ = 6BAF3DBD1211898E008CFCDF /* PBXTextBookmark */; + 6BAF3DBE1211A5DE008CFCDF /* PBXTextBookmark */ = 6BAF3DBE1211A5DE008CFCDF /* PBXTextBookmark */; + 6BAF3DBF1211A5DE008CFCDF /* PBXTextBookmark */ = 6BAF3DBF1211A5DE008CFCDF /* PBXTextBookmark */; + 6BAF3DC01211A5DE008CFCDF /* PBXTextBookmark */ = 6BAF3DC01211A5DE008CFCDF /* PBXTextBookmark */; + 6BAF3DC11211A5DE008CFCDF /* PBXTextBookmark */ = 6BAF3DC11211A5DE008CFCDF /* PBXTextBookmark */; + 6BAF3DC21211A5DE008CFCDF /* PBXTextBookmark */ = 6BAF3DC21211A5DE008CFCDF /* PBXTextBookmark */; + 6BAF3DC31211A5DE008CFCDF /* PBXTextBookmark */ = 6BAF3DC31211A5DE008CFCDF /* PBXTextBookmark */; + 6BAF3DC41211A5DE008CFCDF /* PBXTextBookmark */ = 6BAF3DC41211A5DE008CFCDF /* PBXTextBookmark */; + 6BAF3DE11211A971008CFCDF /* PBXTextBookmark */ = 6BAF3DE11211A971008CFCDF /* PBXTextBookmark */; + 6BAF3DE21211A971008CFCDF /* PBXTextBookmark */ = 6BAF3DE21211A971008CFCDF /* PBXTextBookmark */; + 6BAF3DE31211A971008CFCDF /* PBXTextBookmark */ = 6BAF3DE31211A971008CFCDF /* PBXTextBookmark */; + 6BAF3DE41211A971008CFCDF /* PBXTextBookmark */ = 6BAF3DE41211A971008CFCDF /* PBXTextBookmark */; + 6BAF3DE51211A971008CFCDF /* PBXTextBookmark */ = 6BAF3DE51211A971008CFCDF /* PBXTextBookmark */; + 6BAF3DE61211A971008CFCDF /* PBXTextBookmark */ = 6BAF3DE61211A971008CFCDF /* PBXTextBookmark */; + 6BAF3DE71211A971008CFCDF /* PBXTextBookmark */ = 6BAF3DE71211A971008CFCDF /* PBXTextBookmark */; + 6BAF3DFA1211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3DFA1211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3DFB1211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3DFB1211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3DFC1211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3DFC1211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3DFD1211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3DFD1211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3DFE1211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3DFE1211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3DFF1211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3DFF1211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3E001211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3E001211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3E011211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3E011211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3E021211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3E021211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3E031211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3E031211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3E041211AEB2008CFCDF /* PBXTextBookmark */ = 6BAF3E041211AEB2008CFCDF /* PBXTextBookmark */; + 6BAF3E0B1211AEC5008CFCDF /* PBXTextBookmark */ = 6BAF3E0B1211AEC5008CFCDF /* PBXTextBookmark */; + 6BAF3E221211AED5008CFCDF /* PBXTextBookmark */ = 6BAF3E221211AED5008CFCDF /* PBXTextBookmark */; + 6BAF3E241211AF03008CFCDF /* PBXTextBookmark */ = 6BAF3E241211AF03008CFCDF /* PBXTextBookmark */; + 6BAF3E251211AF03008CFCDF /* PBXTextBookmark */ = 6BAF3E251211AF03008CFCDF /* PBXTextBookmark */; + 6BAF3E261211AF03008CFCDF /* PBXTextBookmark */ = 6BAF3E261211AF03008CFCDF /* PBXTextBookmark */; + 6BAF3E271211AF03008CFCDF /* PBXTextBookmark */ = 6BAF3E271211AF03008CFCDF /* PBXTextBookmark */; + 6BAF3E281211AF3A008CFCDF /* PBXTextBookmark */ = 6BAF3E281211AF3A008CFCDF /* PBXTextBookmark */; + 6BAF3E291211AF3A008CFCDF /* PBXTextBookmark */ = 6BAF3E291211AF3A008CFCDF /* PBXTextBookmark */; + 6BAF3E2A1211AF3A008CFCDF /* PBXTextBookmark */ = 6BAF3E2A1211AF3A008CFCDF /* PBXTextBookmark */; + 6BAF3E2B1211AF3A008CFCDF /* PBXTextBookmark */ = 6BAF3E2B1211AF3A008CFCDF /* PBXTextBookmark */; + 6BAF3E2F1211AFC5008CFCDF /* PBXTextBookmark */ = 6BAF3E2F1211AFC5008CFCDF /* PBXTextBookmark */; + 6BAF3E311211AFF9008CFCDF /* PBXTextBookmark */ = 6BAF3E311211AFF9008CFCDF /* PBXTextBookmark */; + 6BAF3E331211B052008CFCDF /* PBXTextBookmark */ = 6BAF3E331211B052008CFCDF /* PBXTextBookmark */; + 6BAF3E371211B0F6008CFCDF /* PBXTextBookmark */ = 6BAF3E371211B0F6008CFCDF /* PBXTextBookmark */; + 6BAF3E3B1211B16B008CFCDF /* PBXTextBookmark */ = 6BAF3E3B1211B16B008CFCDF /* PBXTextBookmark */; + 6BAF3E3C1211B16B008CFCDF /* PBXTextBookmark */ = 6BAF3E3C1211B16B008CFCDF /* PBXTextBookmark */; + 6BAF3E3D1211B16B008CFCDF /* PBXTextBookmark */ = 6BAF3E3D1211B16B008CFCDF /* PBXTextBookmark */; + 6BAF3E3E1211B16B008CFCDF /* PBXTextBookmark */ = 6BAF3E3E1211B16B008CFCDF /* PBXTextBookmark */; + 6BAF3E3F1211B16B008CFCDF /* PBXTextBookmark */ = 6BAF3E3F1211B16B008CFCDF /* PBXTextBookmark */; + 6BAF3E421211B19C008CFCDF /* PBXTextBookmark */ = 6BAF3E421211B19C008CFCDF /* PBXTextBookmark */; + 6BAF3E431211B19C008CFCDF /* PBXTextBookmark */ = 6BAF3E431211B19C008CFCDF /* PBXTextBookmark */; + 6BAF3E441211B19C008CFCDF /* PBXTextBookmark */ = 6BAF3E441211B19C008CFCDF /* PBXTextBookmark */; + 6BAF3E451211B19C008CFCDF /* PBXTextBookmark */ = 6BAF3E451211B19C008CFCDF /* PBXTextBookmark */; + 6BAF3E471211B20B008CFCDF /* PBXTextBookmark */ = 6BAF3E471211B20B008CFCDF /* PBXTextBookmark */; + 6BAF3E491211B2B9008CFCDF /* PBXTextBookmark */ = 6BAF3E491211B2B9008CFCDF /* PBXTextBookmark */; + 6BAF3E4E1211B490008CFCDF /* PBXTextBookmark */ = 6BAF3E4E1211B490008CFCDF /* PBXTextBookmark */; + 6BAF3E4F1211B490008CFCDF /* PBXTextBookmark */ = 6BAF3E4F1211B490008CFCDF /* PBXTextBookmark */; + 6BAF3E501211B490008CFCDF /* PBXTextBookmark */ = 6BAF3E501211B490008CFCDF /* PBXTextBookmark */; + 6BAF3E511211B490008CFCDF /* PBXTextBookmark */ = 6BAF3E511211B490008CFCDF /* PBXTextBookmark */; + 6BAF3E521211B490008CFCDF /* PBXTextBookmark */ = 6BAF3E521211B490008CFCDF /* PBXTextBookmark */; + 6BAF3E531211B490008CFCDF /* PBXTextBookmark */ = 6BAF3E531211B490008CFCDF /* PBXTextBookmark */; + 6BAF3E551211B49A008CFCDF /* PBXTextBookmark */ = 6BAF3E551211B49A008CFCDF /* PBXTextBookmark */; + 6BAF3E571211B50E008CFCDF /* PBXTextBookmark */ = 6BAF3E571211B50E008CFCDF /* PBXTextBookmark */; + 6BAF3E5A1211B59C008CFCDF /* PBXTextBookmark */ = 6BAF3E5A1211B59C008CFCDF /* PBXTextBookmark */; + 6BAF3E5B1211B59C008CFCDF /* PBXTextBookmark */ = 6BAF3E5B1211B59C008CFCDF /* PBXTextBookmark */; + 6BAF3E5C1211B59C008CFCDF /* PBXTextBookmark */ = 6BAF3E5C1211B59C008CFCDF /* PBXTextBookmark */; + 6BAF3E5D1211B59C008CFCDF /* PBXTextBookmark */ = 6BAF3E5D1211B59C008CFCDF /* PBXTextBookmark */; + 6BAF3E611211B713008CFCDF /* PBXTextBookmark */ = 6BAF3E611211B713008CFCDF /* PBXTextBookmark */; + 6BAF3E621211B713008CFCDF /* PBXTextBookmark */ = 6BAF3E621211B713008CFCDF /* PBXTextBookmark */; + 6BAF3E631211B713008CFCDF /* PBXTextBookmark */ = 6BAF3E631211B713008CFCDF /* PBXTextBookmark */; + 6BAF3E641211B713008CFCDF /* PBXTextBookmark */ = 6BAF3E641211B713008CFCDF /* PBXTextBookmark */; + 6BAF3E651211B713008CFCDF /* PBXTextBookmark */ = 6BAF3E651211B713008CFCDF /* PBXTextBookmark */; + 6BAF3E691211B7B6008CFCDF /* PBXTextBookmark */ = 6BAF3E691211B7B6008CFCDF /* PBXTextBookmark */; + 6BAF3E6D1211B937008CFCDF /* PBXTextBookmark */ = 6BAF3E6D1211B937008CFCDF /* PBXTextBookmark */; + 6BAF3E6E1211B937008CFCDF /* PBXTextBookmark */ = 6BAF3E6E1211B937008CFCDF /* PBXTextBookmark */; + 6BAF3E6F1211B937008CFCDF /* PBXTextBookmark */ = 6BAF3E6F1211B937008CFCDF /* PBXTextBookmark */; + 6BAF3E701211B937008CFCDF /* PBXTextBookmark */ = 6BAF3E701211B937008CFCDF /* PBXTextBookmark */; + 6BAF3E711211B937008CFCDF /* PBXTextBookmark */ = 6BAF3E711211B937008CFCDF /* PBXTextBookmark */; + 6BAF3E731211B960008CFCDF /* PBXTextBookmark */ = 6BAF3E731211B960008CFCDF /* PBXTextBookmark */; + 6BAF3E751211B971008CFCDF /* PBXTextBookmark */ = 6BAF3E751211B971008CFCDF /* PBXTextBookmark */; + 6BAF3E771212869F008CFCDF /* PBXTextBookmark */ = 6BAF3E771212869F008CFCDF /* PBXTextBookmark */; + 6BAF3E781212869F008CFCDF /* PBXTextBookmark */ = 6BAF3E781212869F008CFCDF /* PBXTextBookmark */; + 6BAF3E791212869F008CFCDF /* PBXTextBookmark */ = 6BAF3E791212869F008CFCDF /* PBXTextBookmark */; + 6BAF3E7A1212869F008CFCDF /* PBXTextBookmark */ = 6BAF3E7A1212869F008CFCDF /* PBXTextBookmark */; + 6BAF3E7B1212869F008CFCDF /* PBXTextBookmark */ = 6BAF3E7B1212869F008CFCDF /* PBXTextBookmark */; + 6BAF3E7C1212869F008CFCDF /* PBXTextBookmark */ = 6BAF3E7C1212869F008CFCDF /* PBXTextBookmark */; + 6BAF3E7D1212869F008CFCDF /* PBXTextBookmark */ = 6BAF3E7D1212869F008CFCDF /* PBXTextBookmark */; + 6BAF3E7E1212869F008CFCDF /* PBXTextBookmark */ = 6BAF3E7E1212869F008CFCDF /* PBXTextBookmark */; + 6BAF3E7F1212869F008CFCDF /* PBXTextBookmark */ = 6BAF3E7F1212869F008CFCDF /* PBXTextBookmark */; + 6BAF3E801212869F008CFCDF /* PBXTextBookmark */ = 6BAF3E801212869F008CFCDF /* PBXTextBookmark */; + 6BAF3E8112128712008CFCDF /* PBXTextBookmark */ = 6BAF3E8112128712008CFCDF /* PBXTextBookmark */; + 6BAF3E821212879C008CFCDF /* PBXTextBookmark */ = 6BAF3E821212879C008CFCDF /* PBXTextBookmark */; + 6BAF3E8312128821008CFCDF /* PBXTextBookmark */ = 6BAF3E8312128821008CFCDF /* PBXTextBookmark */; + 6BAF3E84121289DC008CFCDF /* PBXTextBookmark */ = 6BAF3E84121289DC008CFCDF /* PBXTextBookmark */; + 6BAF3E8912128ABE008CFCDF /* PBXTextBookmark */ = 6BAF3E8912128ABE008CFCDF /* PBXTextBookmark */; + 6BAF3E8B12128B04008CFCDF /* PBXTextBookmark */ = 6BAF3E8B12128B04008CFCDF /* PBXTextBookmark */; + 6BAF3E8C12128B04008CFCDF /* PBXTextBookmark */ = 6BAF3E8C12128B04008CFCDF /* PBXTextBookmark */; + 6BAF3E8D12128B04008CFCDF /* PBXTextBookmark */ = 6BAF3E8D12128B04008CFCDF /* PBXTextBookmark */; + 6BAF3E8E12128B04008CFCDF /* PBXTextBookmark */ = 6BAF3E8E12128B04008CFCDF /* PBXTextBookmark */; + 6BAF3E8F12128B04008CFCDF /* PBXTextBookmark */ = 6BAF3E8F12128B04008CFCDF /* PBXTextBookmark */; + 6BAF3E9012128B04008CFCDF /* PBXTextBookmark */ = 6BAF3E9012128B04008CFCDF /* PBXTextBookmark */; + 6BAF3E9112128B04008CFCDF /* PBXTextBookmark */ = 6BAF3E9112128B04008CFCDF /* PBXTextBookmark */; + 6BAF3E9212128B04008CFCDF /* PBXTextBookmark */ = 6BAF3E9212128B04008CFCDF /* PBXTextBookmark */; + 6BAF3E9312128B04008CFCDF /* PBXTextBookmark */ = 6BAF3E9312128B04008CFCDF /* PBXTextBookmark */; + 6BAF3E9712128BBD008CFCDF /* PBXTextBookmark */ = 6BAF3E9712128BBD008CFCDF /* PBXTextBookmark */; + 6BAF3E9812128BBD008CFCDF /* PBXTextBookmark */ = 6BAF3E9812128BBD008CFCDF /* PBXTextBookmark */; + 6BAF3E9912128BBD008CFCDF /* PBXTextBookmark */ = 6BAF3E9912128BBD008CFCDF /* PBXTextBookmark */; + 6BAF3E9A12128BBD008CFCDF /* PBXTextBookmark */ = 6BAF3E9A12128BBD008CFCDF /* PBXTextBookmark */; + 6BAF3E9B12128BBD008CFCDF /* PBXTextBookmark */ = 6BAF3E9B12128BBD008CFCDF /* PBXTextBookmark */; + 6BAF3E9C12128BBD008CFCDF /* PBXTextBookmark */ = 6BAF3E9C12128BBD008CFCDF /* PBXTextBookmark */; + 6BAF3E9D12128BBD008CFCDF /* PBXTextBookmark */ = 6BAF3E9D12128BBD008CFCDF /* PBXTextBookmark */; + 6BAF3EA512128ED2008CFCDF /* PBXTextBookmark */ = 6BAF3EA512128ED2008CFCDF /* PBXTextBookmark */; + 6BAF3EA812128F28008CFCDF /* PBXTextBookmark */ = 6BAF3EA812128F28008CFCDF /* PBXTextBookmark */; + 6BAF3EAD12128F51008CFCDF /* PBXTextBookmark */ = 6BAF3EAD12128F51008CFCDF /* PBXTextBookmark */; + 6BAF3EB11212901F008CFCDF /* PBXTextBookmark */ = 6BAF3EB11212901F008CFCDF /* PBXTextBookmark */; + 6BAF3EB4121290A2008CFCDF /* PBXTextBookmark */ = 6BAF3EB4121290A2008CFCDF /* PBXTextBookmark */; + 6BAF3EBB12129112008CFCDF /* PBXTextBookmark */ = 6BAF3EBB12129112008CFCDF /* PBXTextBookmark */; + 6BAF3EBE12129166008CFCDF /* PBXTextBookmark */ = 6BAF3EBE12129166008CFCDF /* PBXTextBookmark */; + 6BAF3EC1121292C9008CFCDF /* PBXTextBookmark */ = 6BAF3EC1121292C9008CFCDF /* PBXTextBookmark */; + 6BAF3EC312129336008CFCDF /* PBXTextBookmark */ = 6BAF3EC312129336008CFCDF /* PBXTextBookmark */; + 6BAF3EC61212937F008CFCDF /* PBXTextBookmark */ = 6BAF3EC61212937F008CFCDF /* PBXTextBookmark */; + 6BAF3ECA12129468008CFCDF /* PBXTextBookmark */ = 6BAF3ECA12129468008CFCDF /* PBXTextBookmark */; + 6BAF3ECB12129468008CFCDF /* PBXTextBookmark */ = 6BAF3ECB12129468008CFCDF /* PBXTextBookmark */; + 6BAF3ECC12129468008CFCDF /* PBXTextBookmark */ = 6BAF3ECC12129468008CFCDF /* PBXTextBookmark */; + 6BAF3ECD12129468008CFCDF /* PBXTextBookmark */ = 6BAF3ECD12129468008CFCDF /* PBXTextBookmark */; + 6BAF3ECE12129468008CFCDF /* PBXTextBookmark */ = 6BAF3ECE12129468008CFCDF /* PBXTextBookmark */; + 6BAF3ED1121294B1008CFCDF /* PBXTextBookmark */ = 6BAF3ED1121294B1008CFCDF /* PBXTextBookmark */; + 6BAF3ED3121294D7008CFCDF /* PBXTextBookmark */ = 6BAF3ED3121294D7008CFCDF /* PBXTextBookmark */; + 6BAF3ED612129532008CFCDF /* PBXTextBookmark */ = 6BAF3ED612129532008CFCDF /* PBXTextBookmark */; + 6BAF3EE01212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EE01212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EE11212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EE11212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EE21212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EE21212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EE31212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EE31212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EE41212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EE41212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EE51212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EE51212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EE61212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EE61212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EE71212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EE71212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EE81212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EE81212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EE91212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EE91212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EEA1212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EEA1212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EEB1212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EEB1212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EEC1212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EEC1212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EED1212B890008CFCDF /* PBXTextBookmark */ = 6BAF3EED1212B890008CFCDF /* PBXTextBookmark */; + 6BAF3EF41213D000008CFCDF /* PBXTextBookmark */ = 6BAF3EF41213D000008CFCDF /* PBXTextBookmark */; + 6BAF3EF71213D049008CFCDF /* PBXTextBookmark */ = 6BAF3EF71213D049008CFCDF /* PBXTextBookmark */; + 6BAF3EF91213D0BF008CFCDF /* PBXTextBookmark */ = 6BAF3EF91213D0BF008CFCDF /* PBXTextBookmark */; + 6BAF3EFB1213D156008CFCDF /* PBXTextBookmark */ = 6BAF3EFB1213D156008CFCDF /* PBXTextBookmark */; + 6BAF3EFD1213D1A4008CFCDF /* PBXTextBookmark */ = 6BAF3EFD1213D1A4008CFCDF /* PBXTextBookmark */; + 6BAF3EFF1213D232008CFCDF /* PBXTextBookmark */ = 6BAF3EFF1213D232008CFCDF /* PBXTextBookmark */; + 6BAF3F001213D2A5008CFCDF /* PBXTextBookmark */ = 6BAF3F001213D2A5008CFCDF /* PBXTextBookmark */; + 6BAF3F051213D3AA008CFCDF /* PBXTextBookmark */ = 6BAF3F051213D3AA008CFCDF /* PBXTextBookmark */; + 6BAF3F061213D3AA008CFCDF /* PBXTextBookmark */ = 6BAF3F061213D3AA008CFCDF /* PBXTextBookmark */; + 6BAF3F081213D431008CFCDF /* PBXTextBookmark */ = 6BAF3F081213D431008CFCDF /* PBXTextBookmark */; + 6BAF3F0B1213D450008CFCDF /* PBXTextBookmark */ = 6BAF3F0B1213D450008CFCDF /* PBXTextBookmark */; + 6BAF3F121213D4B5008CFCDF /* PBXTextBookmark */ = 6BAF3F121213D4B5008CFCDF /* PBXTextBookmark */; + 6BAF3F141213D4C2008CFCDF /* PBXTextBookmark */ = 6BAF3F141213D4C2008CFCDF /* PBXTextBookmark */; + 6BAF3F171213D535008CFCDF /* PBXTextBookmark */ = 6BAF3F171213D535008CFCDF /* PBXTextBookmark */; + 6BAF3F191213D556008CFCDF /* PBXTextBookmark */ = 6BAF3F191213D556008CFCDF /* PBXTextBookmark */; + 6BAF3F1C1213D599008CFCDF /* PBXTextBookmark */ = 6BAF3F1C1213D599008CFCDF /* PBXTextBookmark */; + 6BAF3F1E1213D5E4008CFCDF /* PBXTextBookmark */ = 6BAF3F1E1213D5E4008CFCDF /* PBXTextBookmark */; + 6BAF3F201213D5F1008CFCDF /* PBXTextBookmark */ = 6BAF3F201213D5F1008CFCDF /* PBXTextBookmark */; + 6BAF3F211213D5F1008CFCDF /* PBXTextBookmark */ = 6BAF3F211213D5F1008CFCDF /* PBXTextBookmark */; + 6BAF3F361213DED3008CFCDF /* PBXTextBookmark */ = 6BAF3F361213DED3008CFCDF /* PBXTextBookmark */; + 6BAF3F371213DED3008CFCDF /* PBXTextBookmark */ = 6BAF3F371213DED3008CFCDF /* PBXTextBookmark */; + 6BAF3F381213DED3008CFCDF /* PBXTextBookmark */ = 6BAF3F381213DED3008CFCDF /* PBXTextBookmark */; + 6BAF3F391213DED3008CFCDF /* PBXTextBookmark */ = 6BAF3F391213DED3008CFCDF /* PBXTextBookmark */; + 6BAF3F3E1213E00F008CFCDF /* PBXTextBookmark */ = 6BAF3F3E1213E00F008CFCDF /* PBXTextBookmark */; + 6BAF3F3F1213E00F008CFCDF /* PBXTextBookmark */ = 6BAF3F3F1213E00F008CFCDF /* PBXTextBookmark */; + 6BAF3F401213E00F008CFCDF /* PBXTextBookmark */ = 6BAF3F401213E00F008CFCDF /* PBXTextBookmark */; + 6BAF3F411213E00F008CFCDF /* PBXTextBookmark */ = 6BAF3F411213E00F008CFCDF /* PBXTextBookmark */; + 6BAF3F4B1213E0AD008CFCDF /* PBXTextBookmark */ = 6BAF3F4B1213E0AD008CFCDF /* PBXTextBookmark */; + 6BAF3F4C1213E0AD008CFCDF /* PBXTextBookmark */ = 6BAF3F4C1213E0AD008CFCDF /* PBXTextBookmark */; + 6BAF3F4D1213E0AD008CFCDF /* PBXTextBookmark */ = 6BAF3F4D1213E0AD008CFCDF /* PBXTextBookmark */; + 6BAF3F4E1213E0AD008CFCDF /* PBXTextBookmark */ = 6BAF3F4E1213E0AD008CFCDF /* PBXTextBookmark */; + 6BAF3F4F1213E0AD008CFCDF /* PBXTextBookmark */ = 6BAF3F4F1213E0AD008CFCDF /* PBXTextBookmark */; + 6BAF3F521213E1CA008CFCDF /* PBXTextBookmark */ = 6BAF3F521213E1CA008CFCDF /* PBXTextBookmark */; + 6BAF3F531213E1CA008CFCDF /* PBXTextBookmark */ = 6BAF3F531213E1CA008CFCDF /* PBXTextBookmark */; + 6BAF3F541213E1CA008CFCDF /* PBXTextBookmark */ = 6BAF3F541213E1CA008CFCDF /* PBXTextBookmark */; + 6BAF3F551213E1CA008CFCDF /* PBXTextBookmark */ = 6BAF3F551213E1CA008CFCDF /* PBXTextBookmark */; + 6BAF3F561213E1CA008CFCDF /* PBXTextBookmark */ = 6BAF3F561213E1CA008CFCDF /* PBXTextBookmark */; + 6BAF3F571213E1CA008CFCDF /* PBXTextBookmark */ = 6BAF3F571213E1CA008CFCDF /* PBXTextBookmark */; + 6BAF3F581213E1CA008CFCDF /* PBXTextBookmark */ = 6BAF3F581213E1CA008CFCDF /* PBXTextBookmark */; + 6BAF3F5B1213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F5B1213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F5C1213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F5C1213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F5D1213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F5D1213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F5E1213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F5E1213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F5F1213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F5F1213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F601213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F601213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F611213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F611213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F621213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F621213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F631213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F631213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F641213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F641213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F651213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F651213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F661213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F661213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F671213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F671213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F681213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F681213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F691213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F691213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F6A1213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F6A1213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F6B1213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F6B1213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F6C1213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F6C1213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F6D1213E45B008CFCDF /* PBXTextBookmark */ = 6BAF3F6D1213E45B008CFCDF /* PBXTextBookmark */; + 6BAF3F6E1213E496008CFCDF /* PBXTextBookmark */ = 6BAF3F6E1213E496008CFCDF /* PBXTextBookmark */; + 6BAF3F721213E4AA008CFCDF /* PBXTextBookmark */ = 6BAF3F721213E4AA008CFCDF /* PBXTextBookmark */; + 6BAF3F771213E57F008CFCDF /* PBXTextBookmark */ = 6BAF3F771213E57F008CFCDF /* PBXTextBookmark */; + 6BAF3F781213E57F008CFCDF /* PBXTextBookmark */ = 6BAF3F781213E57F008CFCDF /* PBXTextBookmark */; + 6BAF3F791213E57F008CFCDF /* PBXTextBookmark */ = 6BAF3F791213E57F008CFCDF /* PBXTextBookmark */; + 6BAF3F7A1213E57F008CFCDF /* PBXTextBookmark */ = 6BAF3F7A1213E57F008CFCDF /* PBXTextBookmark */; + 6BAF3F7B1213E57F008CFCDF /* PBXTextBookmark */ = 6BAF3F7B1213E57F008CFCDF /* PBXTextBookmark */; + 6BAF3F7D1213E5D4008CFCDF /* PBXTextBookmark */ = 6BAF3F7D1213E5D4008CFCDF /* PBXTextBookmark */; + 6BAF3F7E1213E674008CFCDF /* PBXTextBookmark */ = 6BAF3F7E1213E674008CFCDF /* PBXTextBookmark */; + 6BAF3F7F1213E674008CFCDF /* PBXTextBookmark */ = 6BAF3F7F1213E674008CFCDF /* PBXTextBookmark */; + 6BAF3F801213E674008CFCDF /* PBXTextBookmark */ = 6BAF3F801213E674008CFCDF /* PBXTextBookmark */; + 6BAF3F811213E674008CFCDF /* PBXTextBookmark */ = 6BAF3F811213E674008CFCDF /* PBXTextBookmark */; + 6BAF3F821213E674008CFCDF /* PBXTextBookmark */ = 6BAF3F821213E674008CFCDF /* PBXTextBookmark */; + 6BAF3F901213E715008CFCDF /* PBXTextBookmark */ = 6BAF3F901213E715008CFCDF /* PBXTextBookmark */; + 6BAF3F911213E715008CFCDF /* PBXTextBookmark */ = 6BAF3F911213E715008CFCDF /* PBXTextBookmark */; + 6BAF3F921213E715008CFCDF /* PBXTextBookmark */ = 6BAF3F921213E715008CFCDF /* PBXTextBookmark */; + 6BAF3F931213E715008CFCDF /* PBXTextBookmark */ = 6BAF3F931213E715008CFCDF /* PBXTextBookmark */; + 6BAF3F941213E715008CFCDF /* PBXTextBookmark */ = 6BAF3F941213E715008CFCDF /* PBXTextBookmark */; + 6BAF3F951213E715008CFCDF /* PBXTextBookmark */ = 6BAF3F951213E715008CFCDF /* PBXTextBookmark */; + 6BAF3F961213E715008CFCDF /* PBXTextBookmark */ = 6BAF3F961213E715008CFCDF /* PBXTextBookmark */; + 6BAF3F9D1213E7A1008CFCDF /* PBXTextBookmark */ = 6BAF3F9D1213E7A1008CFCDF /* PBXTextBookmark */; + 6BAF3F9E1213E7A1008CFCDF /* PBXTextBookmark */ = 6BAF3F9E1213E7A1008CFCDF /* PBXTextBookmark */; + 6BAF3F9F1213E7A1008CFCDF /* PBXTextBookmark */ = 6BAF3F9F1213E7A1008CFCDF /* PBXTextBookmark */; + 6BAF3FA01213E7A1008CFCDF /* PBXTextBookmark */ = 6BAF3FA01213E7A1008CFCDF /* PBXTextBookmark */; + 6BAF3FA11213E7A1008CFCDF /* PBXTextBookmark */ = 6BAF3FA11213E7A1008CFCDF /* PBXTextBookmark */; + 6BAF3FA41213F545008CFCDF /* PBXTextBookmark */ = 6BAF3FA41213F545008CFCDF /* PBXTextBookmark */; + 6BAF3FA51213F545008CFCDF /* PBXTextBookmark */ = 6BAF3FA51213F545008CFCDF /* PBXTextBookmark */; + 6BAF3FA61213F545008CFCDF /* PBXTextBookmark */ = 6BAF3FA61213F545008CFCDF /* PBXTextBookmark */; + 6BAF3FA71213F545008CFCDF /* PBXTextBookmark */ = 6BAF3FA71213F545008CFCDF /* PBXTextBookmark */; + 6BAF3FA81213F545008CFCDF /* PBXTextBookmark */ = 6BAF3FA81213F545008CFCDF /* PBXTextBookmark */; + 6BAF3FB41213F650008CFCDF /* PBXTextBookmark */ = 6BAF3FB41213F650008CFCDF /* PBXTextBookmark */; + 6BAF3FB51213F650008CFCDF /* PBXTextBookmark */ = 6BAF3FB51213F650008CFCDF /* PBXTextBookmark */; + 6BAF3FB61213F650008CFCDF /* PBXTextBookmark */ = 6BAF3FB61213F650008CFCDF /* PBXTextBookmark */; + 6BAF3FB71213F650008CFCDF /* PBXTextBookmark */ = 6BAF3FB71213F650008CFCDF /* PBXTextBookmark */; + 6BAF3FB81213F650008CFCDF /* PBXTextBookmark */ = 6BAF3FB81213F650008CFCDF /* PBXTextBookmark */; + 6BAF3FBD1213FABE008CFCDF /* PBXTextBookmark */ = 6BAF3FBD1213FABE008CFCDF /* PBXTextBookmark */; + 6BAF3FBE1213FABE008CFCDF /* PBXTextBookmark */ = 6BAF3FBE1213FABE008CFCDF /* PBXTextBookmark */; + 6BAF3FBF1213FABE008CFCDF /* PBXTextBookmark */ = 6BAF3FBF1213FABE008CFCDF /* PBXTextBookmark */; + 6BAF3FC01213FABE008CFCDF /* PBXTextBookmark */ = 6BAF3FC01213FABE008CFCDF /* PBXTextBookmark */; + 6BAF3FC11213FABE008CFCDF /* PBXTextBookmark */ = 6BAF3FC11213FABE008CFCDF /* PBXTextBookmark */; + 6BAF3FC21213FABE008CFCDF /* PBXTextBookmark */ = 6BAF3FC21213FABE008CFCDF /* PBXTextBookmark */; + 6BAF3FC51213FAED008CFCDF /* PBXTextBookmark */ = 6BAF3FC51213FAED008CFCDF /* PBXTextBookmark */; + 6BAF3FD61213FB13008CFCDF /* PBXTextBookmark */ = 6BAF3FD61213FB13008CFCDF /* PBXTextBookmark */; + 6BAF3FD71213FB36008CFCDF /* PBXTextBookmark */ = 6BAF3FD71213FB36008CFCDF /* PBXTextBookmark */; + 6BAF3FDB1213FB7C008CFCDF /* PBXTextBookmark */ = 6BAF3FDB1213FB7C008CFCDF /* PBXTextBookmark */; + 6BAF3FDC1213FBB3008CFCDF /* PBXTextBookmark */ = 6BAF3FDC1213FBB3008CFCDF /* PBXTextBookmark */; + 6BAF3FDF1213FC08008CFCDF /* PBXTextBookmark */ = 6BAF3FDF1213FC08008CFCDF /* PBXTextBookmark */; + 6BAF3FE01213FC08008CFCDF /* PBXTextBookmark */ = 6BAF3FE01213FC08008CFCDF /* PBXTextBookmark */; + 6BAF3FE11213FC0D008CFCDF /* PBXTextBookmark */ = 6BAF3FE11213FC0D008CFCDF /* PBXTextBookmark */; + 6BAF3FE41213FC74008CFCDF /* PBXTextBookmark */ = 6BAF3FE41213FC74008CFCDF /* PBXTextBookmark */; + 6BAF3FE51213FCFD008CFCDF /* PBXTextBookmark */ = 6BAF3FE51213FCFD008CFCDF /* PBXTextBookmark */; + 6BAF3FE61213FDE7008CFCDF /* PBXTextBookmark */ = 6BAF3FE61213FDE7008CFCDF /* PBXTextBookmark */; + 6BAF3FEC1213FE4F008CFCDF /* PBXTextBookmark */ = 6BAF3FEC1213FE4F008CFCDF /* PBXTextBookmark */; + 6BAF3FED1213FE4F008CFCDF /* PBXTextBookmark */ = 6BAF3FED1213FE4F008CFCDF /* PBXTextBookmark */; + 6BAF3FF01213FE87008CFCDF /* PBXTextBookmark */ = 6BAF3FF01213FE87008CFCDF /* PBXTextBookmark */; + 6BAF3FF41213FF23008CFCDF /* PBXTextBookmark */ = 6BAF3FF41213FF23008CFCDF /* PBXTextBookmark */; + 6BAF3FFC121401AB008CFCDF /* PBXTextBookmark */ = 6BAF3FFC121401AB008CFCDF /* PBXTextBookmark */; + 6BAF3FFD121401AB008CFCDF /* PBXTextBookmark */ = 6BAF3FFD121401AB008CFCDF /* PBXTextBookmark */; + 6BAF3FFE121401AB008CFCDF /* PBXTextBookmark */ = 6BAF3FFE121401AB008CFCDF /* PBXTextBookmark */; + 6BAF3FFF121401AB008CFCDF /* PBXTextBookmark */ = 6BAF3FFF121401AB008CFCDF /* PBXTextBookmark */; + 6BAF4002121401F9008CFCDF /* PBXTextBookmark */ = 6BAF4002121401F9008CFCDF /* PBXTextBookmark */; + 6BAF400B1214025A008CFCDF /* PBXTextBookmark */ = 6BAF400B1214025A008CFCDF /* PBXTextBookmark */; + 6BAF400E12140296008CFCDF /* PBXTextBookmark */ = 6BAF400E12140296008CFCDF /* PBXTextBookmark */; + 6BAF40171214034B008CFCDF /* PBXTextBookmark */ = 6BAF40171214034B008CFCDF /* PBXTextBookmark */; + 6BAF4018121404C7008CFCDF /* PBXTextBookmark */ = 6BAF4018121404C7008CFCDF /* PBXTextBookmark */; + 6BAF4019121404D2008CFCDF /* PBXTextBookmark */ = 6BAF4019121404D2008CFCDF /* PBXTextBookmark */; + 6BAF401C1214064F008CFCDF /* PBXTextBookmark */ = 6BAF401C1214064F008CFCDF /* PBXTextBookmark */; + 6BAF401D1214064F008CFCDF /* PBXTextBookmark */ = 6BAF401D1214064F008CFCDF /* PBXTextBookmark */; + 6BAF401E1214064F008CFCDF /* PBXTextBookmark */ = 6BAF401E1214064F008CFCDF /* PBXTextBookmark */; + 6BAF401F1214064F008CFCDF /* PBXTextBookmark */ = 6BAF401F1214064F008CFCDF /* PBXTextBookmark */; + 6BAF40201214064F008CFCDF /* PBXTextBookmark */ = 6BAF40201214064F008CFCDF /* PBXTextBookmark */; + 6BAF4023121406E6008CFCDF /* PBXTextBookmark */ = 6BAF4023121406E6008CFCDF /* PBXTextBookmark */; + 6BAF4028121407D7008CFCDF /* PBXTextBookmark */ = 6BAF4028121407D7008CFCDF /* PBXTextBookmark */; + 6BAF402A121407FD008CFCDF /* PBXTextBookmark */ = 6BAF402A121407FD008CFCDF /* PBXTextBookmark */; + 6BAF402E12140899008CFCDF /* PBXTextBookmark */ = 6BAF402E12140899008CFCDF /* PBXTextBookmark */; + 6BAF402F12140899008CFCDF /* PBXTextBookmark */ = 6BAF402F12140899008CFCDF /* PBXTextBookmark */; + 6BAF403012140899008CFCDF /* PBXTextBookmark */ = 6BAF403012140899008CFCDF /* PBXTextBookmark */; + 6BAF403112140899008CFCDF /* PBXTextBookmark */ = 6BAF403112140899008CFCDF /* PBXTextBookmark */; + 6BAF403212140899008CFCDF /* PBXTextBookmark */ = 6BAF403212140899008CFCDF /* PBXTextBookmark */; + 6BAF403312140899008CFCDF /* PBXTextBookmark */ = 6BAF403312140899008CFCDF /* PBXTextBookmark */; + 6BAF4039121408E3008CFCDF /* PBXTextBookmark */ = 6BAF4039121408E3008CFCDF /* PBXTextBookmark */; + 6BAF403A121408E3008CFCDF /* PBXTextBookmark */ = 6BAF403A121408E3008CFCDF /* PBXTextBookmark */; + 6BAF403B121408E3008CFCDF /* PBXTextBookmark */ = 6BAF403B121408E3008CFCDF /* PBXTextBookmark */; + 6BAF403C121408E3008CFCDF /* PBXTextBookmark */ = 6BAF403C121408E3008CFCDF /* PBXTextBookmark */; + 6BAF403D121408E3008CFCDF /* PBXTextBookmark */ = 6BAF403D121408E3008CFCDF /* PBXTextBookmark */; + 6BAF4043121409B1008CFCDF /* PBXTextBookmark */ = 6BAF4043121409B1008CFCDF /* PBXTextBookmark */; + 6BAF404F12140B4E008CFCDF /* PBXTextBookmark */ = 6BAF404F12140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405012140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405012140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405112140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405112140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405212140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405212140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405312140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405312140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405412140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405412140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405512140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405512140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405612140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405612140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405712140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405712140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405812140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405812140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405912140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405912140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405A12140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405A12140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405B12140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405B12140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405C12140B4E008CFCDF /* PBXTextBookmark */ = 6BAF405C12140B4E008CFCDF /* PBXTextBookmark */; + 6BAF405F12140C14008CFCDF /* PBXTextBookmark */ = 6BAF405F12140C14008CFCDF /* PBXTextBookmark */; + 6BAF406212140CC8008CFCDF /* PBXTextBookmark */ = 6BAF406212140CC8008CFCDF /* PBXTextBookmark */; + 6BAF406312140E6B008CFCDF /* PBXTextBookmark */ = 6BAF406312140E6B008CFCDF /* PBXTextBookmark */; + 6BAF406412140E9E008CFCDF /* PBXTextBookmark */ = 6BAF406412140E9E008CFCDF /* PBXTextBookmark */; + 6BAF406512140EA7008CFCDF /* PBXTextBookmark */ = 6BAF406512140EA7008CFCDF /* PBXTextBookmark */; + 6BAF406812141045008CFCDF /* PBXTextBookmark */ = 6BAF406812141045008CFCDF /* PBXTextBookmark */; + 6BAF406A12141063008CFCDF /* PBXTextBookmark */ = 6BAF406A12141063008CFCDF /* PBXTextBookmark */; + 6BAF406F12141245008CFCDF /* PBXTextBookmark */ = 6BAF406F12141245008CFCDF /* PBXTextBookmark */; + 6BAF407012141245008CFCDF /* PBXTextBookmark */ = 6BAF407012141245008CFCDF /* PBXTextBookmark */; + 6BAF407112141245008CFCDF /* PBXTextBookmark */ = 6BAF407112141245008CFCDF /* PBXTextBookmark */; + 6BAF407212141245008CFCDF /* PBXTextBookmark */ = 6BAF407212141245008CFCDF /* PBXTextBookmark */; + 6BAF407312141245008CFCDF /* PBXTextBookmark */ = 6BAF407312141245008CFCDF /* PBXTextBookmark */; + 6BAF407412141245008CFCDF /* PBXTextBookmark */ = 6BAF407412141245008CFCDF /* PBXTextBookmark */; + 6BAF407512141245008CFCDF /* PBXTextBookmark */ = 6BAF407512141245008CFCDF /* PBXTextBookmark */; + 6BAF407612141245008CFCDF /* PBXTextBookmark */ = 6BAF407612141245008CFCDF /* PBXTextBookmark */; + 6BAF407712141245008CFCDF /* PBXTextBookmark */ = 6BAF407712141245008CFCDF /* PBXTextBookmark */; + 6BAF407912141269008CFCDF /* PBXTextBookmark */ = 6BAF407912141269008CFCDF /* PBXTextBookmark */; + 6BAF407B12141277008CFCDF /* PBXTextBookmark */ = 6BAF407B12141277008CFCDF /* PBXTextBookmark */; + 6BAF407D1214129F008CFCDF /* PBXTextBookmark */ = 6BAF407D1214129F008CFCDF /* PBXTextBookmark */; + 6BAF407F121412CA008CFCDF /* PBXTextBookmark */ = 6BAF407F121412CA008CFCDF /* PBXTextBookmark */; + 6BAF408112141303008CFCDF /* PBXTextBookmark */ = 6BAF408112141303008CFCDF /* PBXTextBookmark */; + 6BAF408212141303008CFCDF /* PBXTextBookmark */ = 6BAF408212141303008CFCDF /* PBXTextBookmark */; + 6BAF408312141303008CFCDF /* PBXTextBookmark */ = 6BAF408312141303008CFCDF /* PBXTextBookmark */; + 6BAF408412141303008CFCDF /* PBXTextBookmark */ = 6BAF408412141303008CFCDF /* PBXTextBookmark */; + 6BAF408512141303008CFCDF /* PBXTextBookmark */ = 6BAF408512141303008CFCDF /* PBXTextBookmark */; + 6BAF40871214134E008CFCDF /* PBXTextBookmark */ = 6BAF40871214134E008CFCDF /* PBXTextBookmark */; + 6BAF408B121413DA008CFCDF /* PBXTextBookmark */ = 6BAF408B121413DA008CFCDF /* PBXTextBookmark */; + 6BAF408F12141771008CFCDF /* PBXTextBookmark */ = 6BAF408F12141771008CFCDF /* PBXTextBookmark */; + 6BAF409312142142008CFCDF /* PBXTextBookmark */ = 6BAF409312142142008CFCDF /* PBXTextBookmark */; + 6BAF409412142142008CFCDF /* PBXTextBookmark */ = 6BAF409412142142008CFCDF /* PBXTextBookmark */; + 6BAF409512142142008CFCDF /* PBXTextBookmark */ = 6BAF409512142142008CFCDF /* PBXTextBookmark */; + 6BAF409612142142008CFCDF /* PBXTextBookmark */ = 6BAF409612142142008CFCDF /* PBXTextBookmark */; + 6BAF409712142142008CFCDF /* PBXTextBookmark */ = 6BAF409712142142008CFCDF /* PBXTextBookmark */; + 6BAF409812142142008CFCDF /* PBXTextBookmark */ = 6BAF409812142142008CFCDF /* PBXTextBookmark */; + 6BAF409912142142008CFCDF /* PBXTextBookmark */ = 6BAF409912142142008CFCDF /* PBXTextBookmark */; + 6BAF409A12142142008CFCDF /* PBXTextBookmark */ = 6BAF409A12142142008CFCDF /* PBXTextBookmark */; + 6BAF409B12142142008CFCDF /* PBXTextBookmark */ = 6BAF409B12142142008CFCDF /* PBXTextBookmark */; + 6BAF409C12142142008CFCDF /* PBXTextBookmark */ = 6BAF409C12142142008CFCDF /* PBXTextBookmark */; + 6BAF409D12142142008CFCDF /* PBXTextBookmark */ = 6BAF409D12142142008CFCDF /* PBXTextBookmark */; + 6BAF409E12142142008CFCDF /* PBXTextBookmark */ = 6BAF409E12142142008CFCDF /* PBXTextBookmark */; + 6BAF409F12142142008CFCDF /* PBXTextBookmark */ = 6BAF409F12142142008CFCDF /* PBXTextBookmark */; + 6BAF40A1121421E8008CFCDF /* PBXTextBookmark */ = 6BAF40A1121421E8008CFCDF /* PBXTextBookmark */; + 6BAF40A412142254008CFCDF /* PBXTextBookmark */ = 6BAF40A412142254008CFCDF /* PBXTextBookmark */; + 6BAF40A512142254008CFCDF /* PBXTextBookmark */ = 6BAF40A512142254008CFCDF /* PBXTextBookmark */; + 6BAF40A612142254008CFCDF /* PBXTextBookmark */ = 6BAF40A612142254008CFCDF /* PBXTextBookmark */; + 6BAF40A712142254008CFCDF /* PBXTextBookmark */ = 6BAF40A712142254008CFCDF /* PBXTextBookmark */; + 6BAF40A812142254008CFCDF /* PBXTextBookmark */ = 6BAF40A812142254008CFCDF /* PBXTextBookmark */; + 6BAF40AB1214239C008CFCDF /* PBXTextBookmark */ = 6BAF40AB1214239C008CFCDF /* PBXTextBookmark */; + 6BAF40AC1214239C008CFCDF /* PBXTextBookmark */ = 6BAF40AC1214239C008CFCDF /* PBXTextBookmark */; + 6BAF40AD1214239C008CFCDF /* PBXTextBookmark */ = 6BAF40AD1214239C008CFCDF /* PBXTextBookmark */; + 6BAF40AE1214239C008CFCDF /* PBXTextBookmark */ = 6BAF40AE1214239C008CFCDF /* PBXTextBookmark */; + 6BAF40AF1214239C008CFCDF /* PBXTextBookmark */ = 6BAF40AF1214239C008CFCDF /* PBXTextBookmark */; + 6BAF40B01214239C008CFCDF /* PBXTextBookmark */ = 6BAF40B01214239C008CFCDF /* PBXTextBookmark */; + 6BAF40B11214239C008CFCDF /* PBXTextBookmark */ = 6BAF40B11214239C008CFCDF /* PBXTextBookmark */; + 6BAF40B21214239C008CFCDF /* PBXTextBookmark */ = 6BAF40B21214239C008CFCDF /* PBXTextBookmark */; + 6BAF40B31214239C008CFCDF /* PBXTextBookmark */ = 6BAF40B31214239C008CFCDF /* PBXTextBookmark */; + 6BAF40B712142407008CFCDF /* PBXTextBookmark */ = 6BAF40B712142407008CFCDF /* PBXTextBookmark */; + 6BAF40B8121425BA008CFCDF /* PBXTextBookmark */ = 6BAF40B8121425BA008CFCDF /* PBXTextBookmark */; 6BBB4AA1115B4F3400CF791D = 6BBB4AA1115B4F3400CF791D /* PBXTextBookmark */; 6BBB4AA5115B4F3400CF791D = 6BBB4AA5115B4F3400CF791D /* PBXTextBookmark */; 6BBB4AA6115B4F3400CF791D = 6BBB4AA6115B4F3400CF791D /* PBXTextBookmark */; @@ -1024,7 +1633,7 @@ ignoreCount = 0; lineNumber = 1398; location = Recast; - modificationTime = 303129300.463188; + modificationTime = 303302369.986618; state = 1; }; 6B1185F41006895B0018F96F /* DetourNode.cpp */ = { @@ -1043,23 +1652,23 @@ }; 6B1185FC10068B040018F96F /* DetourCommon.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 3008}}"; - sepNavSelRange = "{5932, 0}"; - sepNavVisRange = "{4853, 1278}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 3456}}"; + sepNavSelRange = "{6467, 87}"; + sepNavVisRange = "{5502, 1279}"; }; }; 6B1185FD10068B150018F96F /* DetourCommon.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 4960}}"; - sepNavSelRange = "{7557, 19}"; - sepNavVisRange = "{7141, 890}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 4976}}"; + sepNavSelRange = "{7739, 0}"; + sepNavVisRange = "{7175, 888}"; }; }; 6B137C6C0F7FCBBB00459200 /* imgui.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1181, 9424}}"; - sepNavSelRange = "{1402, 0}"; - sepNavVisRange = "{920, 845}"; + sepNavIntBoundsRect = "{{0, 0}, {1153, 9520}}"; + sepNavSelRange = "{13622, 0}"; + sepNavVisRange = "{12920, 1082}"; }; }; 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */ = { @@ -1071,16 +1680,16 @@ }; 6B137C6E0F7FCBBB00459200 /* SDLMain.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1195, 6272}}"; - sepNavSelRange = "{9032, 0}"; - sepNavVisRange = "{8664, 632}"; + sepNavIntBoundsRect = "{{0, 0}, {1112, 6464}}"; + sepNavSelRange = "{11212, 0}"; + sepNavVisRange = "{11026, 190}"; }; }; 6B137C7A0F7FCBE400459200 /* imgui.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 1328}}"; - sepNavSelRange = "{1610, 0}"; - sepNavVisRange = "{1458, 745}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 1392}}"; + sepNavSelRange = "{1807, 0}"; + sepNavVisRange = "{1124, 1082}"; }; }; 6B137C7B0F7FCBE400459200 /* MeshLoaderObj.h */ = { @@ -1181,23 +1790,23 @@ }; 6B25B6100FFA62AD004F1BC4 /* Sample.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 2448}}"; - sepNavSelRange = "{2141, 0}"; - sepNavVisRange = "{1757, 840}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 2496}}"; + sepNavSelRange = "{4167, 0}"; + sepNavVisRange = "{3592, 1027}"; }; }; 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {873, 4656}}"; - sepNavSelRange = "{4440, 0}"; - sepNavVisRange = "{4055, 869}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 4096}}"; + sepNavSelRange = "{6023, 0}"; + sepNavVisRange = "{5681, 547}"; }; }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 14208}}"; - sepNavSelRange = "{10947, 0}"; - sepNavVisRange = "{10104, 1133}"; + sepNavIntBoundsRect = "{{0, 0}, {1112, 15120}}"; + sepNavSelRange = "{21475, 0}"; + sepNavVisRange = "{21237, 347}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; @@ -1211,9 +1820,9 @@ }; 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {894, 16352}}"; - sepNavSelRange = "{17761, 0}"; - sepNavVisRange = "{17194, 1322}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 17616}}"; + sepNavSelRange = "{3009, 0}"; + sepNavVisRange = "{2664, 657}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; @@ -1239,16 +1848,16 @@ }; 6B324C64111C5D9A00EBD2FD /* ConvexVolumeTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 784}}"; - sepNavSelRange = "{677, 0}"; - sepNavVisRange = "{207, 906}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 880}}"; + sepNavSelRange = "{1615, 0}"; + sepNavVisRange = "{1049, 704}"; }; }; 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 4416}}"; - sepNavSelRange = "{4519, 0}"; - sepNavVisRange = "{4086, 755}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 4592}}"; + sepNavSelRange = "{5615, 57}"; + sepNavVisRange = "{5555, 485}"; }; }; 6B4214D911803923006C347B /* PBXTextBookmark */ = { @@ -1295,7 +1904,7 @@ ignoreCount = 0; lineNumber = 413; location = Recast; - modificationTime = 303129300.462867; + modificationTime = 303302369.986238; state = 1; }; 6B4216881180725E006C347B /* PBXTextBookmark */ = { @@ -1303,7 +1912,7 @@ fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; name = "DetourDebugDraw.cpp: 460"; rLen = 0; - rLoc = 13978; + rLoc = 13976; rType = 0; vrLen = 854; vrLoc = 13186; @@ -1317,9 +1926,9 @@ }; 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1195, 6976}}"; - sepNavSelRange = "{8103, 0}"; - sepNavVisRange = "{7477, 562}"; + sepNavIntBoundsRect = "{{0, 0}, {1112, 6800}}"; + sepNavSelRange = "{8069, 0}"; + sepNavVisRange = "{9857, 457}"; }; }; 6B555DF6100B273500247EA3 /* stb_truetype.h */ = { @@ -1364,7 +1973,7 @@ fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; name = "DetourDebugDraw.cpp: 441"; rLen = 0; - rLoc = 12965; + rLoc = 12963; rType = 0; vrLen = 1068; vrLoc = 12374; @@ -1399,16 +2008,16 @@ }; 6B8036AC113BAABE005ED67B /* Sample_Debug.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 928}}"; - sepNavSelRange = "{1223, 7}"; - sepNavVisRange = "{952, 758}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 960}}"; + sepNavSelRange = "{1508, 0}"; + sepNavVisRange = "{1270, 566}"; }; }; 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 6064}}"; - sepNavSelRange = "{5102, 0}"; - sepNavVisRange = "{4305, 853}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 6256}}"; + sepNavSelRange = "{7999, 0}"; + sepNavVisRange = "{7722, 338}"; }; }; 6B8632970F78114600E2684A /* Recast */ = { @@ -1418,7 +2027,7 @@ argumentStrings = ( ); autoAttachOnCrash = 1; - breakpointsEnabled = 1; + breakpointsEnabled = 0; configStateDict = { }; customDataFormattersEnabled = 1; @@ -1462,9 +2071,9 @@ }; 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {894, 47616}}"; - sepNavSelRange = "{75913, 0}"; - sepNavVisRange = "{75633, 873}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 49024}}"; + sepNavSelRange = "{58027, 198}"; + sepNavVisRange = "{57687, 976}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; @@ -1477,9 +2086,9 @@ }; 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 10048}}"; - sepNavSelRange = "{3764, 0}"; - sepNavVisRange = "{2913, 1074}"; + sepNavIntBoundsRect = "{{0, 0}, {845, 9200}}"; + sepNavSelRange = "{15264, 0}"; + sepNavVisRange = "{14423, 1706}"; }; }; 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */ = { @@ -1534,7 +2143,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 638"; rLen = 0; - rLoc = 19991; + rLoc = 20100; rType = 0; vrLen = 495; vrLoc = 19531; @@ -1558,9 +2167,9 @@ }; 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 18608}}"; - sepNavSelRange = "{19837, 0}"; - sepNavVisRange = "{19553, 1334}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 19560}}"; + sepNavSelRange = "{2354, 0}"; + sepNavVisRange = "{1908, 595}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; @@ -1589,7 +2198,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 711"; rLen = 0; - rLoc = 20541; + rLoc = 20717; rType = 0; vrLen = 1336; vrLoc = 19893; @@ -1854,9 +2463,9 @@ }; 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {908, 11392}}"; - sepNavSelRange = "{9260, 0}"; - sepNavVisRange = "{8896, 727}"; + sepNavIntBoundsRect = "{{0, 0}, {887, 11584}}"; + sepNavSelRange = "{15816, 0}"; + sepNavVisRange = "{15060, 1054}"; }; }; 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */ = { @@ -1911,7 +2520,7 @@ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; name = "ConvexVolumeTool.cpp: 180"; rLen = 0; - rLoc = 4568; + rLoc = 4584; rType = 0; vrLen = 635; vrLoc = 4086; @@ -1921,7 +2530,7 @@ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; name = "ConvexVolumeTool.cpp: 178"; rLen = 0; - rLoc = 4519; + rLoc = 4535; rType = 0; vrLen = 637; vrLoc = 4086; @@ -1931,7 +2540,7 @@ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; name = "ConvexVolumeTool.cpp: 178"; rLen = 0; - rLoc = 4519; + rLoc = 4535; rType = 0; vrLen = 755; vrLoc = 4086; @@ -1978,7 +2587,7 @@ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; name = "ConvexVolumeTool.cpp: 178"; rLen = 0; - rLoc = 4519; + rLoc = 4535; rType = 0; vrLen = 755; vrLoc = 4086; @@ -2156,7 +2765,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1058"; rLen = 0; - rLoc = 29201; + rLoc = 29271; rType = 0; vrLen = 1182; vrLoc = 28959; @@ -2176,7 +2785,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 632"; rLen = 9; - rLoc = 18154; + rLoc = 18330; rType = 0; vrLen = 1041; vrLoc = 17720; @@ -2186,7 +2795,7 @@ fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; name = "NavMeshTesterTool.h: 92"; rLen = 19; - rLoc = 2627; + rLoc = 2687; rType = 0; vrLen = 902; vrLoc = 1879; @@ -2196,7 +2805,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1057"; rLen = 0; - rLoc = 29169; + rLoc = 29239; rType = 0; vrLen = 1182; vrLoc = 28959; @@ -2206,7 +2815,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1057"; rLen = 0; - rLoc = 29169; + rLoc = 29239; rType = 0; vrLen = 1182; vrLoc = 28959; @@ -2216,7 +2825,7 @@ fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; name = "NavMeshTesterTool.h: 92"; rLen = 19; - rLoc = 2627; + rLoc = 2687; rType = 0; vrLen = 902; vrLoc = 1879; @@ -2226,7 +2835,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1111"; rLen = 0; - rLoc = 33224; + rLoc = 33400; rType = 0; vrLen = 1395; vrLoc = 32716; @@ -2246,7 +2855,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 632"; rLen = 9; - rLoc = 18154; + rLoc = 18330; rType = 0; vrLen = 1041; vrLoc = 17720; @@ -2256,7 +2865,7 @@ fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; name = "NavMeshTesterTool.h: 92"; rLen = 19; - rLoc = 2627; + rLoc = 2687; rType = 0; vrLen = 902; vrLoc = 1879; @@ -2266,7 +2875,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1123"; rLen = 0; - rLoc = 32766; + rLoc = 32836; rType = 0; vrLen = 883; vrLoc = 30899; @@ -2276,7 +2885,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1138"; rLen = 0; - rLoc = 32766; + rLoc = 32836; rType = 0; vrLen = 769; vrLoc = 31570; @@ -2286,7 +2895,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1136"; rLen = 0; - rLoc = 32766; + rLoc = 32836; rType = 0; vrLen = 777; vrLoc = 31570; @@ -2296,7 +2905,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1159"; rLen = 0; - rLoc = 32766; + rLoc = 32836; rType = 0; vrLen = 607; vrLoc = 31801; @@ -2306,7 +2915,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1165"; rLen = 0; - rLoc = 32766; + rLoc = 32836; rType = 0; vrLen = 170; vrLoc = 32238; @@ -2316,7 +2925,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1182"; rLen = 0; - rLoc = 32766; + rLoc = 32836; rType = 0; vrLen = 60; vrLoc = 32348; @@ -2326,7 +2935,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1168"; rLen = 0; - rLoc = 32766; + rLoc = 32836; rType = 0; vrLen = 24; vrLoc = 32384; @@ -2386,7 +2995,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 426"; rLen = 0; - rLoc = 13297; + rLoc = 13406; rType = 0; vrLen = 1266; vrLoc = 12726; @@ -2406,7 +3015,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 443"; rLen = 0; - rLoc = 13908; + rLoc = 14017; rType = 0; vrLen = 1462; vrLoc = 12726; @@ -2416,7 +3025,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 443"; rLen = 0; - rLoc = 13908; + rLoc = 14017; rType = 0; vrLen = 680; vrLoc = 13461; @@ -2436,7 +3045,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 469"; rLen = 0; - rLoc = 14735; + rLoc = 14844; rType = 0; vrLen = 1108; vrLoc = 14141; @@ -2456,7 +3065,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 468"; rLen = 0; - rLoc = 14635; + rLoc = 14744; rType = 0; vrLen = 977; vrLoc = 14141; @@ -2466,7 +3075,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 476"; rLen = 0; - rLoc = 14814; + rLoc = 14923; rType = 0; vrLen = 977; vrLoc = 14141; @@ -2476,7 +3085,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 476"; rLen = 0; - rLoc = 14814; + rLoc = 14923; rType = 0; vrLen = 1128; vrLoc = 14335; @@ -2486,7 +3095,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 476"; rLen = 0; - rLoc = 14814; + rLoc = 14923; rType = 0; vrLen = 436; vrLoc = 14141; @@ -2496,7 +3105,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 476"; rLen = 0; - rLoc = 14814; + rLoc = 14923; rType = 0; vrLen = 1217; vrLoc = 13649; @@ -2516,7 +3125,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 476"; rLen = 0; - rLoc = 14814; + rLoc = 14923; rType = 0; vrLen = 1217; vrLoc = 13649; @@ -2576,7 +3185,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 527"; rLen = 0; - rLoc = 16325; + rLoc = 16434; rType = 0; vrLen = 741; vrLoc = 15719; @@ -2656,7 +3265,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 530"; rLen = 0; - rLoc = 16363; + rLoc = 16472; rType = 0; vrLen = 710; vrLoc = 15823; @@ -2666,7 +3275,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 527"; rLen = 84; - rLoc = 16277; + rLoc = 16386; rType = 0; vrLen = 787; vrLoc = 15823; @@ -2686,7 +3295,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 527"; rLen = 84; - rLoc = 16277; + rLoc = 16386; rType = 0; vrLen = 787; vrLoc = 15823; @@ -2746,7 +3355,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 367"; rLen = 18; - rLoc = 11104; + rLoc = 11213; rType = 0; vrLen = 1339; vrLoc = 10423; @@ -2786,7 +3395,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 527"; rLen = 84; - rLoc = 16277; + rLoc = 16386; rType = 0; vrLen = 710; vrLoc = 15823; @@ -2806,7 +3415,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 367"; rLen = 18; - rLoc = 11104; + rLoc = 11213; rType = 0; vrLen = 1339; vrLoc = 10423; @@ -2836,7 +3445,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 156"; rLen = 8; - rLoc = 4036; + rLoc = 4686; rType = 0; vrLen = 900; vrLoc = 3720; @@ -2876,7 +3485,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 211"; rLen = 0; - rLoc = 6106; + rLoc = 6756; rType = 0; vrLen = 1321; vrLoc = 4620; @@ -2896,7 +3505,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 211"; rLen = 0; - rLoc = 6106; + rLoc = 6756; rType = 0; vrLen = 1347; vrLoc = 4598; @@ -2916,7 +3525,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 196"; rLen = 0; - rLoc = 5334; + rLoc = 5984; rType = 0; vrLen = 1288; vrLoc = 4762; @@ -2936,7 +3545,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 156"; rLen = 8; - rLoc = 4036; + rLoc = 4686; rType = 0; vrLen = 900; vrLoc = 3720; @@ -3064,7 +3673,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 476"; rLen = 0; - rLoc = 14814; + rLoc = 14923; rType = 0; vrLen = 436; vrLoc = 14141; @@ -3204,7 +3813,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 210"; rLen = 0; - rLoc = 6106; + rLoc = 6756; rType = 0; vrLen = 1415; vrLoc = 4527; @@ -3234,7 +3843,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 156"; rLen = 8; - rLoc = 4036; + rLoc = 4686; rType = 0; vrLen = 719; vrLoc = 3718; @@ -3264,7 +3873,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 210"; rLen = 0; - rLoc = 6106; + rLoc = 6756; rType = 0; vrLen = 1415; vrLoc = 4527; @@ -3654,7 +4263,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 204"; rLen = 78; - rLoc = 5622; + rLoc = 6272; rType = 0; vrLen = 1469; vrLoc = 4527; @@ -3694,7 +4303,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 204"; rLen = 78; - rLoc = 5622; + rLoc = 6272; rType = 0; vrLen = 1469; vrLoc = 4527; @@ -4044,7 +4653,7 @@ fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; name = "DetourDebugDraw.cpp: 453"; rLen = 0; - rLoc = 13297; + rLoc = 13295; rType = 0; vrLen = 537; vrLoc = 13882; @@ -4054,7 +4663,7 @@ comments = "warning: unused variable 'spanCount'"; fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; rLen = 0; - rLoc = 811; + rLoc = 818; rType = 1; }; 6BAF393A120FEF30008CFCDF /* PBXTextBookmark */ = { @@ -4092,7 +4701,7 @@ fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; name = "DetourDebugDraw.cpp: 453"; rLen = 0; - rLoc = 13297; + rLoc = 13295; rType = 0; vrLen = 537; vrLoc = 13882; @@ -4102,7 +4711,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 815"; rLen = 0; - rLoc = 20514; + rLoc = 20686; rType = 0; vrLen = 548; vrLoc = 20537; @@ -4112,7 +4721,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 815"; rLen = 0; - rLoc = 20514; + rLoc = 20686; rType = 0; vrLen = 688; vrLoc = 20537; @@ -4132,7 +4741,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 815"; rLen = 0; - rLoc = 20514; + rLoc = 20686; rType = 0; vrLen = 688; vrLoc = 20537; @@ -4378,7 +4987,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 212"; rLen = 0; - rLoc = 5180; + rLoc = 5203; rType = 0; vrLen = 748; vrLoc = 4719; @@ -4406,7 +5015,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 212"; rLen = 0; - rLoc = 5180; + rLoc = 5203; rType = 0; vrLen = 748; vrLoc = 4719; @@ -4829,7 +5438,7 @@ isa = PBXTextBookmark; fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; rLen = 0; - rLoc = 625; + rLoc = 632; rType = 1; }; 6BAF39C112100714008CFCDF /* PBXTextBookmark */ = { @@ -4847,7 +5456,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 629"; rLen = 0; - rLoc = 14676; + rLoc = 14848; rType = 0; vrLen = 799; vrLoc = 14346; @@ -4857,7 +5466,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 629"; rLen = 0; - rLoc = 14676; + rLoc = 14848; rType = 0; vrLen = 698; vrLoc = 13276; @@ -4867,7 +5476,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 585"; rLen = 0; - rLoc = 13580; + rLoc = 13752; rType = 0; vrLen = 698; vrLoc = 13276; @@ -4887,7 +5496,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 585"; rLen = 0; - rLoc = 13580; + rLoc = 13752; rType = 0; vrLen = 698; vrLoc = 13276; @@ -4907,7 +5516,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 585"; rLen = 0; - rLoc = 13570; + rLoc = 13742; rType = 0; vrLen = 696; vrLoc = 13276; @@ -4977,7 +5586,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 585"; rLen = 0; - rLoc = 13570; + rLoc = 13742; rType = 0; vrLen = 696; vrLoc = 13276; @@ -5087,7 +5696,7 @@ comments = "warning: unused variable 'spanCount'"; fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; rLen = 0; - rLoc = 811; + rLoc = 818; rType = 1; }; 6BAF39E412100DA6008CFCDF /* PBXTextBookmark */ = { @@ -5105,7 +5714,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 816"; rLen = 0; - rLoc = 20514; + rLoc = 20686; rType = 0; vrLen = 717; vrLoc = 20223; @@ -5125,7 +5734,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 830"; rLen = 0; - rLoc = 20514; + rLoc = 20686; rType = 0; vrLen = 928; vrLoc = 20510; @@ -5135,7 +5744,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 830"; rLen = 0; - rLoc = 20514; + rLoc = 20686; rType = 0; vrLen = 928; vrLoc = 20510; @@ -5155,7 +5764,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 812"; rLen = 0; - rLoc = 20514; + rLoc = 20686; rType = 0; vrLen = 1120; vrLoc = 20464; @@ -5165,7 +5774,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 824"; rLen = 0; - rLoc = 21182; + rLoc = 21354; rType = 0; vrLen = 1120; vrLoc = 20464; @@ -5195,7 +5804,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 824"; rLen = 0; - rLoc = 21182; + rLoc = 21354; rType = 0; vrLen = 1120; vrLoc = 20464; @@ -5225,7 +5834,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1091"; rLen = 0; - rLoc = 33517; + rLoc = 33587; rType = 0; vrLen = 756; vrLoc = 30414; @@ -5495,7 +6104,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1020"; rLen = 28; - rLoc = 29522; + rLoc = 29592; rType = 0; vrLen = 982; vrLoc = 28414; @@ -5515,7 +6124,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1006"; rLen = 0; - rLoc = 29141; + rLoc = 29211; rType = 0; vrLen = 982; vrLoc = 28414; @@ -5535,7 +6144,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1020"; rLen = 28; - rLoc = 29522; + rLoc = 29592; rType = 0; vrLen = 982; vrLoc = 28414; @@ -5555,7 +6164,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 736"; rLen = 0; - rLoc = 20352; + rLoc = 20426; rType = 0; vrLen = 1044; vrLoc = 19557; @@ -5575,7 +6184,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 738"; rLen = 0; - rLoc = 20440; + rLoc = 20514; rType = 0; vrLen = 1095; vrLoc = 19557; @@ -5585,7 +6194,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 738"; rLen = 0; - rLoc = 20440; + rLoc = 20514; rType = 0; vrLen = 1095; vrLoc = 19557; @@ -5605,7 +6214,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1079"; rLen = 0; - rLoc = 32107; + rLoc = 32177; rType = 0; vrLen = 876; vrLoc = 30231; @@ -5703,9 +6312,9 @@ path = /Users/memon/Code/recastnavigation/Backups/Backup_100809/NavMeshTesterTool.cpp; sourceTree = ""; uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 21184}}"; - sepNavSelRange = "{25529, 0}"; - sepNavVisRange = "{25325, 818}"; + sepNavIntBoundsRect = "{{0, 0}, {873, 21728}}"; + sepNavSelRange = "{3624, 379}"; + sepNavVisRange = "{3565, 897}"; }; }; 6BAF3A54121028E6008CFCDF /* PBXTextBookmark */ = { @@ -5751,7 +6360,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 132"; rLen = 0; - rLoc = 3217; + rLoc = 3233; rType = 0; vrLen = 710; vrLoc = 2506; @@ -5771,7 +6380,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 794"; rLen = 21; - rLoc = 22290; + rLoc = 22364; rType = 0; vrLen = 1001; vrLoc = 21471; @@ -5791,7 +6400,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 132"; rLen = 0; - rLoc = 3217; + rLoc = 3233; rType = 0; vrLen = 710; vrLoc = 2506; @@ -5801,7 +6410,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 794"; rLen = 21; - rLoc = 22290; + rLoc = 22364; rType = 0; vrLen = 1071; vrLoc = 21401; @@ -5911,7 +6520,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 794"; rLen = 22; - rLoc = 22247; + rLoc = 22321; rType = 0; vrLen = 809; vrLoc = 21746; @@ -5971,7 +6580,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1074"; rLen = 0; - rLoc = 31965; + rLoc = 32035; rType = 0; vrLen = 823; vrLoc = 30241; @@ -5991,7 +6600,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 795"; rLen = 0; - rLoc = 22358; + rLoc = 22432; rType = 0; vrLen = 896; vrLoc = 21831; @@ -6161,7 +6770,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 794"; rLen = 22; - rLoc = 22247; + rLoc = 22321; rType = 0; vrLen = 658; vrLoc = 21881; @@ -6191,7 +6800,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1075"; rLen = 0; - rLoc = 30928; + rLoc = 30998; rType = 0; vrLen = 852; vrLoc = 30387; @@ -6201,7 +6810,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1082"; rLen = 0; - rLoc = 31363; + rLoc = 31433; rType = 0; vrLen = 989; vrLoc = 30545; @@ -6211,7 +6820,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1088"; rLen = 0; - rLoc = 31527; + rLoc = 31597; rType = 0; vrLen = 1003; vrLoc = 30594; @@ -6221,7 +6830,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1091"; rLen = 0; - rLoc = 31819; + rLoc = 31889; rType = 0; vrLen = 825; vrLoc = 30794; @@ -6231,7 +6840,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1093"; rLen = 0; - rLoc = 31824; + rLoc = 31894; rType = 0; vrLen = 971; vrLoc = 30823; @@ -6241,7 +6850,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 209"; rLen = 87; - rLoc = 5817; + rLoc = 6467; rType = 0; vrLen = 1188; vrLoc = 4833; @@ -6251,7 +6860,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1082"; rLen = 0; - rLoc = 31113; + rLoc = 31183; rType = 0; vrLen = 977; vrLoc = 30431; @@ -6261,7 +6870,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 209"; rLen = 87; - rLoc = 5817; + rLoc = 6467; rType = 0; vrLen = 1188; vrLoc = 4833; @@ -6281,7 +6890,7 @@ fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; name = "DebugDraw.h: 90"; rLen = 0; - rLoc = 2888; + rLoc = 3609; rType = 0; vrLen = 1325; vrLoc = 2397; @@ -6291,7 +6900,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1105"; rLen = 0; - rLoc = 31824; + rLoc = 31894; rType = 0; vrLen = 945; vrLoc = 31247; @@ -6301,7 +6910,7 @@ fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; name = "DebugDraw.h: 90"; rLen = 0; - rLoc = 2888; + rLoc = 3609; rType = 0; vrLen = 1325; vrLoc = 2397; @@ -6311,7 +6920,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1098"; rLen = 0; - rLoc = 31594; + rLoc = 31664; rType = 0; vrLen = 855; vrLoc = 31247; @@ -6321,7 +6930,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1100"; rLen = 0; - rLoc = 31688; + rLoc = 31758; rType = 0; vrLen = 857; vrLoc = 31247; @@ -6331,7 +6940,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1100"; rLen = 0; - rLoc = 31688; + rLoc = 31758; rType = 0; vrLen = 862; vrLoc = 31247; @@ -6341,7 +6950,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1100"; rLen = 0; - rLoc = 31690; + rLoc = 31760; rType = 0; vrLen = 885; vrLoc = 31247; @@ -6351,7 +6960,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 211"; rLen = 0; - rLoc = 5932; + rLoc = 6582; rType = 0; vrLen = 1278; vrLoc = 4853; @@ -6381,7 +6990,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1100"; rLen = 0; - rLoc = 31690; + rLoc = 31760; rType = 0; vrLen = 885; vrLoc = 31247; @@ -6401,7 +7010,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 209"; rLen = 87; - rLoc = 5817; + rLoc = 6467; rType = 0; vrLen = 1188; vrLoc = 4833; @@ -6411,7 +7020,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 210"; rLen = 0; - rLoc = 5904; + rLoc = 6554; rType = 0; vrLen = 1188; vrLoc = 4833; @@ -6421,7 +7030,7 @@ fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; name = "DetourCommon.h: 213"; rLen = 17; - rLoc = 6002; + rLoc = 6652; rType = 0; vrLen = 1277; vrLoc = 4853; @@ -6551,7 +7160,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 643"; rLen = 0; - rLoc = 15257; + rLoc = 15619; rType = 0; vrLen = 746; vrLoc = 14700; @@ -6591,7 +7200,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 642"; rLen = 0; - rLoc = 15251; + rLoc = 15613; rType = 0; vrLen = 699; vrLoc = 14700; @@ -6611,7 +7220,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 643"; rLen = 0; - rLoc = 15257; + rLoc = 15619; rType = 0; vrLen = 746; vrLoc = 14700; @@ -6671,7 +7280,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 642"; rLen = 0; - rLoc = 15251; + rLoc = 15613; rType = 0; vrLen = 746; vrLoc = 14700; @@ -6701,7 +7310,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 642"; rLen = 0; - rLoc = 15251; + rLoc = 15613; rType = 0; vrLen = 746; vrLoc = 14700; @@ -6751,7 +7360,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 642"; rLen = 0; - rLoc = 15251; + rLoc = 15613; rType = 0; vrLen = 746; vrLoc = 14700; @@ -6771,7 +7380,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 439"; rLen = 0; - rLoc = 10783; + rLoc = 11145; rType = 0; vrLen = 1118; vrLoc = 10124; @@ -6781,7 +7390,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 439"; rLen = 0; - rLoc = 10783; + rLoc = 11145; rType = 0; vrLen = 1119; vrLoc = 10124; @@ -6801,7 +7410,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 439"; rLen = 0; - rLoc = 10783; + rLoc = 11145; rType = 0; vrLen = 1119; vrLoc = 10124; @@ -6821,7 +7430,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 275"; rLen = 0; - rLoc = 8753; + rLoc = 8862; rType = 0; vrLen = 877; vrLoc = 8019; @@ -6841,7 +7450,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 275"; rLen = 0; - rLoc = 8753; + rLoc = 8862; rType = 0; vrLen = 877; vrLoc = 8019; @@ -6891,7 +7500,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 295"; rLen = 0; - rLoc = 9260; + rLoc = 9369; rType = 0; vrLen = 727; vrLoc = 8896; @@ -6901,7 +7510,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 389"; rLen = 0; - rLoc = 8587; + rLoc = 8606; rType = 0; vrLen = 740; vrLoc = 6559; @@ -6911,7 +7520,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 525"; rLen = 353; - rLoc = 16209; + rLoc = 16318; rType = 0; vrLen = 863; vrLoc = 15801; @@ -6931,7 +7540,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 295"; rLen = 0; - rLoc = 9260; + rLoc = 9369; rType = 0; vrLen = 727; vrLoc = 8896; @@ -7927,7 +8536,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 439"; rLen = 0; - rLoc = 10783; + rLoc = 11145; rType = 0; vrLen = 1138; vrLoc = 10104; @@ -7947,7 +8556,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 444"; rLen = 0; - rLoc = 10947; + rLoc = 11309; rType = 0; vrLen = 1133; vrLoc = 10104; @@ -7957,7 +8566,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 444"; rLen = 0; - rLoc = 10947; + rLoc = 11309; rType = 0; vrLen = 1133; vrLoc = 10104; @@ -7967,7 +8576,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 725"; rLen = 0; - rLoc = 17761; + rLoc = 17933; rType = 0; vrLen = 1322; vrLoc = 17194; @@ -7977,7 +8586,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 712"; rLen = 0; - rLoc = 20586; + rLoc = 20762; rType = 0; vrLen = 1391; vrLoc = 19553; @@ -7987,7 +8596,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 444"; rLen = 0; - rLoc = 10947; + rLoc = 11309; rType = 0; vrLen = 1133; vrLoc = 10104; @@ -7997,7 +8606,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 725"; rLen = 0; - rLoc = 17761; + rLoc = 17933; rType = 0; vrLen = 1322; vrLoc = 17194; @@ -8007,7 +8616,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 712"; rLen = 0; - rLoc = 20586; + rLoc = 20762; rType = 0; vrLen = 1334; vrLoc = 19553; @@ -8017,7 +8626,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 696"; rLen = 0; - rLoc = 19837; + rLoc = 20013; rType = 0; vrLen = 1334; vrLoc = 19553; @@ -8037,7 +8646,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 1100"; rLen = 0; - rLoc = 31690; + rLoc = 31760; rType = 0; vrLen = 885; vrLoc = 31247; @@ -8047,7 +8656,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 696"; rLen = 0; - rLoc = 19837; + rLoc = 20013; rType = 0; vrLen = 1334; vrLoc = 19553; @@ -8166,23 +8775,6 @@ vrLen = 802; vrLoc = 48640; }; - 6BAF3BD31211479B008CFCDF /* DetourNavMesh.cpp:1814 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - functionName = "dtNavMesh::moveAlongSurface(dtPolyRef startRef, const float* startPos, const float* endPos, const dtQueryFilter* filter, float* resultPos, dtPolyRef* visited, const int maxVisitedSize)"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 1814; - location = Recast; - modificationTime = 303129300.463675; - state = 1; - }; 6BAF3BD41211479D008CFCDF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; @@ -8779,6 +9371,6095 @@ vrLen = 873; vrLoc = 75633; }; + 6BAF3C571211663A008CFCDF /* CrowdTool.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {826, 3040}}"; + sepNavSelRange = "{3572, 7}"; + sepNavVisRange = "{3362, 440}"; + }; + }; + 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {936, 21120}}"; + sepNavSelRange = "{923, 0}"; + sepNavVisRange = "{64, 1157}"; + }; + }; + 6BAF3C5C12116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 2802"; + rLen = 0; + rLoc = 76008; + rType = 0; + vrLen = 873; + vrLoc = 75633; + }; + 6BAF3C5D12116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 84"; + rLen = 0; + rLoc = 2586; + rType = 0; + vrLen = 633; + vrLoc = 2030; + }; + 6BAF3C5E12116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 21"; + rLen = 0; + rLoc = 964; + rType = 0; + vrLen = 1045; + vrLoc = 207; + }; + 6BAF3C5F12116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 128"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 729; + vrLoc = 2746; + }; + 6BAF3C6012116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 38"; + rLen = 23; + rLoc = 1399; + rType = 0; + vrLen = 952; + vrLoc = 521; + }; + 6BAF3C6112116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 39"; + rLen = 0; + rLoc = 1427; + rType = 0; + vrLen = 813; + vrLoc = 711; + }; + 6BAF3C6212116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 114"; + rLen = 86; + rLoc = 2925; + rType = 0; + vrLen = 628; + vrLoc = 2470; + }; + 6BAF3C6312116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 2802"; + rLen = 0; + rLoc = 76008; + rType = 0; + vrLen = 873; + vrLoc = 75633; + }; + 6BAF3C6412116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 36"; + rLen = 0; + rLoc = 3793; + rType = 0; + vrLen = 889; + vrLoc = 596; + }; + 6BAF3C6512116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 84"; + rLen = 0; + rLoc = 2586; + rType = 0; + vrLen = 633; + vrLoc = 2030; + }; + 6BAF3C6612116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 21"; + rLen = 0; + rLoc = 964; + rType = 0; + vrLen = 1073; + vrLoc = 207; + }; + 6BAF3C6712116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 41"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 641; + vrLoc = 789; + }; + 6BAF3C6812116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 21"; + rLen = 0; + rLoc = 964; + rType = 0; + vrLen = 1045; + vrLoc = 207; + }; + 6BAF3C6912116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 128"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 729; + vrLoc = 2746; + }; + 6BAF3C6A12116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 114"; + rLen = 86; + rLoc = 2925; + rType = 0; + vrLen = 670; + vrLoc = 2428; + }; + 6BAF3C6B12116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 222"; + rLen = 0; + rLoc = 5651; + rType = 0; + vrLen = 755; + vrLoc = 4946; + }; + 6BAF3C6C12116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 38"; + rLen = 23; + rLoc = 1399; + rType = 0; + vrLen = 952; + vrLoc = 521; + }; + 6BAF3C6D12116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 39"; + rLen = 0; + rLoc = 1427; + rType = 0; + vrLen = 813; + vrLoc = 711; + }; + 6BAF3C6E12116712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 40"; + rLen = 0; + rLoc = 1452; + rType = 0; + vrLen = 1048; + vrLoc = 446; + }; + 6BAF3C71121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 30"; + rLen = 0; + rLoc = 1189; + rType = 0; + vrLen = 1048; + vrLoc = 446; + }; + 6BAF3C72121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 133"; + rLen = 16; + rLoc = 3680; + rType = 0; + vrLen = 786; + vrLoc = 3444; + }; + 6BAF3C73121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 272"; + rLen = 0; + rLoc = 6012; + rType = 0; + vrLen = 414; + vrLoc = 5680; + }; + 6BAF3C74121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 82"; + rLen = 0; + rLoc = 2150; + rType = 0; + vrLen = 411; + vrLoc = 1946; + }; + 6BAF3C75121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 40"; + rLen = 0; + rLoc = 3931; + rType = 0; + vrLen = 497; + vrLoc = 1013; + }; + 6BAF3C76121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 70"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 391; + vrLoc = 1513; + }; + 6BAF3C77121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C64111C5D9A00EBD2FD /* ConvexVolumeTool.h */; + name = "ConvexVolumeTool.h: 47"; + rLen = 0; + rLoc = 1514; + rType = 0; + vrLen = 538; + vrLoc = 1171; + }; + 6BAF3C78121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 358"; + rLen = 0; + rLoc = 7999; + rType = 0; + vrLen = 338; + vrLoc = 7722; + }; + 6BAF3C79121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 42"; + rLen = 0; + rLoc = 1463; + rType = 0; + vrLen = 566; + vrLoc = 1063; + }; + 6BAF3C7A121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 86"; + rLen = 0; + rLoc = 2160; + rType = 0; + vrLen = 517; + vrLoc = 2098; + }; + 6BAF3C7B121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; + name = "ConvexVolumeTool.cpp: 164"; + rLen = 0; + rLoc = 4160; + rType = 0; + vrLen = 505; + vrLoc = 3883; + }; + 6BAF3C7C121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 90"; + rLen = 0; + rLoc = 2542; + rType = 0; + vrLen = 613; + vrLoc = 2198; + }; + 6BAF3C7D121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; + name = "Sample_Debug.h: 47"; + rLen = 0; + rLoc = 1508; + rType = 0; + vrLen = 566; + vrLoc = 1270; + }; + 6BAF3C7E121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 116"; + rLen = 0; + rLoc = 2755; + rType = 0; + vrLen = 441; + vrLoc = 2410; + }; + 6BAF3C7F121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 386"; + rLen = 0; + rLoc = 9204; + rType = 0; + vrLen = 411; + vrLoc = 8920; + }; + 6BAF3C80121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + rLen = 11; + rLoc = 8394; + rType = 0; + }; + 6BAF3C81121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 30"; + rLen = 0; + rLoc = 1189; + rType = 0; + vrLen = 1048; + vrLoc = 446; + }; + 6BAF3C82121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 133"; + rLen = 16; + rLoc = 3680; + rType = 0; + vrLen = 786; + vrLoc = 3444; + }; + 6BAF3C83121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 272"; + rLen = 0; + rLoc = 6012; + rType = 0; + vrLen = 414; + vrLoc = 5680; + }; + 6BAF3C84121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 82"; + rLen = 0; + rLoc = 2150; + rType = 0; + vrLen = 411; + vrLoc = 1946; + }; + 6BAF3C85121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 40"; + rLen = 0; + rLoc = 3931; + rType = 0; + vrLen = 497; + vrLoc = 1013; + }; + 6BAF3C86121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 70"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 391; + vrLoc = 1513; + }; + 6BAF3C87121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C64111C5D9A00EBD2FD /* ConvexVolumeTool.h */; + name = "ConvexVolumeTool.h: 47"; + rLen = 0; + rLoc = 1514; + rType = 0; + vrLen = 538; + vrLoc = 1171; + }; + 6BAF3C88121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 358"; + rLen = 0; + rLoc = 7999; + rType = 0; + vrLen = 338; + vrLoc = 7722; + }; + 6BAF3C89121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 42"; + rLen = 0; + rLoc = 1463; + rType = 0; + vrLen = 566; + vrLoc = 1063; + }; + 6BAF3C8A121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 86"; + rLen = 0; + rLoc = 2160; + rType = 0; + vrLen = 517; + vrLoc = 2098; + }; + 6BAF3C8B121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; + name = "ConvexVolumeTool.cpp: 164"; + rLen = 0; + rLoc = 4160; + rType = 0; + vrLen = 505; + vrLoc = 3883; + }; + 6BAF3C8C121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 90"; + rLen = 0; + rLoc = 2542; + rType = 0; + vrLen = 613; + vrLoc = 2198; + }; + 6BAF3C8D121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; + name = "Sample_Debug.h: 47"; + rLen = 0; + rLoc = 1508; + rType = 0; + vrLen = 566; + vrLoc = 1270; + }; + 6BAF3C8E121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 116"; + rLen = 0; + rLoc = 2755; + rType = 0; + vrLen = 441; + vrLoc = 2410; + }; + 6BAF3C8F121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 386"; + rLen = 0; + rLoc = 9204; + rType = 0; + vrLen = 411; + vrLoc = 8920; + }; + 6BAF3C90121167CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 329"; + rLen = 0; + rLoc = 8565; + rType = 0; + vrLen = 331; + vrLoc = 8364; + }; + 6BAF3CAD12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 412"; + rLen = 12; + rLoc = 9637; + rType = 0; + vrLen = 672; + vrLoc = 9348; + }; + 6BAF3CAE12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 287"; + rLen = 0; + rLoc = 6183; + rType = 0; + vrLen = 427; + vrLoc = 5801; + }; + 6BAF3CAF12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 42"; + rLen = 44; + rLoc = 3988; + rType = 0; + vrLen = 630; + vrLoc = 924; + }; + 6BAF3CB012116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C64111C5D9A00EBD2FD /* ConvexVolumeTool.h */; + name = "ConvexVolumeTool.h: 50"; + rLen = 0; + rLoc = 1615; + rType = 0; + vrLen = 704; + vrLoc = 1049; + }; + 6BAF3CB112116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 45"; + rLen = 0; + rLoc = 1564; + rType = 0; + vrLen = 717; + vrLoc = 956; + }; + 6BAF3CB212116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 93"; + rLen = 0; + rLoc = 2643; + rType = 0; + vrLen = 876; + vrLoc = 1975; + }; + 6BAF3CB312116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 123"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 514; + vrLoc = 2457; + }; + 6BAF3CB412116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; + name = "ConvexVolumeTool.cpp: 237"; + rLen = 57; + rLoc = 5615; + rType = 0; + vrLen = 485; + vrLoc = 5555; + }; + 6BAF3CB512116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 139"; + rLen = 62; + rLoc = 3283; + rType = 0; + vrLen = 550; + vrLoc = 2904; + }; + 6BAF3CB612116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 97"; + rLen = 0; + rLoc = 2987; + rType = 0; + vrLen = 665; + vrLoc = 2506; + }; + 6BAF3CB712116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 92"; + rLen = 0; + rLoc = 2354; + rType = 0; + vrLen = 576; + vrLoc = 1854; + }; + 6BAF3CB812116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 131"; + rLen = 0; + rLoc = 3009; + rType = 0; + vrLen = 657; + vrLoc = 2664; + }; + 6BAF3CB912116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 480"; + rLen = 0; + rLoc = 12802; + rType = 0; + vrLen = 521; + vrLoc = 12551; + }; + 6BAF3CBA12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 343"; + rLen = 0; + rLoc = 8894; + rType = 0; + vrLen = 738; + vrLoc = 8563; + }; + 6BAF3CBB12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 139"; + rLen = 44; + rLoc = 3943; + rType = 0; + vrLen = 984; + vrLoc = 3411; + }; + 6BAF3CBC12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 287"; + rLen = 0; + rLoc = 6183; + rType = 0; + vrLen = 427; + vrLoc = 5801; + }; + 6BAF3CBD12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 139"; + rLen = 0; + rLoc = 3986; + rType = 0; + vrLen = 859; + vrLoc = 3260; + }; + 6BAF3CBE12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 287"; + rLen = 0; + rLoc = 6183; + rType = 0; + vrLen = 427; + vrLoc = 5801; + }; + 6BAF3CBF12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 99"; + rLen = 0; + rLoc = 3038; + rType = 0; + vrLen = 665; + vrLoc = 2506; + }; + 6BAF3CC012116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 76"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 576; + vrLoc = 1479; + }; + 6BAF3CC112116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 42"; + rLen = 44; + rLoc = 3988; + rType = 0; + vrLen = 630; + vrLoc = 924; + }; + 6BAF3CC212116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 125"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 514; + vrLoc = 2457; + }; + 6BAF3CC312116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C64111C5D9A00EBD2FD /* ConvexVolumeTool.h */; + name = "ConvexVolumeTool.h: 50"; + rLen = 0; + rLoc = 1615; + rType = 0; + vrLen = 704; + vrLoc = 1049; + }; + 6BAF3CC412116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 45"; + rLen = 0; + rLoc = 1564; + rType = 0; + vrLen = 717; + vrLoc = 956; + }; + 6BAF3CC512116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 93"; + rLen = 0; + rLoc = 2643; + rType = 0; + vrLen = 876; + vrLoc = 1975; + }; + 6BAF3CC612116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 123"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 514; + vrLoc = 2457; + }; + 6BAF3CC712116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; + name = "ConvexVolumeTool.cpp: 237"; + rLen = 57; + rLoc = 5615; + rType = 0; + vrLen = 485; + vrLoc = 5555; + }; + 6BAF3CC812116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 139"; + rLen = 62; + rLoc = 3283; + rType = 0; + vrLen = 550; + vrLoc = 2904; + }; + 6BAF3CC912116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 480"; + rLen = 0; + rLoc = 12802; + rType = 0; + vrLen = 521; + vrLoc = 12551; + }; + 6BAF3CCA12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 126"; + rLen = 0; + rLoc = 2947; + rType = 0; + vrLen = 588; + vrLoc = 2615; + }; + 6BAF3CCB12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 92"; + rLen = 12; + rLoc = 2342; + rType = 0; + vrLen = 582; + vrLoc = 1943; + }; + 6BAF3CCC12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 97"; + rLen = 0; + rLoc = 2987; + rType = 0; + vrLen = 665; + vrLoc = 2506; + }; + 6BAF3CCD12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 92"; + rLen = 0; + rLoc = 2354; + rType = 0; + vrLen = 576; + vrLoc = 1854; + }; + 6BAF3CCE12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 131"; + rLen = 0; + rLoc = 3009; + rType = 0; + vrLen = 657; + vrLoc = 2664; + }; + 6BAF3CCF12116AD9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 484"; + rLen = 0; + rLoc = 12835; + rType = 0; + vrLen = 422; + vrLoc = 12551; + }; + 6BAF3CD112116B16008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 484"; + rLen = 0; + rLoc = 12835; + rType = 0; + vrLen = 422; + vrLoc = 12551; + }; + 6BAF3CD312116B90008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 483"; + rLen = 0; + rLoc = 12835; + rType = 0; + vrLen = 511; + vrLoc = 12551; + }; + 6BAF3CD4121174E9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 482"; + rLen = 0; + rLoc = 12835; + rType = 0; + vrLen = 521; + vrLoc = 12551; + }; + 6BAF3CD5121174E9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 41"; + rLen = 0; + rLoc = 2937; + rType = 0; + vrLen = 489; + vrLoc = 964; + }; + 6BAF3CD6121174E9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 46"; + rLen = 0; + rLoc = 13092; + rType = 0; + vrLen = 428; + vrLoc = 1132; + }; + 6BAF3CD7121174E9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 482"; + rLen = 0; + rLoc = 12835; + rType = 0; + vrLen = 521; + vrLoc = 12551; + }; + 6BAF3CD8121174E9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 45"; + rLen = 0; + rLoc = 3259; + rType = 0; + vrLen = 513; + vrLoc = 944; + }; + 6BAF3CD9121174E9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 49"; + rLen = 0; + rLoc = 13171; + rType = 0; + vrLen = 429; + vrLoc = 1132; + }; + 6BAF3CDA121174E9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 42"; + rLen = 0; + rLoc = 3026; + rType = 0; + vrLen = 493; + vrLoc = 964; + }; + 6BAF3CDB121174E9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 46"; + rLen = 0; + rLoc = 13092; + rType = 0; + vrLen = 428; + vrLoc = 1132; + }; + 6BAF3CDC121174E9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 41"; + rLen = 0; + rLoc = 2937; + rType = 0; + vrLen = 489; + vrLoc = 964; + }; + 6BAF3CDD121174E9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 64"; + rLen = 0; + rLoc = 13425; + rType = 0; + vrLen = 357; + vrLoc = 1363; + }; + 6BAF3CDE12117580008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 78"; + rLen = 0; + rLoc = 13895; + rType = 0; + vrLen = 470; + vrLoc = 1445; + }; + 6BAF3CDF12117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 43"; + rLen = 0; + rLoc = 2993; + rType = 0; + vrLen = 514; + vrLoc = 965; + }; + 6BAF3CE012117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 75"; + rLen = 0; + rLoc = 13424; + rType = 0; + vrLen = 513; + vrLoc = 1419; + }; + 6BAF3CE112117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 82"; + rLen = 0; + rLoc = 13895; + rType = 0; + vrLen = 417; + vrLoc = 1522; + }; + 6BAF3CE212117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 36"; + rLen = 0; + rLoc = 2893; + rType = 0; + vrLen = 482; + vrLoc = 964; + }; + 6BAF3CE312117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 79"; + rLen = 0; + rLoc = 13895; + rType = 0; + vrLen = 416; + vrLoc = 1522; + }; + 6BAF3CE412117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 37"; + rLen = 0; + rLoc = 2893; + rType = 0; + vrLen = 519; + vrLoc = 944; + }; + 6BAF3CE512117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 50"; + rLen = 0; + rLoc = 13018; + rType = 0; + vrLen = 382; + vrLoc = 1086; + }; + 6BAF3CE612117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 36"; + rLen = 0; + rLoc = 2893; + rType = 0; + vrLen = 521; + vrLoc = 964; + }; + 6BAF3CE712117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 54"; + rLen = 0; + rLoc = 13018; + rType = 0; + vrLen = 441; + vrLoc = 1334; + }; + 6BAF3CE812117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 37"; + rLen = 0; + rLoc = 2893; + rType = 0; + vrLen = 497; + vrLoc = 965; + }; + 6BAF3CE912117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 54"; + rLen = 0; + rLoc = 13069; + rType = 0; + vrLen = 538; + vrLoc = 1338; + }; + 6BAF3CEA12117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 37"; + rLen = 0; + rLoc = 2893; + rType = 0; + vrLen = 539; + vrLoc = 965; + }; + 6BAF3CEB12117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 58"; + rLen = 0; + rLoc = 13144; + rType = 0; + vrLen = 535; + vrLoc = 1304; + }; + 6BAF3CEC12117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 37"; + rLen = 0; + rLoc = 2893; + rType = 0; + vrLen = 514; + vrLoc = 965; + }; + 6BAF3CED12117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 58"; + rLen = 0; + rLoc = 13144; + rType = 0; + vrLen = 513; + vrLoc = 1304; + }; + 6BAF3CEE12117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 44"; + rLen = 0; + rLoc = 3026; + rType = 0; + vrLen = 514; + vrLoc = 965; + }; + 6BAF3CEF12117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 75"; + rLen = 0; + rLoc = 13424; + rType = 0; + vrLen = 513; + vrLoc = 1419; + }; + 6BAF3CF012117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 43"; + rLen = 0; + rLoc = 2993; + rType = 0; + vrLen = 514; + vrLoc = 965; + }; + 6BAF3CF112117769008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 88"; + rLen = 0; + rLoc = 13850; + rType = 0; + vrLen = 386; + vrLoc = 1777; + }; + 6BAF3CF21211780F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 138"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 624; + vrLoc = 2416; + }; + 6BAF3CF7121178A3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 68"; + rLen = 0; + rLoc = 2084; + rType = 0; + vrLen = 905; + vrLoc = 1505; + }; + 6BAF3CF8121178A3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: expected identifier before '{' token"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + rLen = 1; + rLoc = 523; + rType = 1; + }; + 6BAF3CF9121178A3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 68"; + rLen = 0; + rLoc = 2084; + rType = 0; + vrLen = 905; + vrLoc = 1505; + }; + 6BAF3CFA121178A3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 38"; + rLen = 0; + rLoc = 12858; + rType = 0; + vrLen = 356; + vrLoc = 1132; + }; + 6BAF3D09121178CE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 68"; + rLen = 0; + rLoc = 13362; + rType = 0; + vrLen = 826; + vrLoc = 3901; + }; + 6BAF3D0A121178D9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 2768"; + rLen = 0; + rLoc = 75046; + rType = 0; + vrLen = 310; + vrLoc = 75046; + }; + 6BAF3D0B121178D9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 68"; + rLen = 0; + rLoc = 13362; + rType = 0; + vrLen = 408; + vrLoc = 3901; + }; + 6BAF3D0C121178D9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6E0F7FCBBB00459200 /* SDLMain.m */; + rLen = 0; + rLoc = 228; + rType = 1; + }; + 6BAF3D0D121178D9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 2768"; + rLen = 0; + rLoc = 75046; + rType = 0; + vrLen = 310; + vrLoc = 75046; + }; + 6BAF3D0E121178D9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 68"; + rLen = 0; + rLoc = 13362; + rType = 0; + vrLen = 408; + vrLoc = 3901; + }; + 6BAF3D0F121178D9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6E0F7FCBBB00459200 /* SDLMain.m */; + name = "SDLMain.m: 382"; + rLen = 0; + rLoc = 11212; + rType = 0; + vrLen = 190; + vrLoc = 11026; + }; + 6BAF3D15121178EC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 137"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 578; + vrLoc = 2460; + }; + 6BAF3D19121178FC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 134"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 578; + vrLoc = 2460; + }; + 6BAF3D25121179CD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 65"; + rLen = 0; + rLoc = 13294; + rType = 0; + vrLen = 278; + vrLoc = 1289; + }; + 6BAF3D26121179CD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 347"; + rLen = 0; + rLoc = 8069; + rType = 0; + vrLen = 457; + vrLoc = 9857; + }; + 6BAF3D27121179CD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + rLen = 0; + rLoc = 915; + rType = 1; + }; + 6BAF3D28121179CD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 68"; + rLen = 0; + rLoc = 13362; + rType = 0; + vrLen = 408; + vrLoc = 3901; + }; + 6BAF3D29121179CD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 204"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 433; + vrLoc = 3921; + }; + 6BAF3D2A121179CD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 65"; + rLen = 0; + rLoc = 13294; + rType = 0; + vrLen = 278; + vrLoc = 1289; + }; + 6BAF3D2B121179CD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 347"; + rLen = 0; + rLoc = 8069; + rType = 0; + vrLen = 457; + vrLoc = 9857; + }; + 6BAF3D2C121179CD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 912"; + rLen = 0; + rLoc = 21475; + rType = 0; + vrLen = 255; + vrLoc = 21371; + }; + 6BAF3D3012117A05008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 907"; + rLen = 0; + rLoc = 21370; + rType = 0; + vrLen = 649; + vrLoc = 20977; + }; + 6BAF3D3112117A05008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 43"; + rLen = 0; + rLoc = 2993; + rType = 0; + vrLen = 514; + vrLoc = 965; + }; + 6BAF3D3212117A05008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 49"; + rLen = 0; + rLoc = 13018; + rType = 0; + vrLen = 360; + vrLoc = 1207; + }; + 6BAF3D3312117A05008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 907"; + rLen = 0; + rLoc = 21370; + rType = 0; + vrLen = 649; + vrLoc = 20977; + }; + 6BAF3D3412117A05008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 43"; + rLen = 0; + rLoc = 2993; + rType = 0; + vrLen = 514; + vrLoc = 965; + }; + 6BAF3D3512117A05008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 49"; + rLen = 0; + rLoc = 13018; + rType = 0; + vrLen = 360; + vrLoc = 1207; + }; + 6BAF3D3612117A05008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 43"; + rLen = 0; + rLoc = 2993; + rType = 0; + vrLen = 514; + vrLoc = 965; + }; + 6BAF3D3712117A05008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 50"; + rLen = 0; + rLoc = 13017; + rType = 0; + vrLen = 452; + vrLoc = 1256; + }; + 6BAF3D3A12117B08008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 67"; + rLen = 0; + rLoc = 13305; + rType = 0; + vrLen = 465; + vrLoc = 1495; + }; + 6BAF3D3E12117B40008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 145"; + rLen = 0; + rLoc = 4167; + rType = 0; + vrLen = 1027; + vrLoc = 3592; + }; + 6BAF3D3F12117B40008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 273"; + rLen = 0; + rLoc = 6023; + rType = 0; + vrLen = 349; + vrLoc = 5879; + }; + 6BAF3D4012117B40008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 66"; + rLen = 0; + rLoc = 13280; + rType = 0; + vrLen = 580; + vrLoc = 3468; + }; + 6BAF3D4112117B40008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 67"; + rLen = 0; + rLoc = 13305; + rType = 0; + vrLen = 606; + vrLoc = 2495; + }; + 6BAF3D4212117B40008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 145"; + rLen = 0; + rLoc = 4167; + rType = 0; + vrLen = 1027; + vrLoc = 3592; + }; + 6BAF3D4312117B40008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 66"; + rLen = 0; + rLoc = 13280; + rType = 0; + vrLen = 581; + vrLoc = 3468; + }; + 6BAF3D4412117B40008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 273"; + rLen = 0; + rLoc = 6023; + rType = 0; + vrLen = 349; + vrLoc = 5879; + }; + 6BAF3D4512117B40008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 94"; + rLen = 0; + rLoc = 24210; + rType = 0; + vrLen = 397; + vrLoc = 1840; + }; + 6BAF3D4912117C1F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 109"; + rLen = 0; + rLoc = 4882; + rType = 0; + vrLen = 1507; + vrLoc = 2886; + }; + 6BAF3D4A12117C1F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 70"; + rLen = 0; + rLoc = 2105; + rType = 0; + vrLen = 938; + vrLoc = 1678; + }; + 6BAF3D4B12117C1F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 54"; + rLen = 0; + rLoc = 3616; + rType = 0; + vrLen = 759; + vrLoc = 1223; + }; + 6BAF3D4C12117C1F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 71"; + rLen = 57; + rLoc = 1851; + rType = 0; + vrLen = 590; + vrLoc = 1598; + }; + 6BAF3D4D12117C1F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 125"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 459; + vrLoc = 2258; + }; + 6BAF3D4E12117C1F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 54"; + rLen = 0; + rLoc = 3616; + rType = 0; + vrLen = 762; + vrLoc = 1223; + }; + 6BAF3D4F12117C1F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 54"; + rLen = 0; + rLoc = 3616; + rType = 0; + vrLen = 759; + vrLoc = 1223; + }; + 6BAF3D5012117C1F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 71"; + rLen = 57; + rLoc = 1851; + rType = 0; + vrLen = 590; + vrLoc = 1598; + }; + 6BAF3D5112117C1F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 120"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 433; + vrLoc = 2259; + }; + 6BAF3D5312117C38008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 119"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 433; + vrLoc = 2259; + }; + 6BAF3D5512117C9A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 243"; + rLen = 0; + rLoc = 33079; + rType = 0; + vrLen = 822; + vrLoc = 4551; + }; + 6BAF3D5612117CE3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 216"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 954; + vrLoc = 4296; + }; + 6BAF3D5C12117F19008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'vsub' was not declared in this scope"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + rLen = 1; + rLoc = 44; + rType = 1; + }; + 6BAF3D5D12117F19008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 65"; + rLen = 0; + rLoc = 2088; + rType = 0; + vrLen = 1018; + vrLoc = 1317; + }; + 6BAF3D5E12118022008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 62"; + rLen = 6; + rLoc = 3710; + rType = 0; + vrLen = 786; + vrLoc = 1277; + }; + 6BAF3D5F12118022008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 176"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 568; + vrLoc = 3626; + }; + 6BAF3D6012118022008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 94"; + rLen = 0; + rLoc = 12905; + rType = 0; + vrLen = 598; + vrLoc = 2294; + }; + 6BAF3D6112118022008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 62"; + rLen = 6; + rLoc = 3710; + rType = 0; + vrLen = 745; + vrLoc = 1311; + }; + 6BAF3D6212118022008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 148"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 463; + vrLoc = 3335; + }; + 6BAF3D6312118022008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 59"; + rLen = 15; + rLoc = 3662; + rType = 0; + vrLen = 787; + vrLoc = 1277; + }; + 6BAF3D6412118022008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 176"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 568; + vrLoc = 3626; + }; + 6BAF3D6512118022008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 62"; + rLen = 6; + rLoc = 3710; + rType = 0; + vrLen = 786; + vrLoc = 1277; + }; + 6BAF3D6612118022008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 269"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 1027; + vrLoc = 5278; + }; + 6BAF3D6912118084008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 52"; + rLen = 0; + rLoc = 3354; + rType = 0; + vrLen = 792; + vrLoc = 1277; + }; + 6BAF3D6A12118084008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 264"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 892; + vrLoc = 5870; + }; + 6BAF3D6B12118084008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 264"; + rLen = 0; + rLoc = 24253; + rType = 0; + vrLen = 892; + vrLoc = 5870; + }; + 6BAF3D6C12118084008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 52"; + rLen = 0; + rLoc = 3354; + rType = 0; + vrLen = 792; + vrLoc = 1277; + }; + 6BAF3D6D12118084008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 243"; + rLen = 0; + rLoc = 27239; + rType = 0; + vrLen = 456; + vrLoc = 5024; + }; + 6BAF3D6E12118121008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 54"; + rLen = 0; + rLoc = 3389; + rType = 0; + vrLen = 686; + vrLoc = 1186; + }; + 6BAF3D6F12118121008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 145"; + rLen = 0; + rLoc = 24209; + rType = 0; + vrLen = 517; + vrLoc = 3170; + }; + 6BAF3D7012118121008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 246"; + rLen = 0; + rLoc = 27240; + rType = 0; + vrLen = 753; + vrLoc = 3751; + }; + 6BAF3D7112118121008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 46"; + rLen = 54; + rLoc = 3133; + rType = 0; + vrLen = 686; + vrLoc = 1186; + }; + 6BAF3D7212118121008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 145"; + rLen = 0; + rLoc = 24209; + rType = 0; + vrLen = 518; + vrLoc = 3170; + }; + 6BAF3D7312118121008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 54"; + rLen = 0; + rLoc = 3389; + rType = 0; + vrLen = 686; + vrLoc = 1186; + }; + 6BAF3D7412118121008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 145"; + rLen = 0; + rLoc = 24209; + rType = 0; + vrLen = 517; + vrLoc = 3170; + }; + 6BAF3D7512118121008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 54"; + rLen = 0; + rLoc = 3389; + rType = 0; + vrLen = 686; + vrLoc = 1186; + }; + 6BAF3D7612118121008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 147"; + rLen = 0; + rLoc = 24209; + rType = 0; + vrLen = 530; + vrLoc = 3170; + }; + 6BAF3D7912118392008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 32"; + rLen = 0; + rLoc = 2541; + rType = 0; + vrLen = 676; + vrLoc = 672; + }; + 6BAF3D7A12118392008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 369"; + rLen = 0; + rLoc = 10679; + rType = 0; + vrLen = 589; + vrLoc = 9902; + }; + 6BAF3D7B12118392008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1014"; + rLen = 14; + rLoc = 29080; + rType = 0; + vrLen = 816; + vrLoc = 28725; + }; + 6BAF3D7C12118392008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 291"; + rLen = 0; + rLoc = 28934; + rType = 0; + vrLen = 680; + vrLoc = 5843; + }; + 6BAF3D7D12118392008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 30"; + rLen = 0; + rLoc = 2200; + rType = 0; + vrLen = 818; + vrLoc = 672; + }; + 6BAF3D7E12118392008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 32"; + rLen = 0; + rLoc = 2541; + rType = 0; + vrLen = 676; + vrLoc = 672; + }; + 6BAF3D7F12118392008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 369"; + rLen = 0; + rLoc = 10679; + rType = 0; + vrLen = 589; + vrLoc = 9902; + }; + 6BAF3D8012118392008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1014"; + rLen = 14; + rLoc = 29080; + rType = 0; + vrLen = 816; + vrLoc = 28725; + }; + 6BAF3D8112118392008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 291"; + rLen = 0; + rLoc = 28934; + rType = 0; + vrLen = 570; + vrLoc = 5845; + }; + 6BAF3D84121184F7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 68"; + rLen = 68; + rLoc = 3188; + rType = 0; + vrLen = 688; + vrLoc = 1295; + }; + 6BAF3D85121184F7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 144"; + rLen = 0; + rLoc = 13941; + rType = 0; + vrLen = 569; + vrLoc = 3229; + }; + 6BAF3D86121184F7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 291"; + rLen = 0; + rLoc = 28934; + rType = 0; + vrLen = 980; + vrLoc = 5941; + }; + 6BAF3D87121184F7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 39"; + rLen = 0; + rLoc = 2541; + rType = 0; + vrLen = 448; + vrLoc = 924; + }; + 6BAF3D88121184F7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 151"; + rLen = 0; + rLoc = 24210; + rType = 0; + vrLen = 513; + vrLoc = 3313; + }; + 6BAF3D89121184F7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 47"; + rLen = 0; + rLoc = 2609; + rType = 0; + vrLen = 503; + vrLoc = 1039; + }; + 6BAF3D8A121184F7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 144"; + rLen = 0; + rLoc = 13941; + rType = 0; + vrLen = 569; + vrLoc = 3229; + }; + 6BAF3D8B121184F7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 68"; + rLen = 68; + rLoc = 3188; + rType = 0; + vrLen = 688; + vrLoc = 1295; + }; + 6BAF3D8C121184F7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 163"; + rLen = 0; + rLoc = 15421; + rType = 0; + vrLen = 594; + vrLoc = 3391; + }; + 6BAF3D8D121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1183"; + rLen = 143; + rLoc = 31775; + rType = 0; + vrLen = 840; + vrLoc = 31496; + }; + 6BAF3D8E121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 45"; + rLen = 9; + rLoc = 2552; + rType = 0; + vrLen = 599; + vrLoc = 1182; + }; + 6BAF3D8F121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 170"; + rLen = 0; + rLoc = 15167; + rType = 0; + vrLen = 667; + vrLoc = 3746; + }; + 6BAF3D90121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 43"; + rLen = 0; + rLoc = 2541; + rType = 0; + vrLen = 614; + vrLoc = 1182; + }; + 6BAF3D91121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 156"; + rLen = 0; + rLoc = 14862; + rType = 0; + vrLen = 741; + vrLoc = 3440; + }; + 6BAF3D92121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 42"; + rLen = 0; + rLoc = 2223; + rType = 0; + vrLen = 578; + vrLoc = 1182; + }; + 6BAF3D93121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 170"; + rLen = 0; + rLoc = 15167; + rType = 0; + vrLen = 665; + vrLoc = 3748; + }; + 6BAF3D94121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 41"; + rLen = 0; + rLoc = 2223; + rType = 0; + vrLen = 611; + vrLoc = 1182; + }; + 6BAF3D95121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 170"; + rLen = 0; + rLoc = 15167; + rType = 0; + vrLen = 667; + vrLoc = 3746; + }; + 6BAF3D96121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 45"; + rLen = 9; + rLoc = 2552; + rType = 0; + vrLen = 599; + vrLoc = 1182; + }; + 6BAF3D97121185F3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 174"; + rLen = 0; + rLoc = 15221; + rType = 0; + vrLen = 667; + vrLoc = 3773; + }; + 6BAF3D98121186B9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 31"; + rLen = 0; + rLoc = 1817; + rType = 0; + vrLen = 538; + vrLoc = 1062; + }; + 6BAF3D99121186B9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 182"; + rLen = 0; + rLoc = 15452; + rType = 0; + vrLen = 648; + vrLoc = 3872; + }; + 6BAF3D9A121186B9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 180"; + rLen = 0; + rLoc = 17052; + rType = 0; + vrLen = 654; + vrLoc = 3773; + }; + 6BAF3D9B121186B9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 47"; + rLen = 45; + rLoc = 2564; + rType = 0; + vrLen = 599; + vrLoc = 1182; + }; + 6BAF3D9C121186B9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 182"; + rLen = 0; + rLoc = 15452; + rType = 0; + vrLen = 648; + vrLoc = 3872; + }; + 6BAF3D9D121186B9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 31"; + rLen = 0; + rLoc = 1817; + rType = 0; + vrLen = 538; + vrLoc = 1062; + }; + 6BAF3D9E121186B9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 182"; + rLen = 0; + rLoc = 15475; + rType = 0; + vrLen = 690; + vrLoc = 3829; + }; + 6BAF3D9F1211876A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 32"; + rLen = 17; + rLoc = 1846; + rType = 0; + vrLen = 534; + vrLoc = 1062; + }; + 6BAF3DA01211876A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1361"; + rLen = 199; + rLoc = 36764; + rType = 0; + vrLen = 794; + vrLoc = 36339; + }; + 6BAF3DA11211876A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 184"; + rLen = 0; + rLoc = 15629; + rType = 0; + vrLen = 646; + vrLoc = 3950; + }; + 6BAF3DA21211876A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 32"; + rLen = 17; + rLoc = 1846; + rType = 0; + vrLen = 534; + vrLoc = 1062; + }; + 6BAF3DA31211876A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1361"; + rLen = 199; + rLoc = 36764; + rType = 0; + vrLen = 794; + vrLoc = 36339; + }; + 6BAF3DA41211876A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 190"; + rLen = 0; + rLoc = 16063; + rType = 0; + vrLen = 676; + vrLoc = 4201; + }; + 6BAF3DA51211882E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 273"; + rLen = 0; + rLoc = 6023; + rType = 0; + vrLen = 547; + vrLoc = 5681; + }; + 6BAF3DA61211882E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 32"; + rLen = 17; + rLoc = 1846; + rType = 0; + vrLen = 534; + vrLoc = 1062; + }; + 6BAF3DA71211882E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 435"; + rLen = 0; + rLoc = 19063; + rType = 0; + vrLen = 1454; + vrLoc = 18355; + }; + 6BAF3DA81211882E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1360"; + rLen = 0; + rLoc = 36763; + rType = 0; + vrLen = 727; + vrLoc = 36406; + }; + 6BAF3DA91211882E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 195"; + rLen = 0; + rLoc = 16058; + rType = 0; + vrLen = 813; + vrLoc = 4147; + }; + 6BAF3DAA1211882E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 273"; + rLen = 0; + rLoc = 6023; + rType = 0; + vrLen = 547; + vrLoc = 5681; + }; + 6BAF3DAB1211882E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 32"; + rLen = 17; + rLoc = 1846; + rType = 0; + vrLen = 534; + vrLoc = 1062; + }; + 6BAF3DAC1211882E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 435"; + rLen = 0; + rLoc = 19063; + rType = 0; + vrLen = 1454; + vrLoc = 18355; + }; + 6BAF3DAD1211882E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1360"; + rLen = 0; + rLoc = 36763; + rType = 0; + vrLen = 727; + vrLoc = 36406; + }; + 6BAF3DAE1211882E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 198"; + rLen = 0; + rLoc = 16057; + rType = 0; + vrLen = 683; + vrLoc = 4538; + }; + 6BAF3DB11211893A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 136"; + rLen = 0; + rLoc = 4011; + rType = 0; + vrLen = 723; + vrLoc = 3435; + }; + 6BAF3DB21211893A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 37"; + rLen = 17; + rLoc = 1955; + rType = 0; + vrLen = 534; + vrLoc = 1062; + }; + 6BAF3DB31211893A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 216"; + rLen = 0; + rLoc = 17786; + rType = 0; + vrLen = 771; + vrLoc = 4850; + }; + 6BAF3DB41211893A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 51"; + rLen = 52; + rLoc = 2609; + rType = 0; + vrLen = 534; + vrLoc = 1062; + }; + 6BAF3DB51211893A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 37"; + rLen = 17; + rLoc = 1955; + rType = 0; + vrLen = 534; + vrLoc = 1062; + }; + 6BAF3DB61211893A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 368"; + rLen = 0; + rLoc = 29184; + rType = 0; + vrLen = 939; + vrLoc = 7903; + }; + 6BAF3DB81211895C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 341"; + rLen = 0; + rLoc = 27833; + rType = 0; + vrLen = 640; + vrLoc = 7363; + }; + 6BAF3DBB1211897E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 343"; + rLen = 0; + rLoc = 27840; + rType = 0; + vrLen = 637; + vrLoc = 7363; + }; + 6BAF3DBD1211898E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 342"; + rLen = 0; + rLoc = 27579; + rType = 0; + vrLen = 647; + vrLoc = 7363; + }; + 6BAF3DBE1211A5DE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 53"; + rLen = 0; + rLoc = 2256; + rType = 0; + vrLen = 493; + vrLoc = 1189; + }; + 6BAF3DBF1211A5DE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 215"; + rLen = 0; + rLoc = 18525; + rType = 0; + vrLen = 622; + vrLoc = 4991; + }; + 6BAF3DC01211A5DE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 215"; + rLen = 0; + rLoc = 18525; + rType = 0; + vrLen = 577; + vrLoc = 5036; + }; + 6BAF3DC11211A5DE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 45"; + rLen = 0; + rLoc = 2224; + rType = 0; + vrLen = 510; + vrLoc = 1062; + }; + 6BAF3DC21211A5DE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 215"; + rLen = 0; + rLoc = 18525; + rType = 0; + vrLen = 622; + vrLoc = 4991; + }; + 6BAF3DC31211A5DE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 53"; + rLen = 0; + rLoc = 2256; + rType = 0; + vrLen = 493; + vrLoc = 1189; + }; + 6BAF3DC41211A5DE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 215"; + rLen = 0; + rLoc = 18525; + rType = 0; + vrLen = 621; + vrLoc = 4991; + }; + 6BAF3DE11211A971008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 54"; + rLen = 0; + rLoc = 2256; + rType = 0; + vrLen = 506; + vrLoc = 1189; + }; + 6BAF3DE21211A971008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 128"; + rLen = 0; + rLoc = 3850; + rType = 0; + vrLen = 1149; + vrLoc = 2692; + }; + 6BAF3DE31211A971008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 115"; + rLen = 12; + rLoc = 3732; + rType = 0; + vrLen = 672; + vrLoc = 3047; + }; + 6BAF3DE41211A971008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 226"; + rLen = 0; + rLoc = 17965; + rType = 0; + vrLen = 1039; + vrLoc = 5334; + }; + 6BAF3DE51211A971008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 54"; + rLen = 0; + rLoc = 2256; + rType = 0; + vrLen = 506; + vrLoc = 1189; + }; + 6BAF3DE61211A971008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 115"; + rLen = 12; + rLoc = 3732; + rType = 0; + vrLen = 672; + vrLoc = 3047; + }; + 6BAF3DE71211A971008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 255"; + rLen = 0; + rLoc = 18800; + rType = 0; + vrLen = 594; + vrLoc = 6196; + }; + 6BAF3DFA1211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 99"; + rLen = 0; + rLoc = 3025; + rType = 0; + vrLen = 620; + vrLoc = 2624; + }; + 6BAF3DFB1211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 409"; + rLen = 397; + rLoc = 10746; + rType = 0; + vrLen = 1082; + vrLoc = 10451; + }; + 6BAF3DFC1211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 71"; + rLen = 57; + rLoc = 1851; + rType = 0; + vrLen = 612; + vrLoc = 1578; + }; + 6BAF3DFD1211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 50"; + rLen = 0; + rLoc = 2223; + rType = 0; + vrLen = 480; + vrLoc = 1232; + }; + 6BAF3DFE1211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 429"; + rLen = 0; + rLoc = 23498; + rType = 0; + vrLen = 742; + vrLoc = 10389; + }; + 6BAF3DFF1211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 49"; + rLen = 0; + rLoc = 2200; + rType = 0; + vrLen = 499; + vrLoc = 1189; + }; + 6BAF3E001211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 56"; + rLen = 0; + rLoc = 2494; + rType = 0; + vrLen = 525; + vrLoc = 1163; + }; + 6BAF3E011211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 56"; + rLen = 0; + rLoc = 2298; + rType = 0; + vrLen = 525; + vrLoc = 1163; + }; + 6BAF3E021211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 429"; + rLen = 0; + rLoc = 23498; + rType = 0; + vrLen = 742; + vrLoc = 10389; + }; + 6BAF3E031211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 50"; + rLen = 0; + rLoc = 2223; + rType = 0; + vrLen = 480; + vrLoc = 1232; + }; + 6BAF3E041211AEB2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 231"; + rLen = 0; + rLoc = 15479; + rType = 0; + vrLen = 856; + vrLoc = 5011; + }; + 6BAF3E0B1211AEC5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 231"; + rLen = 0; + rLoc = 15479; + rType = 0; + vrLen = 832; + vrLoc = 5460; + }; + 6BAF3E221211AED5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 231"; + rLen = 0; + rLoc = 15479; + rType = 0; + vrLen = 548; + vrLoc = 10781; + }; + 6BAF3E241211AF03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 231"; + rLen = 0; + rLoc = 15479; + rType = 0; + vrLen = 599; + vrLoc = 4615; + }; + 6BAF3E251211AF03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + rLen = 0; + rLoc = 1813; + rType = 1; + }; + 6BAF3E261211AF03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 231"; + rLen = 0; + rLoc = 15479; + rType = 0; + vrLen = 599; + vrLoc = 4615; + }; + 6BAF3E271211AF03008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1797"; + rLen = 0; + rLoc = 48637; + rType = 0; + vrLen = 745; + vrLoc = 48307; + }; + 6BAF3E281211AF3A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1797"; + rLen = 0; + rLoc = 48637; + rType = 0; + vrLen = 849; + vrLoc = 48726; + }; + 6BAF3E291211AF3A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + rLen = 0; + rLoc = 645; + rType = 1; + }; + 6BAF3E2A1211AF3A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1797"; + rLen = 0; + rLoc = 48637; + rType = 0; + vrLen = 849; + vrLoc = 48726; + }; + 6BAF3E2B1211AF3A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 224"; + rLen = 0; + rLoc = 15243; + rType = 0; + vrLen = 1030; + vrLoc = 7656; + }; + 6BAF3E2F1211AFC5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 281"; + rLen = 0; + rLoc = 18219; + rType = 0; + vrLen = 1053; + vrLoc = 6392; + }; + 6BAF3E311211AFF9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 292"; + rLen = 0; + rLoc = 18514; + rType = 0; + vrLen = 968; + vrLoc = 6482; + }; + 6BAF3E331211B052008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 318"; + rLen = 0; + rLoc = 19428; + rType = 0; + vrLen = 944; + vrLoc = 7445; + }; + 6BAF3E371211B0F6008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 603"; + rLen = 0; + rLoc = 32058; + rType = 0; + vrLen = 1157; + vrLoc = 13768; + }; + 6BAF3E3B1211B16B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 318"; + rLen = 6; + rLoc = 19411; + rType = 0; + vrLen = 892; + vrLoc = 7718; + }; + 6BAF3E3C1211B16B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 102"; + rLen = 0; + rLoc = 3079; + rType = 0; + vrLen = 579; + vrLoc = 2624; + }; + 6BAF3E3D1211B16B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 318"; + rLen = 6; + rLoc = 19411; + rType = 0; + vrLen = 892; + vrLoc = 7718; + }; + 6BAF3E3E1211B16B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 102"; + rLen = 0; + rLoc = 3079; + rType = 0; + vrLen = 579; + vrLoc = 2624; + }; + 6BAF3E3F1211B16B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FD10068B150018F96F /* DetourCommon.cpp */; + name = "DetourCommon.cpp: 297"; + rLen = 0; + rLoc = 7687; + rType = 0; + vrLen = 856; + vrLoc = 7175; + }; + 6BAF3E421211B19C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FD10068B150018F96F /* DetourCommon.cpp */; + name = "DetourCommon.cpp: 299"; + rLen = 0; + rLoc = 7739; + rType = 0; + vrLen = 888; + vrLoc = 7175; + }; + 6BAF3E431211B19C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 318"; + rLen = 6; + rLoc = 19411; + rType = 0; + vrLen = 915; + vrLoc = 7698; + }; + 6BAF3E441211B19C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FD10068B150018F96F /* DetourCommon.cpp */; + name = "DetourCommon.cpp: 299"; + rLen = 0; + rLoc = 7739; + rType = 0; + vrLen = 888; + vrLoc = 7175; + }; + 6BAF3E451211B19C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 304"; + rLen = 0; + rLoc = 18800; + rType = 0; + vrLen = 881; + vrLoc = 7450; + }; + 6BAF3E471211B20B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 254"; + rLen = 0; + rLoc = 17088; + rType = 0; + vrLen = 869; + vrLoc = 5788; + }; + 6BAF3E491211B2B9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 255"; + rLen = 0; + rLoc = 17126; + rType = 0; + vrLen = 869; + vrLoc = 5788; + }; + 6BAF3E4E1211B490008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 97"; + rLen = 231; + rLoc = 2895; + rType = 0; + vrLen = 956; + vrLoc = 2784; + }; + 6BAF3E4F1211B490008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 99"; + rLen = 14; + rLoc = 4048; + rType = 0; + vrLen = 1681; + vrLoc = 3152; + }; + 6BAF3E501211B490008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 257"; + rLen = 0; + rLoc = 17176; + rType = 0; + vrLen = 943; + vrLoc = 7552; + }; + 6BAF3E511211B490008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 97"; + rLen = 231; + rLoc = 2895; + rType = 0; + vrLen = 956; + vrLoc = 2784; + }; + 6BAF3E521211B490008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 99"; + rLen = 14; + rLoc = 4048; + rType = 0; + vrLen = 1681; + vrLoc = 3152; + }; + 6BAF3E531211B490008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 314"; + rLen = 0; + rLoc = 19241; + rType = 0; + vrLen = 1017; + vrLoc = 7474; + }; + 6BAF3E551211B49A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 254"; + rLen = 0; + rLoc = 17088; + rType = 0; + vrLen = 907; + vrLoc = 6052; + }; + 6BAF3E571211B50E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 606"; + rLen = 0; + rLoc = 32280; + rType = 0; + vrLen = 1120; + vrLoc = 13947; + }; + 6BAF3E5A1211B59C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 600"; + rLen = 16; + rLoc = 31844; + rType = 0; + vrLen = 1120; + vrLoc = 13947; + }; + 6BAF3E5B1211B59C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + rLen = 1; + rLoc = 96; + rType = 1; + }; + 6BAF3E5C1211B59C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 600"; + rLen = 16; + rLoc = 31844; + rType = 0; + vrLen = 1120; + vrLoc = 13947; + }; + 6BAF3E5D1211B59C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 399"; + rLen = 0; + rLoc = 11193; + rType = 0; + vrLen = 845; + vrLoc = 10680; + }; + 6BAF3E611211B713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 395"; + rLen = 0; + rLoc = 11105; + rType = 0; + vrLen = 872; + vrLoc = 10680; + }; + 6BAF3E621211B713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 58"; + rLen = 46; + rLoc = 2448; + rType = 0; + vrLen = 484; + vrLoc = 1333; + }; + 6BAF3E631211B713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 395"; + rLen = 0; + rLoc = 11105; + rType = 0; + vrLen = 872; + vrLoc = 10680; + }; + 6BAF3E641211B713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 58"; + rLen = 46; + rLoc = 2448; + rType = 0; + vrLen = 484; + vrLoc = 1333; + }; + 6BAF3E651211B713008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 586"; + rLen = 0; + rLoc = 28507; + rType = 0; + vrLen = 885; + vrLoc = 13669; + }; + 6BAF3E691211B7B6008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 589"; + rLen = 0; + rLoc = 28609; + rType = 0; + vrLen = 882; + vrLoc = 13669; + }; + 6BAF3E6D1211B937008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 38"; + rLen = 0; + rLoc = 2015; + rType = 0; + vrLen = 533; + vrLoc = 1139; + }; + 6BAF3E6E1211B937008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 591"; + rLen = 0; + rLoc = 28786; + rType = 0; + vrLen = 884; + vrLoc = 13669; + }; + 6BAF3E6F1211B937008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 591"; + rLen = 0; + rLoc = 28786; + rType = 0; + vrLen = 884; + vrLoc = 13669; + }; + 6BAF3E701211B937008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 38"; + rLen = 0; + rLoc = 2015; + rType = 0; + vrLen = 533; + vrLoc = 1139; + }; + 6BAF3E711211B937008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 594"; + rLen = 0; + rLoc = 28861; + rType = 0; + vrLen = 953; + vrLoc = 13669; + }; + 6BAF3E731211B960008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 629"; + rLen = 0; + rLoc = 32275; + rType = 0; + vrLen = 1182; + vrLoc = 14458; + }; + 6BAF3E751211B971008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 613"; + rLen = 0; + rLoc = 29184; + rType = 0; + vrLen = 1207; + vrLoc = 14458; + }; + 6BAF3E771212869F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 67"; + rLen = 17; + rLoc = 2624; + rType = 0; + vrLen = 469; + vrLoc = 1422; + }; + 6BAF3E781212869F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 118"; + rLen = 15; + rLoc = 3552; + rType = 0; + vrLen = 860; + vrLoc = 3128; + }; + 6BAF3E791212869F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 582"; + rLen = 16; + rLoc = 28030; + rType = 0; + vrLen = 942; + vrLoc = 13771; + }; + 6BAF3E7A1212869F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 100"; + rLen = 0; + rLoc = 3600; + rType = 0; + vrLen = 688; + vrLoc = 2230; + }; + 6BAF3E7B1212869F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 100"; + rLen = 0; + rLoc = 3600; + rType = 0; + vrLen = 688; + vrLoc = 2230; + }; + 6BAF3E7C1212869F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 98"; + rLen = 172; + rLoc = 3409; + rType = 0; + vrLen = 688; + vrLoc = 2230; + }; + 6BAF3E7D1212869F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 98"; + rLen = 172; + rLoc = 3409; + rType = 0; + vrLen = 688; + vrLoc = 2230; + }; + 6BAF3E7E1212869F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 67"; + rLen = 17; + rLoc = 2624; + rType = 0; + vrLen = 469; + vrLoc = 1422; + }; + 6BAF3E7F1212869F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 118"; + rLen = 15; + rLoc = 3552; + rType = 0; + vrLen = 860; + vrLoc = 3128; + }; + 6BAF3E801212869F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 579"; + rLen = 0; + rLoc = 27840; + rType = 0; + vrLen = 696; + vrLoc = 13439; + }; + 6BAF3E8112128712008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 586"; + rLen = 0; + rLoc = 27840; + rType = 0; + vrLen = 792; + vrLoc = 13596; + }; + 6BAF3E821212879C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 676"; + rLen = 0; + rLoc = 30213; + rType = 0; + vrLen = 1140; + vrLoc = 15926; + }; + 6BAF3E8312128821008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 584"; + rLen = 0; + rLoc = 27840; + rType = 0; + vrLen = 463; + vrLoc = 13405; + }; + 6BAF3E84121289DC008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 606"; + rLen = 0; + rLoc = 27840; + rType = 0; + vrLen = 618; + vrLoc = 13765; + }; + 6BAF3E8912128ABE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 604"; + rLen = 0; + rLoc = 27840; + rType = 0; + vrLen = 632; + vrLoc = 14010; + }; + 6BAF3E8B12128B04008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 99"; + rLen = 13; + rLoc = 3436; + rType = 0; + vrLen = 591; + vrLoc = 2178; + }; + 6BAF3E8C12128B04008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 475"; + rLen = 0; + rLoc = 25712; + rType = 0; + vrLen = 682; + vrLoc = 11427; + }; + 6BAF3E8D12128B04008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 619"; + rLen = 0; + rLoc = 27840; + rType = 0; + vrLen = 656; + vrLoc = 14091; + }; + 6BAF3E8E12128B04008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 97"; + rLen = 12; + rLoc = 3395; + rType = 0; + vrLen = 591; + vrLoc = 2178; + }; + 6BAF3E8F12128B04008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 478"; + rLen = 0; + rLoc = 26237; + rType = 0; + vrLen = 679; + vrLoc = 11427; + }; + 6BAF3E9012128B04008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 98"; + rLen = 13; + rLoc = 3415; + rType = 0; + vrLen = 591; + vrLoc = 2178; + }; + 6BAF3E9112128B04008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 475"; + rLen = 0; + rLoc = 25712; + rType = 0; + vrLen = 682; + vrLoc = 11427; + }; + 6BAF3E9212128B04008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 99"; + rLen = 13; + rLoc = 3436; + rType = 0; + vrLen = 591; + vrLoc = 2178; + }; + 6BAF3E9312128B04008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 476"; + rLen = 0; + rLoc = 25712; + rType = 0; + vrLen = 614; + vrLoc = 11427; + }; + 6BAF3E9712128BBD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 101"; + rLen = 0; + rLoc = 3602; + rType = 0; + vrLen = 507; + vrLoc = 2178; + }; + 6BAF3E9812128BBD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 452"; + rLen = 0; + rLoc = 24560; + rType = 0; + vrLen = 409; + vrLoc = 11162; + }; + 6BAF3E9912128BBD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 475"; + rLen = 0; + rLoc = 25712; + rType = 0; + vrLen = 649; + vrLoc = 11427; + }; + 6BAF3E9A12128BBD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 101"; + rLen = 0; + rLoc = 3602; + rType = 0; + vrLen = 507; + vrLoc = 2178; + }; + 6BAF3E9B12128BBD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 452"; + rLen = 0; + rLoc = 24560; + rType = 0; + vrLen = 409; + vrLoc = 11162; + }; + 6BAF3E9C12128BBD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 101"; + rLen = 0; + rLoc = 3602; + rType = 0; + vrLen = 507; + vrLoc = 2178; + }; + 6BAF3E9D12128BBD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 718"; + rLen = 0; + rLoc = 30213; + rType = 0; + vrLen = 1036; + vrLoc = 16756; + }; + 6BAF3EA512128ED2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 574"; + rLen = 0; + rLoc = 27784; + rType = 0; + vrLen = 526; + vrLoc = 13377; + }; + 6BAF3EA812128F28008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 719"; + rLen = 0; + rLoc = 29589; + rType = 0; + vrLen = 893; + vrLoc = 16639; + }; + 6BAF3EAD12128F51008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 725"; + rLen = 0; + rLoc = 29589; + rType = 0; + vrLen = 925; + vrLoc = 16686; + }; + 6BAF3EB11212901F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 330"; + rLen = 0; + rLoc = 18874; + rType = 0; + vrLen = 802; + vrLoc = 7765; + }; + 6BAF3EB31212906D008CFCDF /* CrowdTool.cpp:774 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + functionName = "CrowdManager::update(const float dt, dtNavMesh* nmesh)"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 774; + location = Recast; + modificationTime = 303302369.988047; + state = 1; + }; + 6BAF3EB4121290A2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 332"; + rLen = 0; + rLoc = 18874; + rType = 0; + vrLen = 666; + vrLoc = 7743; + }; + 6BAF3EBB12129112008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 754"; + rLen = 0; + rLoc = 29589; + rType = 0; + vrLen = 950; + vrLoc = 17343; + }; + 6BAF3EBE12129166008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 333"; + rLen = 0; + rLoc = 18874; + rType = 0; + vrLen = 847; + vrLoc = 7834; + }; + 6BAF3EC1121292C9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 327"; + rLen = 0; + rLoc = 18874; + rType = 0; + vrLen = 633; + vrLoc = 7834; + }; + 6BAF3EC312129336008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 334"; + rLen = 0; + rLoc = 18874; + rType = 0; + vrLen = 634; + vrLoc = 7834; + }; + 6BAF3EC61212937F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 334"; + rLen = 0; + rLoc = 18874; + rType = 0; + vrLen = 634; + vrLoc = 7834; + }; + 6BAF3ECA12129468008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 101"; + rLen = 0; + rLoc = 3602; + rType = 0; + vrLen = 507; + vrLoc = 2178; + }; + 6BAF3ECB12129468008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 749"; + rLen = 0; + rLoc = 29589; + rType = 0; + vrLen = 952; + vrLoc = 17419; + }; + 6BAF3ECC12129468008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 749"; + rLen = 0; + rLoc = 29589; + rType = 0; + vrLen = 952; + vrLoc = 17419; + }; + 6BAF3ECD12129468008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 101"; + rLen = 0; + rLoc = 3602; + rType = 0; + vrLen = 507; + vrLoc = 2178; + }; + 6BAF3ECE12129468008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 765"; + rLen = 0; + rLoc = 29589; + rType = 0; + vrLen = 942; + vrLoc = 17419; + }; + 6BAF3ED1121294B1008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 217"; + rLen = 0; + rLoc = 14545; + rType = 0; + vrLen = 690; + vrLoc = 4760; + }; + 6BAF3ED3121294D7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 217"; + rLen = 0; + rLoc = 14545; + rType = 0; + vrLen = 691; + vrLoc = 4760; + }; + 6BAF3ED612129532008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 758"; + rLen = 0; + rLoc = 29589; + rType = 0; + vrLen = 964; + vrLoc = 17379; + }; + 6BAF3EE01212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 507"; + rLen = 0; + rLoc = 15816; + rType = 0; + vrLen = 1054; + vrLoc = 15060; + }; + 6BAF3EE11212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 93"; + rLen = 18; + rLoc = 3217; + rType = 0; + vrLen = 644; + vrLoc = 1718; + }; + 6BAF3EE21212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 224"; + rLen = 0; + rLoc = 14654; + rType = 0; + vrLen = 690; + vrLoc = 4971; + }; + 6BAF3EE31212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 758"; + rLen = 0; + rLoc = 29589; + rType = 0; + vrLen = 1003; + vrLoc = 17379; + }; + 6BAF3EE41212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 507"; + rLen = 0; + rLoc = 15816; + rType = 0; + vrLen = 1054; + vrLoc = 15060; + }; + 6BAF3EE51212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 54"; + rLen = 0; + rLoc = 1701; + rType = 0; + vrLen = 1036; + vrLoc = 1258; + }; + 6BAF3EE61212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 101"; + rLen = 0; + rLoc = 3541; + rType = 0; + vrLen = 483; + vrLoc = 2178; + }; + 6BAF3EE71212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 484"; + rLen = 0; + rLoc = 24500; + rType = 0; + vrLen = 561; + vrLoc = 11661; + }; + 6BAF3EE81212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 101"; + rLen = 0; + rLoc = 3541; + rType = 0; + vrLen = 483; + vrLoc = 2178; + }; + 6BAF3EE91212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 510"; + rLen = 0; + rLoc = 25568; + rType = 0; + vrLen = 644; + vrLoc = 12811; + }; + 6BAF3EEA1212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 93"; + rLen = 6; + rLoc = 3194; + rType = 0; + vrLen = 644; + vrLoc = 1718; + }; + 6BAF3EEB1212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 224"; + rLen = 0; + rLoc = 14654; + rType = 0; + vrLen = 690; + vrLoc = 4971; + }; + 6BAF3EEC1212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 93"; + rLen = 18; + rLoc = 3217; + rType = 0; + vrLen = 644; + vrLoc = 1718; + }; + 6BAF3EED1212B890008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 219"; + rLen = 0; + rLoc = 14592; + rType = 0; + vrLen = 678; + vrLoc = 4826; + }; + 6BAF3EF41213D000008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 204"; + rLen = 0; + rLoc = 14218; + rType = 0; + vrLen = 701; + vrLoc = 4826; + }; + 6BAF3EF71213D049008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 212"; + rLen = 0; + rLoc = 14406; + rType = 0; + vrLen = 699; + vrLoc = 4826; + }; + 6BAF3EF91213D0BF008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 700"; + rLen = 0; + rLoc = 30160; + rType = 0; + vrLen = 961; + vrLoc = 16018; + }; + 6BAF3EFB1213D156008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 210"; + rLen = 0; + rLoc = 14373; + rType = 0; + vrLen = 707; + vrLoc = 4824; + }; + 6BAF3EFD1213D1A4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 204"; + rLen = 0; + rLoc = 14218; + rType = 0; + vrLen = 707; + vrLoc = 4824; + }; + 6BAF3EFF1213D232008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 222"; + rLen = 0; + rLoc = 14546; + rType = 0; + vrLen = 783; + vrLoc = 4824; + }; + 6BAF3F001213D2A5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 682"; + rLen = 0; + rLoc = 29612; + rType = 0; + vrLen = 836; + vrLoc = 16173; + }; + 6BAF3F051213D3AA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 682"; + rLen = 0; + rLoc = 29612; + rType = 0; + vrLen = 836; + vrLoc = 16173; + }; + 6BAF3F061213D3AA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 651"; + rLen = 0; + rLoc = 27840; + rType = 0; + vrLen = 661; + vrLoc = 15008; + }; + 6BAF3F081213D431008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 745"; + rLen = 0; + rLoc = 30191; + rType = 0; + vrLen = 1138; + vrLoc = 16982; + }; + 6BAF3F0B1213D450008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 714"; + rLen = 0; + rLoc = 29585; + rType = 0; + vrLen = 883; + vrLoc = 16831; + }; + 6BAF3F121213D4B5008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 720"; + rLen = 0; + rLoc = 29609; + rType = 0; + vrLen = 1018; + vrLoc = 16879; + }; + 6BAF3F141213D4C2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 720"; + rLen = 0; + rLoc = 29609; + rType = 0; + vrLen = 953; + vrLoc = 8633; + }; + 6BAF3F171213D535008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 723"; + rLen = 0; + rLoc = 29585; + rType = 0; + vrLen = 965; + vrLoc = 16657; + }; + 6BAF3F191213D556008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 723"; + rLen = 0; + rLoc = 29585; + rType = 0; + vrLen = 965; + vrLoc = 16657; + }; + 6BAF3F1C1213D599008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 219"; + rLen = 0; + rLoc = 14547; + rType = 0; + vrLen = 717; + vrLoc = 4662; + }; + 6BAF3F1E1213D5E4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 723"; + rLen = 0; + rLoc = 29960; + rType = 0; + vrLen = 1067; + vrLoc = 16879; + }; + 6BAF3F201213D5F1008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "warning: 'void getPointAlongPath(float, const float*, int, float*)' defined but not used"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + rLen = 0; + rLoc = 1165; + rType = 1; + }; + 6BAF3F211213D5F1008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 623"; + rLen = 0; + rLoc = 27840; + rType = 0; + vrLen = 686; + vrLoc = 14544; + }; + 6BAF3F361213DED3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 94"; + rLen = 0; + rLoc = 2881; + rType = 0; + vrLen = 602; + vrLoc = 2622; + }; + 6BAF3F371213DED3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 250"; + rLen = 0; + rLoc = 4678; + rType = 0; + vrLen = 813; + vrLoc = 5895; + }; + 6BAF3F381213DED3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 94"; + rLen = 0; + rLoc = 2881; + rType = 0; + vrLen = 602; + vrLoc = 2622; + }; + 6BAF3F391213DED3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 357"; + rLen = 0; + rLoc = 9124; + rType = 0; + vrLen = 778; + vrLoc = 8265; + }; + 6BAF3F3E1213E00F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 239"; + rLen = 0; + rLoc = 6554; + rType = 0; + vrLen = 1278; + vrLoc = 5503; + }; + 6BAF3F3F1213E00F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 403"; + rLen = 0; + rLoc = 10447; + rType = 0; + vrLen = 1057; + vrLoc = 9369; + }; + 6BAF3F401213E00F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 239"; + rLen = 0; + rLoc = 6554; + rType = 0; + vrLen = 1278; + vrLoc = 5503; + }; + 6BAF3F411213E00F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 499"; + rLen = 0; + rLoc = 12797; + rType = 0; + vrLen = 586; + vrLoc = 12003; + }; + 6BAF3F4B1213E0AD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 238"; + rLen = 87; + rLoc = 6467; + rType = 0; + vrLen = 1079; + vrLoc = 5702; + }; + 6BAF3F4C1213E0AD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'vcpy' was not declared in this scope"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + rLen = 1; + rLoc = 470; + rType = 1; + }; + 6BAF3F4D1213E0AD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 390"; + rLen = 0; + rLoc = 9839; + rType = 0; + vrLen = 620; + vrLoc = 9231; + }; + 6BAF3F4E1213E0AD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 238"; + rLen = 87; + rLoc = 6467; + rType = 0; + vrLen = 1079; + vrLoc = 5702; + }; + 6BAF3F4F1213E0AD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 462"; + rLen = 0; + rLoc = 11908; + rType = 0; + vrLen = 801; + vrLoc = 11186; + }; + 6BAF3F521213E1CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 92"; + rLen = 0; + rLoc = 2446; + rType = 0; + vrLen = 536; + vrLoc = 1899; + }; + 6BAF3F531213E1CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 133"; + rLen = 0; + rLoc = 4678; + rType = 0; + vrLen = 753; + vrLoc = 3358; + }; + 6BAF3F541213E1CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 164"; + rLen = 0; + rLoc = 4678; + rType = 0; + vrLen = 809; + vrLoc = 3972; + }; + 6BAF3F551213E1CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 93"; + rLen = 18; + rLoc = 3217; + rType = 0; + vrLen = 679; + vrLoc = 1706; + }; + 6BAF3F561213E1CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 133"; + rLen = 0; + rLoc = 4678; + rType = 0; + vrLen = 753; + vrLoc = 3358; + }; + 6BAF3F571213E1CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 92"; + rLen = 0; + rLoc = 2446; + rType = 0; + vrLen = 536; + vrLoc = 1899; + }; + 6BAF3F581213E1CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 133"; + rLen = 0; + rLoc = 4678; + rType = 0; + vrLen = 753; + vrLoc = 3358; + }; + 6BAF3F5B1213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 238"; + rLen = 87; + rLoc = 6467; + rType = 0; + vrLen = 1279; + vrLoc = 5502; + }; + 6BAF3F5C1213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 800"; + rLen = 148; + rLoc = 22296; + rType = 0; + vrLen = 1154; + vrLoc = 21529; + }; + 6BAF3F5D1213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 146"; + rLen = 23; + rLoc = 3457; + rType = 0; + vrLen = 651; + vrLoc = 2829; + }; + 6BAF3F5E1213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 850"; + rLen = 0; + rLoc = 24458; + rType = 0; + vrLen = 635; + vrLoc = 20528; + }; + 6BAF3F5F1213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 238"; + rLen = 87; + rLoc = 6467; + rType = 0; + vrLen = 1279; + vrLoc = 5502; + }; + 6BAF3F601213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 629"; + rLen = 0; + rLoc = 17045; + rType = 0; + vrLen = 848; + vrLoc = 13797; + }; + 6BAF3F611213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 73"; + rLen = 0; + rLoc = 2057; + rType = 0; + vrLen = 562; + vrLoc = 1742; + }; + 6BAF3F621213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 800"; + rLen = 148; + rLoc = 22296; + rType = 0; + vrLen = 1154; + vrLoc = 21529; + }; + 6BAF3F631213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 638"; + rLen = 0; + rLoc = 17039; + rType = 0; + vrLen = 694; + vrLoc = 14909; + }; + 6BAF3F641213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 96"; + rLen = 0; + rLoc = 2429; + rType = 0; + vrLen = 462; + vrLoc = 2167; + }; + 6BAF3F651213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 638"; + rLen = 0; + rLoc = 17033; + rType = 0; + vrLen = 729; + vrLoc = 14909; + }; + 6BAF3F661213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 73"; + rLen = 0; + rLoc = 2051; + rType = 0; + vrLen = 575; + vrLoc = 1845; + }; + 6BAF3F671213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 640"; + rLen = 0; + rLoc = 16955; + rType = 0; + vrLen = 750; + vrLoc = 14909; + }; + 6BAF3F681213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 95"; + rLen = 0; + rLoc = 2394; + rType = 0; + vrLen = 543; + vrLoc = 1845; + }; + 6BAF3F691213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1019"; + rLen = 0; + rLoc = 28904; + rType = 0; + vrLen = 874; + vrLoc = 23975; + }; + 6BAF3F6A1213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 146"; + rLen = 23; + rLoc = 3457; + rType = 0; + vrLen = 651; + vrLoc = 2829; + }; + 6BAF3F6B1213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 850"; + rLen = 0; + rLoc = 24458; + rType = 0; + vrLen = 635; + vrLoc = 20528; + }; + 6BAF3F6C1213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 146"; + rLen = 23; + rLoc = 3457; + rType = 0; + vrLen = 651; + vrLoc = 2829; + }; + 6BAF3F6D1213E45B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1075"; + rLen = 8; + rLoc = 30596; + rType = 0; + vrLen = 1073; + vrLoc = 25685; + }; + 6BAF3F6E1213E496008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1077"; + rLen = 0; + rLoc = 30638; + rType = 0; + vrLen = 1020; + vrLoc = 25685; + }; + 6BAF3F721213E4AA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1077"; + rLen = 0; + rLoc = 30642; + rType = 0; + vrLen = 1016; + vrLoc = 25685; + }; + 6BAF3F771213E57F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 94"; + rLen = 0; + rLoc = 2373; + rType = 0; + vrLen = 510; + vrLoc = 2078; + }; + 6BAF3F781213E57F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'struct Agent' has no member named 'colRef'"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + rLen = 1; + rLoc = 680; + rType = 1; + }; + 6BAF3F791213E57F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1074"; + rLen = 0; + rLoc = 30568; + rType = 0; + vrLen = 1019; + vrLoc = 25685; + }; + 6BAF3F7A1213E57F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 94"; + rLen = 0; + rLoc = 2373; + rType = 0; + vrLen = 510; + vrLoc = 2078; + }; + 6BAF3F7B1213E57F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 629"; + rLen = 0; + rLoc = 16393; + rType = 0; + vrLen = 1034; + vrLoc = 14724; + }; + 6BAF3F7D1213E5D4008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1074"; + rLen = 0; + rLoc = 30393; + rType = 0; + vrLen = 1092; + vrLoc = 25785; + }; + 6BAF3F7E1213E674008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 95"; + rLen = 0; + rLoc = 2356; + rType = 0; + vrLen = 491; + vrLoc = 2078; + }; + 6BAF3F7F1213E674008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1075"; + rLen = 0; + rLoc = 30534; + rType = 0; + vrLen = 1095; + vrLoc = 25785; + }; + 6BAF3F801213E674008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1075"; + rLen = 0; + rLoc = 30534; + rType = 0; + vrLen = 1095; + vrLoc = 25785; + }; + 6BAF3F811213E674008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 95"; + rLen = 0; + rLoc = 2356; + rType = 0; + vrLen = 491; + vrLoc = 2078; + }; + 6BAF3F821213E674008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 629"; + rLen = 0; + rLoc = 16417; + rType = 0; + vrLen = 1098; + vrLoc = 14629; + }; + 6BAF3F901213E715008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1121"; + rLen = 124; + rLoc = 32083; + rType = 0; + vrLen = 880; + vrLoc = 31470; + }; + 6BAF3F911213E715008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1083"; + rLen = 8; + rLoc = 30596; + rType = 0; + vrLen = 1138; + vrLoc = 26044; + }; + 6BAF3F921213E715008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 641"; + rLen = 0; + rLoc = 17026; + rType = 0; + vrLen = 879; + vrLoc = 14895; + }; + 6BAF3F931213E715008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1087"; + rLen = 177; + rLoc = 31183; + rType = 0; + vrLen = 1082; + vrLoc = 30815; + }; + 6BAF3F941213E715008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1083"; + rLen = 8; + rLoc = 30596; + rType = 0; + vrLen = 1138; + vrLoc = 26044; + }; + 6BAF3F951213E715008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1121"; + rLen = 124; + rLoc = 32083; + rType = 0; + vrLen = 880; + vrLoc = 31470; + }; + 6BAF3F961213E715008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1082"; + rLen = 0; + rLoc = 30524; + rType = 0; + vrLen = 1140; + vrLoc = 26044; + }; + 6BAF3F9D1213E7A1008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1103"; + rLen = 127; + rLoc = 31634; + rType = 0; + vrLen = 856; + vrLoc = 31494; + }; + 6BAF3F9E1213E7A1008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1082"; + rLen = 0; + rLoc = 30524; + rType = 0; + vrLen = 1189; + vrLoc = 26044; + }; + 6BAF3F9F1213E7A1008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1082"; + rLen = 0; + rLoc = 30524; + rType = 0; + vrLen = 1189; + vrLoc = 26044; + }; + 6BAF3FA01213E7A1008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1103"; + rLen = 127; + rLoc = 31634; + rType = 0; + vrLen = 856; + vrLoc = 31494; + }; + 6BAF3FA11213E7A1008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1089"; + rLen = 0; + rLoc = 30746; + rType = 0; + vrLen = 1016; + vrLoc = 26044; + }; + 6BAF3FA41213F545008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 95"; + rLen = 0; + rLoc = 2372; + rType = 0; + vrLen = 481; + vrLoc = 2141; + }; + 6BAF3FA51213F545008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 764"; + rLen = 0; + rLoc = 20055; + rType = 0; + vrLen = 877; + vrLoc = 18569; + }; + 6BAF3FA61213F545008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 764"; + rLen = 0; + rLoc = 20055; + rType = 0; + vrLen = 877; + vrLoc = 18569; + }; + 6BAF3FA71213F545008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 95"; + rLen = 0; + rLoc = 2372; + rType = 0; + vrLen = 481; + vrLoc = 2141; + }; + 6BAF3FA81213F545008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 768"; + rLen = 0; + rLoc = 21189; + rType = 0; + vrLen = 896; + vrLoc = 18550; + }; + 6BAF3FB41213F650008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 55"; + rLen = 0; + rLoc = 1699; + rType = 0; + vrLen = 748; + vrLoc = 1097; + }; + 6BAF3FB51213F650008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 766"; + rLen = 0; + rLoc = 21189; + rType = 0; + vrLen = 896; + vrLoc = 18550; + }; + 6BAF3FB61213F650008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 766"; + rLen = 0; + rLoc = 21189; + rType = 0; + vrLen = 896; + vrLoc = 18550; + }; + 6BAF3FB71213F650008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 55"; + rLen = 0; + rLoc = 1699; + rType = 0; + vrLen = 748; + vrLoc = 1097; + }; + 6BAF3FB81213F650008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 776"; + rLen = 0; + rLoc = 20055; + rType = 0; + vrLen = 667; + vrLoc = 19362; + }; + 6BAF3FBD1213FABE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 2125"; + rLen = 198; + rLoc = 58027; + rType = 0; + vrLen = 976; + vrLoc = 57687; + }; + 6BAF3FBE1213FABE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 124"; + rLen = 14; + rLoc = 2877; + rType = 0; + vrLen = 659; + vrLoc = 2622; + }; + 6BAF3FBF1213FABE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 881"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 785; + vrLoc = 21918; + }; + 6BAF3FC01213FABE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 881"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 785; + vrLoc = 21918; + }; + 6BAF3FC11213FABE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 124"; + rLen = 14; + rLoc = 2877; + rType = 0; + vrLen = 659; + vrLoc = 2622; + }; + 6BAF3FC21213FABE008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 902"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 781; + vrLoc = 21935; + }; + 6BAF3FC51213FAED008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 898"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 781; + vrLoc = 21935; + }; + 6BAF3FD61213FB13008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 890"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 784; + vrLoc = 22060; + }; + 6BAF3FD71213FB36008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 890"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 871; + vrLoc = 21784; + }; + 6BAF3FDB1213FB7C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 890"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 871; + vrLoc = 21784; + }; + 6BAF3FDC1213FBB3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 890"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 871; + vrLoc = 21784; + }; + 6BAF3FDF1213FC08008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 912"; + rLen = 0; + rLoc = 21475; + rType = 0; + vrLen = 347; + vrLoc = 21237; + }; + 6BAF3FE01213FC08008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 901"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 641; + vrLoc = 22113; + }; + 6BAF3FE11213FC0D008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 900"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 836; + vrLoc = 22008; + }; + 6BAF3FE41213FC74008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 950"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 843; + vrLoc = 23110; + }; + 6BAF3FE51213FCFD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 955"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 894; + vrLoc = 23063; + }; + 6BAF3FE61213FDE7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 970"; + rLen = 0; + rLoc = 23287; + rType = 0; + vrLen = 913; + vrLoc = 23561; + }; + 6BAF3FEC1213FE4F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "warning: 'int fixupCorridor2(dtPolyRef*, int, int, const dtPolyRef*, int)' defined but not used"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + rLen = 0; + rLoc = 170; + rType = 1; + }; + 6BAF3FED1213FE4F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 896"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 818; + vrLoc = 22318; + }; + 6BAF3FF01213FE87008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 896"; + rLen = 0; + rLoc = 22878; + rType = 0; + vrLen = 694; + vrLoc = 14066; + }; + 6BAF3FF41213FF23008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 916"; + rLen = 0; + rLoc = 23287; + rType = 0; + vrLen = 782; + vrLoc = 22414; + }; + 6BAF3FFC121401AB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 359"; + rLen = 0; + rLoc = 15264; + rType = 0; + vrLen = 1706; + vrLoc = 14423; + }; + 6BAF3FFD121401AB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 958"; + rLen = 0; + rLoc = 23287; + rType = 0; + vrLen = 786; + vrLoc = 23449; + }; + 6BAF3FFE121401AB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 359"; + rLen = 0; + rLoc = 15264; + rType = 0; + vrLen = 1706; + vrLoc = 14423; + }; + 6BAF3FFF121401AB008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 972"; + rLen = 0; + rLoc = 23287; + rType = 0; + vrLen = 859; + vrLoc = 23646; + }; + 6BAF4002121401F9008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 971"; + rLen = 0; + rLoc = 23287; + rType = 0; + vrLen = 859; + vrLoc = 23646; + }; + 6BAF400B1214025A008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 971"; + rLen = 0; + rLoc = 23287; + rType = 0; + vrLen = 766; + vrLoc = 23825; + }; + 6BAF400E12140296008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 975"; + rLen = 0; + rLoc = 23301; + rType = 0; + vrLen = 766; + vrLoc = 23825; + }; + 6BAF40171214034B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 181"; + rLen = 0; + rLoc = 4393; + rType = 0; + vrLen = 722; + vrLoc = 3741; + }; + 6BAF4018121404C7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 155"; + rLen = 0; + rLoc = 4118; + rType = 0; + vrLen = 755; + vrLoc = 3741; + }; + 6BAF4019121404D2008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 155"; + rLen = 0; + rLoc = 4118; + rType = 0; + vrLen = 421; + vrLoc = 3949; + }; + 6BAF401C1214064F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 124"; + rLen = 14; + rLoc = 2877; + rType = 0; + vrLen = 659; + vrLoc = 2622; + }; + 6BAF401D1214064F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 965"; + rLen = 0; + rLoc = 24204; + rType = 0; + vrLen = 740; + vrLoc = 23427; + }; + 6BAF401E1214064F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 965"; + rLen = 0; + rLoc = 24204; + rType = 0; + vrLen = 740; + vrLoc = 23427; + }; + 6BAF401F1214064F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 124"; + rLen = 14; + rLoc = 2877; + rType = 0; + vrLen = 659; + vrLoc = 2622; + }; + 6BAF40201214064F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 978"; + rLen = 0; + rLoc = 23660; + rType = 0; + vrLen = 761; + vrLoc = 23956; + }; + 6BAF4023121406E6008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 761"; + rLen = 0; + rLoc = 18545; + rType = 0; + vrLen = 773; + vrLoc = 18482; + }; + 6BAF4028121407D7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 764"; + rLen = 0; + rLoc = 18606; + rType = 0; + vrLen = 778; + vrLoc = 18252; + }; + 6BAF402A121407FD008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 764"; + rLen = 0; + rLoc = 18606; + rType = 0; + vrLen = 686; + vrLoc = 3993; + }; + 6BAF402E12140899008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 149"; + rLen = 10; + rLoc = 3488; + rType = 0; + vrLen = 711; + vrLoc = 2725; + }; + 6BAF402F12140899008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1066"; + rLen = 106; + rLoc = 30514; + rType = 0; + vrLen = 1041; + vrLoc = 30453; + }; + 6BAF403012140899008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1169"; + rLen = 0; + rLoc = 28421; + rType = 0; + vrLen = 870; + vrLoc = 27728; + }; + 6BAF403112140899008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 149"; + rLen = 10; + rLoc = 3488; + rType = 0; + vrLen = 711; + vrLoc = 2725; + }; + 6BAF403212140899008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1066"; + rLen = 106; + rLoc = 30514; + rType = 0; + vrLen = 1041; + vrLoc = 30453; + }; + 6BAF403312140899008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1158"; + rLen = 0; + rLoc = 28004; + rType = 0; + vrLen = 900; + vrLoc = 27896; + }; + 6BAF4039121408E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1066"; + rLen = 106; + rLoc = 30514; + rType = 0; + vrLen = 985; + vrLoc = 30453; + }; + 6BAF403A121408E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1158"; + rLen = 0; + rLoc = 28004; + rType = 0; + vrLen = 918; + vrLoc = 28118; + }; + 6BAF403B121408E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1158"; + rLen = 0; + rLoc = 28004; + rType = 0; + vrLen = 918; + vrLoc = 28118; + }; + 6BAF403C121408E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 1066"; + rLen = 106; + rLoc = 30514; + rType = 0; + vrLen = 985; + vrLoc = 30453; + }; + 6BAF403D121408E3008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1158"; + rLen = 0; + rLoc = 28004; + rType = 0; + vrLen = 722; + vrLoc = 27725; + }; + 6BAF4043121409B1008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1276"; + rLen = 0; + rLoc = 31313; + rType = 0; + vrLen = 813; + vrLoc = 30755; + }; + 6BAF404F12140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 95"; + rLen = 0; + rLoc = 3091; + rType = 0; + vrLen = 831; + vrLoc = 2674; + }; + 6BAF405012140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 175"; + rLen = 0; + rLoc = 4946; + rType = 0; + vrLen = 883; + vrLoc = 4620; + }; + 6BAF405112140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 336"; + rLen = 0; + rLoc = 8536; + rType = 0; + vrLen = 602; + vrLoc = 8368; + }; + 6BAF405212140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 452"; + rLen = 0; + rLoc = 11717; + rType = 0; + vrLen = 749; + vrLoc = 11336; + }; + 6BAF405312140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 901"; + rLen = 0; + rLoc = 25430; + rType = 0; + vrLen = 1017; + vrLoc = 24722; + }; + 6BAF405412140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 150"; + rLen = 0; + rLoc = 3515; + rType = 0; + vrLen = 595; + vrLoc = 2855; + }; + 6BAF405512140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1279"; + rLen = 0; + rLoc = 31419; + rType = 0; + vrLen = 1031; + vrLoc = 31019; + }; + 6BAF405612140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 95"; + rLen = 0; + rLoc = 3091; + rType = 0; + vrLen = 831; + vrLoc = 2674; + }; + 6BAF405712140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 175"; + rLen = 0; + rLoc = 4946; + rType = 0; + vrLen = 883; + vrLoc = 4620; + }; + 6BAF405812140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 336"; + rLen = 0; + rLoc = 8536; + rType = 0; + vrLen = 602; + vrLoc = 8368; + }; + 6BAF405912140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 150"; + rLen = 0; + rLoc = 3515; + rType = 0; + vrLen = 595; + vrLoc = 2855; + }; + 6BAF405A12140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 452"; + rLen = 0; + rLoc = 11717; + rType = 0; + vrLen = 749; + vrLoc = 11336; + }; + 6BAF405B12140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 901"; + rLen = 0; + rLoc = 25430; + rType = 0; + vrLen = 1017; + vrLoc = 24722; + }; + 6BAF405C12140B4E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1048"; + rLen = 0; + rLoc = 26202; + rType = 0; + vrLen = 764; + vrLoc = 25393; + }; + 6BAF405F12140C14008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1262"; + rLen = 0; + rLoc = 30951; + rType = 0; + vrLen = 822; + vrLoc = 30177; + }; + 6BAF406212140CC8008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 431"; + rLen = 0; + rLoc = 10634; + rType = 0; + vrLen = 1009; + vrLoc = 9964; + }; + 6BAF406312140E6B008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 985"; + rLen = 0; + rLoc = 23924; + rType = 0; + vrLen = 711; + vrLoc = 24076; + }; + 6BAF406412140E9E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 123"; + rLen = 0; + rLoc = 3466; + rType = 0; + vrLen = 840; + vrLoc = 2966; + }; + 6BAF406512140EA7008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 123"; + rLen = 0; + rLoc = 3466; + rType = 0; + vrLen = 840; + vrLoc = 2966; + }; + 6BAF406812141045008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 350"; + rLen = 0; + rLoc = 8565; + rType = 0; + vrLen = 661; + vrLoc = 8222; + }; + 6BAF406A12141063008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 341"; + rLen = 0; + rLoc = 8320; + rType = 0; + vrLen = 697; + vrLoc = 8222; + }; + 6BAF406F12141245008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 93"; + rLen = 0; + rLoc = 2330; + rType = 0; + vrLen = 447; + vrLoc = 2059; + }; + 6BAF407012141245008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 570"; + rLen = 0; + rLoc = 13636; + rType = 0; + vrLen = 616; + vrLoc = 13379; + }; + 6BAF407112141245008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 350"; + rLen = 0; + rLoc = 8569; + rType = 0; + vrLen = 697; + vrLoc = 8222; + }; + 6BAF407212141245008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 93"; + rLen = 0; + rLoc = 2331; + rType = 0; + vrLen = 455; + vrLoc = 2059; + }; + 6BAF407312141245008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 570"; + rLen = 0; + rLoc = 13636; + rType = 0; + vrLen = 616; + vrLoc = 13379; + }; + 6BAF407412141245008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 93"; + rLen = 0; + rLoc = 2331; + rType = 0; + vrLen = 455; + vrLoc = 2059; + }; + 6BAF407512141245008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 570"; + rLen = 0; + rLoc = 13636; + rType = 0; + vrLen = 616; + vrLoc = 13379; + }; + 6BAF407612141245008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 93"; + rLen = 0; + rLoc = 2330; + rType = 0; + vrLen = 447; + vrLoc = 2059; + }; + 6BAF407712141245008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 794"; + rLen = 0; + rLoc = 19349; + rType = 0; + vrLen = 973; + vrLoc = 18858; + }; + 6BAF407912141269008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 792"; + rLen = 0; + rLoc = 19313; + rType = 0; + vrLen = 979; + vrLoc = 18858; + }; + 6BAF407B12141277008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 792"; + rLen = 0; + rLoc = 19313; + rType = 0; + vrLen = 986; + vrLoc = 18858; + }; + 6BAF407D1214129F008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 792"; + rLen = 0; + rLoc = 19313; + rType = 0; + vrLen = 985; + vrLoc = 18858; + }; + 6BAF407F121412CA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 792"; + rLen = 0; + rLoc = 19313; + rType = 0; + vrLen = 984; + vrLoc = 18858; + }; + 6BAF408112141303008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 93"; + rLen = 8; + rLoc = 2311; + rType = 0; + vrLen = 436; + vrLoc = 2059; + }; + 6BAF408212141303008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 792"; + rLen = 0; + rLoc = 19313; + rType = 0; + vrLen = 1042; + vrLoc = 18858; + }; + 6BAF408312141303008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 792"; + rLen = 0; + rLoc = 19313; + rType = 0; + vrLen = 1042; + vrLoc = 18858; + }; + 6BAF408412141303008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 93"; + rLen = 8; + rLoc = 2311; + rType = 0; + vrLen = 436; + vrLoc = 2059; + }; + 6BAF408512141303008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 721"; + rLen = 9; + rLoc = 17113; + rType = 0; + vrLen = 777; + vrLoc = 17126; + }; + 6BAF40871214134E008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 733"; + rLen = 0; + rLoc = 17505; + rType = 0; + vrLen = 900; + vrLoc = 17272; + }; + 6BAF408B121413DA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 804"; + rLen = 0; + rLoc = 19755; + rType = 0; + vrLen = 927; + vrLoc = 19691; + }; + 6BAF408F12141771008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 810"; + rLen = 0; + rLoc = 19848; + rType = 0; + vrLen = 942; + vrLoc = 19691; + }; + 6BAF409312142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7A0F7FCBE400459200 /* imgui.h */; + name = "imgui.h: 54"; + rLen = 0; + rLoc = 1807; + rType = 0; + vrLen = 1082; + vrLoc = 1124; + }; + 6BAF409412142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 150"; + rLen = 17; + rLoc = 3370; + rType = 0; + vrLen = 628; + vrLoc = 3005; + }; + 6BAF409512142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6C0F7FCBBB00459200 /* imgui.cpp */; + name = "imgui.cpp: 518"; + rLen = 0; + rLoc = 13622; + rType = 0; + vrLen = 1082; + vrLoc = 12920; + }; + 6BAF409612142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1045"; + rLen = 13; + rLoc = 25574; + rType = 0; + vrLen = 996; + vrLoc = 24917; + }; + 6BAF409712142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 122"; + rLen = 15; + rLoc = 2741; + rType = 0; + vrLen = 485; + vrLoc = 2447; + }; + 6BAF409812142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 122"; + rLen = 0; + rLoc = 2761; + rType = 0; + vrLen = 485; + vrLoc = 2447; + }; + 6BAF409912142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 158"; + rLen = 7; + rLoc = 3572; + rType = 0; + vrLen = 641; + vrLoc = 2971; + }; + 6BAF409A12142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 150"; + rLen = 13; + rLoc = 3370; + rType = 0; + vrLen = 624; + vrLoc = 3005; + }; + 6BAF409B12142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 159"; + rLen = 7; + rLoc = 3572; + rType = 0; + vrLen = 628; + vrLoc = 3005; + }; + 6BAF409C12142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 159"; + rLen = 7; + rLoc = 3572; + rType = 0; + vrLen = 628; + vrLoc = 3005; + }; + 6BAF409D12142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 150"; + rLen = 17; + rLoc = 3370; + rType = 0; + vrLen = 628; + vrLoc = 3005; + }; + 6BAF409E12142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6C0F7FCBBB00459200 /* imgui.cpp */; + name = "imgui.cpp: 518"; + rLen = 0; + rLoc = 13622; + rType = 0; + vrLen = 1082; + vrLoc = 12920; + }; + 6BAF409F12142142008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1159"; + rLen = 0; + rLoc = 27730; + rType = 0; + vrLen = 579; + vrLoc = 27299; + }; + 6BAF40A1121421E8008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1063"; + rLen = 0; + rLoc = 26231; + rType = 0; + vrLen = 870; + vrLoc = 25143; + }; + 6BAF40A412142254008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 158"; + rLen = 0; + rLoc = 3518; + rType = 0; + vrLen = 634; + vrLoc = 3005; + }; + 6BAF40A512142254008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "warning: 'bool arePolysNeighbour(dtNavMesh*, dtPolyRef, dtPolyRef)' defined but not used"; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + rLen = 1; + rLoc = 617; + rType = 1; + }; + 6BAF40A612142254008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1049"; + rLen = 0; + rLoc = 25693; + rType = 0; + vrLen = 905; + vrLoc = 25143; + }; + 6BAF40A712142254008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 158"; + rLen = 0; + rLoc = 3518; + rType = 0; + vrLen = 634; + vrLoc = 3005; + }; + 6BAF40A812142254008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 607"; + rLen = 0; + rLoc = 14463; + rType = 0; + vrLen = 615; + vrLoc = 14379; + }; + 6BAF40AB1214239C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 161"; + rLen = 7; + rLoc = 3572; + rType = 0; + vrLen = 440; + vrLoc = 3362; + }; + 6BAF40AC1214239C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 617"; + rLen = 0; + rLoc = 14653; + rType = 0; + vrLen = 611; + vrLoc = 14379; + }; + 6BAF40AD1214239C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 617"; + rLen = 0; + rLoc = 14653; + rType = 0; + vrLen = 615; + vrLoc = 14379; + }; + 6BAF40AE1214239C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 160"; + rLen = 0; + rLoc = 3566; + rType = 0; + vrLen = 529; + vrLoc = 3112; + }; + 6BAF40AF1214239C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 617"; + rLen = 0; + rLoc = 14653; + rType = 0; + vrLen = 611; + vrLoc = 14379; + }; + 6BAF40B01214239C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 160"; + rLen = 7; + rLoc = 3572; + rType = 0; + vrLen = 529; + vrLoc = 3112; + }; + 6BAF40B11214239C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 617"; + rLen = 0; + rLoc = 14653; + rType = 0; + vrLen = 611; + vrLoc = 14379; + }; + 6BAF40B21214239C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C571211663A008CFCDF /* CrowdTool.h */; + name = "CrowdTool.h: 161"; + rLen = 7; + rLoc = 3572; + rType = 0; + vrLen = 440; + vrLoc = 3362; + }; + 6BAF40B31214239C008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 792"; + rLen = 0; + rLoc = 19527; + rType = 0; + vrLen = 1013; + vrLoc = 18874; + }; + 6BAF40B712142407008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 1043"; + rLen = 0; + rLoc = 25123; + rType = 0; + vrLen = 626; + vrLoc = 24889; + }; + 6BAF40B8121425BA008CFCDF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 18"; + rLen = 0; + rLoc = 923; + rType = 0; + vrLen = 1157; + vrLoc = 64; + }; 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1112, 3888}}"; @@ -8795,16 +15476,16 @@ }; 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 1584}}"; - sepNavSelRange = "{1582, 0}"; - sepNavVisRange = "{1269, 770}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 1600}}"; + sepNavSelRange = "{2643, 0}"; + sepNavVisRange = "{1975, 876}"; }; }; 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 18768}}"; - sepNavSelRange = "{6311, 0}"; - sepNavVisRange = "{6158, 824}"; + sepNavIntBoundsRect = "{{0, 0}, {922, 18240}}"; + sepNavSelRange = "{25430, 0}"; + sepNavVisRange = "{24722, 1017}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; @@ -8817,16 +15498,16 @@ }; 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {909, 7188}}"; - sepNavSelRange = "{7189, 0}"; - sepNavVisRange = "{7211, 531}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 7232}}"; + sepNavSelRange = "{11717, 0}"; + sepNavVisRange = "{11336, 749}"; }; }; 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 2672}}"; - sepNavSelRange = "{2888, 0}"; - sepNavVisRange = "{2397, 1325}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 3040}}"; + sepNavSelRange = "{3091, 0}"; + sepNavVisRange = "{2674, 831}"; }; }; 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */ = { @@ -8845,24 +15526,24 @@ }; 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 7744}}"; - sepNavSelRange = "{1567, 0}"; - sepNavVisRange = "{1395, 749}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 7904}}"; + sepNavSelRange = "{3552, 15}"; + sepNavVisRange = "{3128, 860}"; }; }; 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 8832}}"; - sepNavSelRange = "{13297, 0}"; - sepNavVisRange = "{13778, 719}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 8764}}"; + sepNavSelRange = "{4946, 0}"; + sepNavVisRange = "{4620, 892}"; sepNavWindowFrame = "{{61, 9}, {1214, 722}}"; }; }; 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 10784}}"; - sepNavSelRange = "{3862, 0}"; - sepNavVisRange = "{3402, 649}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 10892}}"; + sepNavSelRange = "{8536, 0}"; + sepNavVisRange = "{8368, 584}"; }; }; 6BB93CF410CFEC4500F74F2B /* RecastDump.h */ = { @@ -9005,7 +15686,7 @@ fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; name = "DebugDraw.h: 97"; rLen = 0; - rLoc = 3864; + rLoc = 4818; rType = 0; vrLen = 1120; vrLoc = 3213; @@ -9035,7 +15716,7 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 426"; rLen = 0; - rLoc = 10905; + rLoc = 10901; rType = 0; vrLen = 708; vrLoc = 10414; @@ -9145,7 +15826,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 122"; rLen = 0; - rLoc = 2938; + rLoc = 2954; rType = 0; vrLen = 449; vrLoc = 2809; @@ -9185,7 +15866,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 107"; rLen = 0; - rLoc = 3509; + rLoc = 3586; rType = 0; vrLen = 610; vrLoc = 2890; @@ -9274,7 +15955,7 @@ path = /Developer/SDKs/MacOSX10.5.sdk/usr/include/string.h; sourceTree = ""; }; - 6BBB4C4C115B7BAD00CF791D /* Sample_TileMesh.cpp:276 */ = { + 6BBB4C4C115B7BAD00CF791D /* Sample_TileMesh.cpp:279 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -9286,9 +15967,9 @@ functionName = "Sample_TileMesh::loadAll(const char* path)"; hitCount = 0; ignoreCount = 0; - lineNumber = 276; + lineNumber = 279; location = Recast; - modificationTime = 303129300.462316; + modificationTime = 303302369.985457; state = 1; }; 6BC7619C11B63C7E00FF5E51 /* PBXTextBookmark */ = { @@ -9306,7 +15987,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 426"; rLen = 0; - rLoc = 13297; + rLoc = 13406; rType = 0; vrLen = 1058; vrLoc = 12805; @@ -9366,7 +16047,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 707"; rLen = 0; - rLoc = 21223; + rLoc = 21297; rType = 0; vrLen = 1012; vrLoc = 15713; @@ -9383,16 +16064,16 @@ }; 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 720}}"; - sepNavSelRange = "{464, 0}"; - sepNavVisRange = "{3, 1059}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 800}}"; + sepNavSelRange = "{1564, 0}"; + sepNavVisRange = "{956, 717}"; }; }; 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 2592}}"; - sepNavSelRange = "{3217, 0}"; - sepNavVisRange = "{2506, 710}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 2640}}"; + sepNavSelRange = "{1851, 57}"; + sepNavVisRange = "{1578, 612}"; }; }; 6BF5F23911747606000502A6 /* Filelist.cpp */ = { @@ -9592,7 +16273,7 @@ fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; name = "OffMeshConnectionTool.cpp: 121"; rLen = 0; - rLoc = 2918; + rLoc = 2934; rType = 0; vrLen = 463; vrLoc = 2866; @@ -9602,7 +16283,7 @@ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */; name = "ConvexVolumeTool.cpp: 220"; rLen = 0; - rLoc = 5381; + rLoc = 5397; rType = 0; vrLen = 798; vrLoc = 5916; @@ -9783,7 +16464,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1040"; rLen = 0; - rLoc = 31077; + rLoc = 31253; rType = 0; vrLen = 1395; vrLoc = 32716; @@ -9833,7 +16514,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 819"; rLen = 0; - rLoc = 20514; + rLoc = 20686; rType = 0; vrLen = 775; vrLoc = 20381; @@ -9843,7 +16524,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 819"; rLen = 0; - rLoc = 20514; + rLoc = 20686; rType = 0; vrLen = 775; vrLoc = 20381; @@ -9883,7 +16564,7 @@ fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; name = "DebugDraw.h: 143"; rLen = 0; - rLoc = 5429; + rLoc = 6590; rType = 0; vrLen = 706; vrLoc = 5180; diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index 9eb4df6..9a99fed 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -283,14 +283,13 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 15 - 11 + 65 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 49}, {264, 632}} + {{0, 658}, {264, 632}} PBXTopSmartGroupGIDs @@ -325,7 +324,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - DetourNavMesh.cpp + CrowdTool.cpp PBXSplitModuleInNavigatorKey Split0 @@ -333,19 +332,16 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - DetourNavMesh.cpp + CrowdTool.cpp _historyCapacity 0 bookmark - 6BAF3C56121163FD008CFCDF + 6BAF40B8121425BA008CFCDF history 6BBB4AA1115B4F3400CF791D 6BBB4AA5115B4F3400CF791D 6BBB4AA6115B4F3400CF791D - 6BBB4AAB115B4F3400CF791D - 6BBB4AB0115B4F3400CF791D - 6BBB4AB2115B4F3400CF791D 6BBB4ABF115B4F3400CF791D 6BBB4C34115B7A3D00CF791D 6BF5F27011747CFA000502A6 @@ -354,9 +350,7 @@ 6BF5F2E511748884000502A6 6BF5F2E611748884000502A6 6BF5F2E711748884000502A6 - 6BF5F31C117490A1000502A6 6BF5F32E11759C3C000502A6 - 6BF5F474117644A2000502A6 6BF5F5041176F5F8000502A6 6B4214D911803923006C347B 6B2CDC911197F0720090FA4D @@ -371,50 +365,56 @@ 6B98482611E9D23600FA177B 6BF9B12C11EB8CF20043574C 6BF9B12F11EB8CF20043574C - 6BF9B13511EB8CF20043574C - 6BF9B13611EB8CF20043574C 6BF9B13711EB8CF20043574C 6BF9B18811EC2D470043574C 6BF9B20B11EC450E0043574C 6BF9B21211EC49A30043574C 6BF9B21B11EC49F90043574C 6BAF37D411FEAC16008CFCDF - 6BAF37F911FEB4BB008CFCDF 6BAF382112019EDA008CFCDF 6BAF38471202CC9B008CFCDF 6BAF385A120A8A8E008CFCDF 6BAF385C120A8A8E008CFCDF - 6BAF3873120AD32F008CFCDF - 6BAF3875120AD32F008CFCDF 6BAF390F120FEB27008CFCDF 6BAF39D112100A22008CFCDF 6BAF39D212100A22008CFCDF 6BAF39E712100DE4008CFCDF - 6BAF3A5F12102BB9008CFCDF - 6BAF3A7812103373008CFCDF - 6BAF3AAB1210369A008CFCDF - 6BAF3AB4121038F9008CFCDF - 6BAF3AB5121038F9008CFCDF 6BAF3ADA12112A65008CFCDF 6BAF3B0112112E63008CFCDF - 6BAF3B0312112E63008CFCDF - 6BAF3B3F121137C7008CFCDF 6BAF3BA51211425E008CFCDF - 6BAF3BA912114288008CFCDF - 6BAF3BAF12114389008CFCDF - 6BAF3BB012114389008CFCDF - 6BAF3BB8121146D8008CFCDF 6BAF3BB9121146D8008CFCDF - 6BAF3BC91211472E008CFCDF - 6BAF3BFE121151C3008CFCDF - 6BAF3C4312116225008CFCDF + 6BAF3C78121167CA008CFCDF + 6BAF3C7D121167CA008CFCDF + 6BAF3CB012116AD9008CFCDF + 6BAF3CB112116AD9008CFCDF + 6BAF3CB212116AD9008CFCDF + 6BAF3CB412116AD9008CFCDF + 6BAF3CB712116AD9008CFCDF + 6BAF3CB812116AD9008CFCDF + 6BAF3D3012117A05008CFCDF + 6BAF3D3E12117B40008CFCDF + 6BAF3DA51211882E008CFCDF + 6BAF3DFC1211AEB2008CFCDF + 6BAF3E421211B19C008CFCDF + 6BAF3E781212869F008CFCDF + 6BAF3EE01212B890008CFCDF + 6BAF3F5B1213E45B008CFCDF + 6BAF3FBD1213FABE008CFCDF + 6BAF3FFC121401AB008CFCDF + 6BAF404F12140B4E008CFCDF + 6BAF405012140B4E008CFCDF + 6BAF405112140B4E008CFCDF + 6BAF405212140B4E008CFCDF + 6BAF405312140B4E008CFCDF + 6BAF409312142142008CFCDF + 6BAF409512142142008CFCDF + 6BAF40AB1214239C008CFCDF + 6BAF40AC1214239C008CFCDF prevStack 6BBB4AD3115B4F3400CF791D 6BBB4AE0115B4F3400CF791D - 6BBB4AE1115B4F3400CF791D - 6BBB4AE2115B4F3400CF791D 6BBB4AE6115B4F3400CF791D 6BBB4AE7115B4F3400CF791D 6BBB4AE8115B4F3400CF791D @@ -427,7 +427,6 @@ 6BBB4AEF115B4F3400CF791D 6BBB4AF0115B4F3400CF791D 6BBB4AF1115B4F3400CF791D - 6BBB4AF7115B4F3400CF791D 6BBB4AF8115B4F3400CF791D 6BBB4AF9115B4F3400CF791D 6BBB4AFA115B4F3400CF791D @@ -444,8 +443,6 @@ 6BF5F2EE11748884000502A6 6BF5F33911759C3C000502A6 6B4215D1118066FE006C347B - 6B4215DF1180672F006C347B - 6B5562681193EF2F00843384 6B10005C11AD08FA0098A59A 6B10011E11AD19F90098A59A 6B10011F11AD19F90098A59A @@ -481,7 +478,6 @@ 6BAF3878120AD32F008CFCDF 6BAF3879120AD32F008CFCDF 6BAF387A120AD32F008CFCDF - 6BAF387B120AD32F008CFCDF 6BAF38B9120ADE23008CFCDF 6BAF38BF120ADE8A008CFCDF 6BAF38C4120ADF7B008CFCDF @@ -496,8 +492,6 @@ 6BAF3919120FEB27008CFCDF 6BAF391B120FEB27008CFCDF 6BAF391C120FEB27008CFCDF - 6BBB4AD2115B4F3400CF791D - 6BAF3974120FF609008CFCDF 6BAF3983120FF75F008CFCDF 6BAF398E120FF809008CFCDF 6BAF3990120FF809008CFCDF @@ -513,48 +507,25 @@ 6BAF3A4F121028E6008CFCDF 6BAF3A50121028E6008CFCDF 6BAF3A51121028E6008CFCDF - 6BAF3A6212102BB9008CFCDF - 6BAF3A6312102BB9008CFCDF 6BAF3A6512102BB9008CFCDF 6BAF3A6612102BB9008CFCDF - 6BAF3A7C12103373008CFCDF 6BAF3A7D12103373008CFCDF - 6BAF3A7E12103373008CFCDF 6BAF3A7F12103373008CFCDF 6BAF3A8012103373008CFCDF 6BAF3A8212103373008CFCDF 6BAF3A8412103373008CFCDF - 6BAF3A8512103373008CFCDF 6BAF3A8612103373008CFCDF - 6BAF3A8712103373008CFCDF 6BAF3A8812103373008CFCDF - 6BAF3A8912103373008CFCDF 6BAF3A8A12103373008CFCDF - 6BAF3A8B12103373008CFCDF 6BAF3A8C12103373008CFCDF - 6BAF3A8D12103373008CFCDF 6BAF3A8E12103373008CFCDF - 6BAF3A8F12103373008CFCDF 6BAF3A9012103373008CFCDF - 6BAF3A9112103373008CFCDF 6BAF3A9212103373008CFCDF - 6BAF3A9312103373008CFCDF 6BAF3A9512103373008CFCDF - 6BAF3A9612103373008CFCDF - 6BAF3AB7121038F9008CFCDF - 6BAF3AB8121038F9008CFCDF - 6BAF3AB9121038F9008CFCDF - 6BAF3ABA121038F9008CFCDF - 6BAF3ABB121038F9008CFCDF 6BAF3ABC121038F9008CFCDF - 6BAF3ABD121038F9008CFCDF 6BAF3ACB12112937008CFCDF - 6BAF3ADD12112A65008CFCDF 6BAF3ADE12112A65008CFCDF - 6BAF3ADF12112A65008CFCDF 6BAF3AE012112A65008CFCDF - 6BAF3AE912112BBF008CFCDF - 6BAF3AF512112C6C008CFCDF 6BAF3B0512112E63008CFCDF 6BAF3B0612112E63008CFCDF 6BAF3B1512112F65008CFCDF @@ -571,17 +542,72 @@ 6BAF3B6F12113E1F008CFCDF 6BAF3BA71211425E008CFCDF 6BAF3BAB12114288008CFCDF - 6BAF3BB212114389008CFCDF 6BAF3BB312114389008CFCDF 6BAF3BBB121146D8008CFCDF 6BAF3BBC121146D8008CFCDF - 6BAF3BC212114716008CFCDF - 6BAF3BC312114716008CFCDF - 6BAF3BCB1211472E008CFCDF - 6BAF3BDC12114B45008CFCDF 6BAF3BDD12114B45008CFCDF - 6BAF3C00121151C3008CFCDF 6BAF3C01121151C3008CFCDF + 6BAF3C6512116712008CFCDF + 6BAF3C6A12116712008CFCDF + 6BAF3C6B12116712008CFCDF + 6BAF3C6C12116712008CFCDF + 6BAF3C6D12116712008CFCDF + 6BAF3C81121167CA008CFCDF + 6BAF3C82121167CA008CFCDF + 6BAF3C84121167CA008CFCDF + 6BAF3C87121167CA008CFCDF + 6BAF3C88121167CA008CFCDF + 6BAF3C89121167CA008CFCDF + 6BAF3C8B121167CA008CFCDF + 6BAF3C8C121167CA008CFCDF + 6BAF3C8D121167CA008CFCDF + 6BAF3C8E121167CA008CFCDF + 6BAF3CBB12116AD9008CFCDF + 6BAF3CBD12116AD9008CFCDF + 6BAF3CBF12116AD9008CFCDF + 6BAF3CC312116AD9008CFCDF + 6BAF3CC412116AD9008CFCDF + 6BAF3CC512116AD9008CFCDF + 6BAF3CC712116AD9008CFCDF + 6BAF3CCA12116AD9008CFCDF + 6BAF3CCB12116AD9008CFCDF + 6BAF3CCC12116AD9008CFCDF + 6BAF3CCD12116AD9008CFCDF + 6BAF3CCE12116AD9008CFCDF + 6B4215DF1180672F006C347B + 6BAF3D3312117A05008CFCDF + 6BAF3D4212117B40008CFCDF + 6BAF3DAA1211882E008CFCDF + 6BAF3E2A1211AF3A008CFCDF + 6BAF3E441211B19C008CFCDF + 6BAF3E631211B713008CFCDF + 6BAF3EE41212B890008CFCDF + 6BAF3F5F1213E45B008CFCDF + 6BBB4AE2115B4F3400CF791D + 6BBB4AF7115B4F3400CF791D + 6BAF405612140B4E008CFCDF + 6BAF405712140B4E008CFCDF + 6BAF405812140B4E008CFCDF + 6BAF405912140B4E008CFCDF + 6BAF407212141245008CFCDF + 6BAF407412141245008CFCDF + 6BAF407612141245008CFCDF + 6BAF408412141303008CFCDF + 6BAF409712142142008CFCDF + 6BAF409812142142008CFCDF + 6BAF409912142142008CFCDF + 6BAF409A12142142008CFCDF + 6BAF409B12142142008CFCDF + 6BAF409C12142142008CFCDF + 6BAF409D12142142008CFCDF + 6BAF40A612142254008CFCDF + 6BAF40A712142254008CFCDF + 6BAF40AD1214239C008CFCDF + 6BAF40AE1214239C008CFCDF + 6BAF40AF1214239C008CFCDF + 6BAF40B01214239C008CFCDF + 6BAF40B11214239C008CFCDF + 6BAF40B21214239C008CFCDF SplitCount @@ -595,18 +621,18 @@ GeometryConfiguration Frame - {{0, 0}, {887, 558}} + {{0, 0}, {887, 498}} RubberWindowFrame 34 87 1173 691 0 0 1280 778 Module PBXNavigatorGroup Proportion - 558pt + 498pt Proportion - 88pt + 148pt Tabs @@ -636,7 +662,7 @@ GeometryConfiguration Frame - {{10, 27}, {887, 61}} + {{10, 27}, {887, 87}} Module PBXProjectFindModule @@ -674,7 +700,7 @@ GeometryConfiguration Frame - {{10, 27}, {887, 61}} + {{10, 27}, {887, 121}} RubberWindowFrame 34 87 1173 691 0 0 1280 778 @@ -759,12 +785,12 @@ GeometryConfiguration Frame - {{0, 0}, {1173, 323}} + {{0, 0}, {1173, 277}} Module PBXDebugCLIModule Proportion - 323pt + 277pt ContentConfiguration @@ -783,8 +809,8 @@ yes sizes - {{0, 0}, {536, 112}} - {{536, 0}, {637, 112}} + {{0, 0}, {529, 90}} + {{529, 0}, {644, 90}} VerticalSplitView @@ -799,8 +825,8 @@ yes sizes - {{0, 0}, {1173, 112}} - {{0, 112}, {1173, 210}} + {{0, 0}, {1173, 90}} + {{0, 90}, {1173, 278}} @@ -820,7 +846,7 @@ DebugSTDIOWindowFrame {{200, 200}, {500, 300}} Frame - {{0, 328}, {1173, 322}} + {{0, 282}, {1173, 368}} PBXDebugSessionStackFrameViewKey DebugVariablesTableConfiguration @@ -830,16 +856,16 @@ Value 85 Summary - 344 + 351 Frame - {{536, 0}, {637, 112}} + {{529, 0}, {644, 90}} Module PBXDebugSessionModule Proportion - 322pt + 368pt Name diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj index 1c73cf3..7dbf5c6 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj @@ -37,6 +37,7 @@ 6B9846EF11E718F800FA177B /* DetourAlloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B9846EE11E718F800FA177B /* DetourAlloc.cpp */; }; 6B9847B811E7519A00FA177B /* RecastAlloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */; }; 6BA1E88B10C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; }; + 6BAF3C591211663A008CFCDF /* CrowdTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; }; 6BB788170FC0472B003C24DB /* ChunkyTriMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */; }; 6BB7FC0B10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; }; 6BB7FDA510F36F0E006DA0A6 /* InputGeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; }; @@ -110,6 +111,8 @@ 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastAlloc.cpp; path = ../../../Recast/Source/RecastAlloc.cpp; sourceTree = SOURCE_ROOT; }; 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sample_SoloMeshSimple.cpp; path = ../../Source/Sample_SoloMeshSimple.cpp; sourceTree = SOURCE_ROOT; }; 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sample_SoloMeshSimple.h; path = ../../Include/Sample_SoloMeshSimple.h; sourceTree = SOURCE_ROOT; }; + 6BAF3C571211663A008CFCDF /* CrowdTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CrowdTool.h; path = ../../Include/CrowdTool.h; sourceTree = SOURCE_ROOT; }; + 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CrowdTool.cpp; path = ../../Source/CrowdTool.cpp; sourceTree = SOURCE_ROOT; }; 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ChunkyTriMesh.cpp; path = ../../Source/ChunkyTriMesh.cpp; sourceTree = SOURCE_ROOT; }; 6BB788180FC04753003C24DB /* ChunkyTriMesh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ChunkyTriMesh.h; path = ../../Include/ChunkyTriMesh.h; sourceTree = SOURCE_ROOT; }; 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NavMeshTesterTool.h; path = ../../Include/NavMeshTesterTool.h; sourceTree = SOURCE_ROOT; }; @@ -295,6 +298,8 @@ 6BB7FE8E10F4A175006DA0A6 /* Tools */ = { isa = PBXGroup; children = ( + 6BAF3C571211663A008CFCDF /* CrowdTool.h */, + 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */, 6B324C64111C5D9A00EBD2FD /* ConvexVolumeTool.h */, 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */, 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */, @@ -431,6 +436,7 @@ 6B98463311E6144400FA177B /* Sample_SoloMeshTiled.cpp in Sources */, 6B9846EF11E718F800FA177B /* DetourAlloc.cpp in Sources */, 6B9847B811E7519A00FA177B /* RecastAlloc.cpp in Sources */, + 6BAF3C591211663A008CFCDF /* CrowdTool.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/RecastDemo/Include/ConvexVolumeTool.h b/RecastDemo/Include/ConvexVolumeTool.h index 8ae19d0..bcfb3a3 100644 --- a/RecastDemo/Include/ConvexVolumeTool.h +++ b/RecastDemo/Include/ConvexVolumeTool.h @@ -44,8 +44,9 @@ public: virtual void init(Sample* sample); virtual void reset(); virtual void handleMenu(); - virtual void handleClick(const float* p, bool shift); + virtual void handleClick(const float* s, const float* p, bool shift); virtual void handleStep(); + virtual void handleUpdate(const float dt); virtual void handleRender(); virtual void handleRenderOverlay(double* proj, double* model, int* view); }; diff --git a/RecastDemo/Include/CrowdTool.h b/RecastDemo/Include/CrowdTool.h new file mode 100644 index 0000000..9500fe9 --- /dev/null +++ b/RecastDemo/Include/CrowdTool.h @@ -0,0 +1,190 @@ +// +// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#ifndef CROWDTOOL_H +#define CROWDTOOL_H + +#include "Sample.h" +#include "DetourNavMesh.h" + +// Tool to create crowds. + + +enum BodyType +{ + BODY_CIRCLE = 0, + BODY_CAPSULE = 1, +}; + +struct Body +{ + float p[3], q[3]; // Position of the obstacle + float vel[3]; // Velocity of the obstacle + float dvel[3]; // Velocity of the obstacle + float rad; // Radius of the obstacle + int type; // Type of the obstacle (see ObstacleType) +}; + + +static const int RVO_SAMPLE_RAD = 15; +static const int MAX_RVO_SAMPLES = (RVO_SAMPLE_RAD*2+1)*(RVO_SAMPLE_RAD*2+1) + 100; + +struct RVO +{ + inline RVO() : ns(0) {} + float spos[MAX_RVO_SAMPLES*3]; + float scs[MAX_RVO_SAMPLES]; + float spen[MAX_RVO_SAMPLES]; + float svpen[MAX_RVO_SAMPLES]; + float svcpen[MAX_RVO_SAMPLES]; + float sspen[MAX_RVO_SAMPLES]; + float stpen[MAX_RVO_SAMPLES]; + + int ns; +}; + +enum AgentTargetState +{ + AGENT_TARGET_NONE = 0, + AGENT_TARGET_SET = 1, + AGENT_TARGET_ACQUIRED = 2, + AGENT_TARGET_PATH = 3, + AGENT_TARGET_FAILED = 4, +}; + +static const int AGENT_MAX_PATH = 256; +static const int AGENT_MAX_CORNERS = 4; +static const int AGENT_MAX_TRAIL = 64; +static const int AGENT_MAX_COLSEGS = 32; + +enum AgentApproach +{ + AGENT_APPROACH_CORNER = 0, + AGENT_APPROACH_OFFMESH_CON = 0, + AGENT_APPROACH_END = 0, +}; + +struct Agent +{ + float pos[3]; + float radius, height; + + float dvel[3]; + float nvel[3]; + float vel[3]; + float npos[3]; + float disp[3]; + + float maxspeed; + float t; + float var; + + RVO rvo; + + float colradius; + float colcenter[3]; + float colsegs[AGENT_MAX_COLSEGS*6]; + int ncolsegs; + + float trail[AGENT_MAX_TRAIL*3]; + int htrail; + + unsigned char targetState; + float target[3]; + dtPolyRef targetRef; + + dtPolyRef path[AGENT_MAX_PATH]; + int npath; + float corners[AGENT_MAX_CORNERS*3]; + int ncorners; + + unsigned char active; +}; + +enum UpdateFlags +{ + CROWDMAN_ANTICIPATE_TURNS = 1, + CROWDMAN_USE_VO = 2, + CROWDMAN_DRUNK = 4, +}; + +class CrowdManager +{ + static const int MAX_AGENTS = 32; + Agent m_agents[MAX_AGENTS]; + int m_shortcutIter; +public: + CrowdManager(); + ~CrowdManager(); + + void reset(); + const Agent* getAgent(const int idx); + const int getAgentCount() const; + int addAgent(const float* pos, const float radius, const float height); + void removeAgent(const int idx); + void setMoveTarget(const int idx, const float* pos); + + void update(const float dt, unsigned int flags, dtNavMesh* nmesh); +}; + +class CrowdTool : public SampleTool +{ + Sample* m_sample; + float m_targetPos[3]; + bool m_targetPosSet; + + bool m_expandDebugDraw; + bool m_showLabels; + bool m_showCorners; + bool m_showTargets; + bool m_showCollisionSegments; + bool m_showPath; + bool m_showVO; + + bool m_expandOptions; + bool m_anticipateTurns; + bool m_useVO; + bool m_drunkMove; + + bool m_run; + + CrowdManager m_crowd; + + enum ToolMode + { + TOOLMODE_CREATE, + TOOLMODE_MOVE, + }; + ToolMode m_mode; + +public: + CrowdTool(); + ~CrowdTool(); + + virtual int type() { return TOOL_CROWD; } + virtual void init(Sample* sample); + virtual void reset(); + virtual void handleMenu(); + virtual void handleClick(const float* s, const float* p, bool shift); + virtual void handleStep(); + virtual void handleUpdate(const float dt); + virtual void handleRender(); + virtual void handleRenderOverlay(double* proj, double* model, int* view); +}; + +#endif // CROWDTOOL_H diff --git a/RecastDemo/Include/NavMeshTesterTool.h b/RecastDemo/Include/NavMeshTesterTool.h index d6e0b5f..56ed5ea 100644 --- a/RecastDemo/Include/NavMeshTesterTool.h +++ b/RecastDemo/Include/NavMeshTesterTool.h @@ -87,8 +87,9 @@ public: virtual void init(Sample* sample); virtual void reset(); virtual void handleMenu(); - virtual void handleClick(const float* p, bool shift); + virtual void handleClick(const float* s, const float* p, bool shift); virtual void handleStep(); + virtual void handleUpdate(const float dt); virtual void handleRender(); virtual void handleRenderOverlay(double* proj, double* model, int* view); diff --git a/RecastDemo/Include/OffMeshConnectionTool.h b/RecastDemo/Include/OffMeshConnectionTool.h index 5242ef3..08bdb16 100644 --- a/RecastDemo/Include/OffMeshConnectionTool.h +++ b/RecastDemo/Include/OffMeshConnectionTool.h @@ -39,8 +39,9 @@ public: virtual void init(Sample* sample); virtual void reset(); virtual void handleMenu(); - virtual void handleClick(const float* p, bool shift); + virtual void handleClick(const float* s, const float* p, bool shift); virtual void handleStep(); + virtual void handleUpdate(const float dt); virtual void handleRender(); virtual void handleRenderOverlay(double* proj, double* model, int* view); }; diff --git a/RecastDemo/Include/Sample.h b/RecastDemo/Include/Sample.h index 9dc2ceb..9b4b7c6 100644 --- a/RecastDemo/Include/Sample.h +++ b/RecastDemo/Include/Sample.h @@ -81,6 +81,7 @@ enum SampleToolType TOOL_NAVMESH_TESTER, TOOL_OFFMESH_CONNECTION, TOOL_CONVEX_VOLUME, + TOOL_CROWD, }; struct SampleTool @@ -90,10 +91,11 @@ struct SampleTool virtual void init(class Sample* sample) = 0; virtual void reset() = 0; virtual void handleMenu() = 0; - virtual void handleClick(const float* p, bool shift) = 0; + 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 handleStep() = 0; + virtual void handleUpdate(const float dt) = 0; }; @@ -129,12 +131,13 @@ public: virtual void handleSettings(); virtual void handleTools(); virtual void handleDebugMode(); - virtual void handleClick(const float* p, bool shift); + virtual void handleClick(const float* s, const float* p, bool shift); virtual void handleStep(); virtual void handleRender(); virtual void handleRenderOverlay(double* proj, double* model, int* view); virtual void handleMeshChanged(class InputGeom* geom); virtual bool handleBuild(); + virtual void handleUpdate(const float dt); virtual class InputGeom* getInputGeom() { return m_geom; } virtual class dtNavMesh* getNavMesh() { return m_navMesh; } diff --git a/RecastDemo/Include/Sample_Debug.h b/RecastDemo/Include/Sample_Debug.h index d1b43b9..e57659c 100644 --- a/RecastDemo/Include/Sample_Debug.h +++ b/RecastDemo/Include/Sample_Debug.h @@ -44,7 +44,7 @@ public: virtual void handleSettings(); virtual void handleTools(); virtual void handleDebugMode(); - virtual void handleClick(const float* p, bool shift); + virtual void handleClick(const float* s, const float* p, bool shift); virtual void handleStep(); virtual void handleRender(); virtual void handleRenderOverlay(double* proj, double* model, int* view); diff --git a/RecastDemo/Source/ConvexVolumeTool.cpp b/RecastDemo/Source/ConvexVolumeTool.cpp index fd3afb3..fcd9082 100644 --- a/RecastDemo/Source/ConvexVolumeTool.cpp +++ b/RecastDemo/Source/ConvexVolumeTool.cpp @@ -161,7 +161,7 @@ void ConvexVolumeTool::handleMenu() imguiSeparator(); } -void ConvexVolumeTool::handleClick(const float* p, bool shift) +void ConvexVolumeTool::handleClick(const float* s, const float* p, bool shift) { if (!m_sample) return; InputGeom* geom = m_sample->getInputGeom(); @@ -234,6 +234,10 @@ void ConvexVolumeTool::handleStep() { } +void ConvexVolumeTool::handleUpdate(const float dt) +{ +} + void ConvexVolumeTool::handleRender() { DebugDrawGL dd; diff --git a/RecastDemo/Source/CrowdTool.cpp b/RecastDemo/Source/CrowdTool.cpp new file mode 100644 index 0000000..c1b722a --- /dev/null +++ b/RecastDemo/Source/CrowdTool.cpp @@ -0,0 +1,1347 @@ +// +// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#define _USE_MATH_DEFINES +#include +#include +#include +#include +#include "SDL.h" +#include "SDL_opengl.h" +#include "imgui.h" +#include "CrowdTool.h" +#include "InputGeom.h" +#include "Sample.h" +#include "DetourDebugDraw.h" +#include "DetourCommon.h" + +#ifdef WIN32 +# define snprintf _snprintf +#endif + + +static bool isectSegAABB(const float* sp, const float* sq, + const float* amin, const float* amax, + float& tmin, float& tmax) +{ + static const float EPS = 1e-6f; + + float d[3]; + dtVsub(d, sq, sp); + tmin = 0; // set to -FLT_MAX to get first hit on line + tmax = FLT_MAX; // set to max distance ray can travel (for segment) + + // For all three slabs + for (int i = 0; i < 3; i++) + { + if (fabsf(d[i]) < EPS) + { + // Ray is parallel to slab. No hit if origin not within slab + if (sp[i] < amin[i] || sp[i] > amax[i]) + return false; + } + else + { + // Compute intersection t value of ray with near and far plane of slab + const float ood = 1.0f / d[i]; + float t1 = (amin[i] - sp[i]) * ood; + float t2 = (amax[i] - sp[i]) * ood; + // Make t1 be intersection with near plane, t2 with far plane + if (t1 > t2) dtSwap(t1, t2); + // Compute the intersection of slab intersections intervals + if (t1 > tmin) tmin = t1; + if (t2 < tmax) tmax = t2; + // Exit with no collision as soon as slab intersection becomes empty + if (tmin > tmax) return false; + } + } + + return true; +} + +static int fixupCorridor(dtPolyRef* path, const int npath, const int maxPath, + const dtPolyRef* visited, const int nvisited) +{ + int furthestPath = -1; + int furthestVisited = -1; + + // Find furthest common polygon. + for (int i = npath-1; i >= 0; --i) + { + bool found = false; + for (int j = nvisited-1; j >= 0; --j) + { + if (path[i] == visited[j]) + { + furthestPath = i; + furthestVisited = j; + found = true; + } + } + if (found) + break; + } + + // If no intersection found just return current path. + if (furthestPath == -1 || furthestVisited == -1) + return npath; + + // Concatenate paths. + + // Adjust beginning of the buffer to include the visited. + const int req = nvisited - furthestVisited; + const int orig = dtMin(furthestPath+1, npath); + int size = dtMax(0, npath-orig); + if (req+size > maxPath) + size = maxPath-req; + if (size) + memmove(path+req, path+orig, size*sizeof(dtPolyRef)); + + // Store visited + for (int i = 0; i < req; ++i) + path[i] = visited[(nvisited-1)-i]; + + return req+size; +} + +static int mergeCorridor(dtPolyRef* path, const int npath, const int maxPath, + const dtPolyRef* visited, const int nvisited) +{ + int furthestPath = -1; + int furthestVisited = -1; + + // Find furthest common polygon. + for (int i = npath-1; i >= 0; --i) + { + bool found = false; + for (int j = nvisited-1; j >= 0; --j) + { + if (path[i] == visited[j]) + { + furthestPath = i; + furthestVisited = j; + found = true; + } + } + if (found) + break; + } + + // If no intersection found just return current path. + if (furthestPath == -1 || furthestVisited == -1) + return npath; + + // Concatenate paths. + + // Adjust beginning of the buffer to include the visited. + const int req = furthestVisited; + if (req <= 0) + return npath; + + const int orig = furthestPath; + int size = dtMax(0, npath-orig); + if (req+size > maxPath) + size = maxPath-req; + if (size) + memmove(path+req, path+orig, size*sizeof(dtPolyRef)); + + // Store visited + for (int i = 0; i < req; ++i) + path[i] = visited[i]; + + return req+size; +} + + + +static void getAgentBounds(const Agent* ag, float* bmin, float* bmax) +{ + bmin[0] = ag->pos[0] - ag->radius; + bmin[1] = ag->pos[1]; + bmin[2] = ag->pos[2] - ag->radius; + bmax[0] = ag->pos[0] + ag->radius; + bmax[1] = ag->pos[1] + ag->height; + bmax[2] = ag->pos[2] + ag->radius; +} + + + +static void normalizeArray(float* arr, const int n) +{ + // Normalize penaly range. + float minPen = FLT_MAX; + float maxPen = -FLT_MAX; + for (int i = 0; i < n; ++i) + { + minPen = dtMin(minPen, arr[i]); + maxPen = dtMax(maxPen, arr[i]); + } + const float penRange = maxPen-minPen; + const float s = penRange > 0.001f ? (1.0f / penRange) : 1; + for (int i = 0; i < n; ++i) + arr[i] = dtClamp((arr[i]-minPen)*s, 0.0f, 1.0f); +} + +void normalizeSamples(RVO* rvo) +{ + normalizeArray(rvo->spen, rvo->ns); + normalizeArray(rvo->svpen, rvo->ns); + normalizeArray(rvo->svcpen, rvo->ns); + normalizeArray(rvo->sspen, rvo->ns); + normalizeArray(rvo->stpen, rvo->ns); +} + + +void setDynCircleBody(Body* b, const float* pos, const float rad, const float* vel, const float* dvel) +{ + b->type = BODY_CIRCLE; + dtVcopy(b->p, pos); + dtVcopy(b->vel, vel); + dtVcopy(b->dvel, dvel); + b->rad = rad; +} + +void setStatCircleBody(Body* b, const float* pos, const float rad) +{ + b->type = BODY_CIRCLE; + dtVcopy(b->p, pos); + dtVset(b->vel, 0,0,0); + dtVset(b->dvel, 0,0,0); + b->rad = rad; +} + +void setStatCapsuleBody(Body* b, const float* p, const float* q, const float rad) +{ + b->type = BODY_CAPSULE; + dtVcopy(b->p, p); + dtVcopy(b->q, q); + dtVset(b->vel, 0,0,0); + dtVset(b->dvel, 0,0,0); + b->rad = rad; +} + +static const float VEL_WEIGHT = 2.0f; +static const float CUR_VEL_WEIGHT = 0.75f; +static const float SIDE_WEIGHT = 0.75f; +static const float TOI_WEIGHT = 2.5f; + +static int sweepCircleCircle(const float* c0, const float r0, const float* v, + const float* c1, const float r1, + float& tmin, float& tmax) +{ + static const float EPS = 0.0001f; + float s[3]; + dtVsub(s,c1,c0); + float r = r0+r1; + float c = dtVdot2D(s,s) - r*r; + float a = dtVdot2D(v,v); + if (a < EPS) return 0; // not moving + + // Overlap, calc time to exit. + float b = dtVdot2D(v,s); + float d = b*b - a*c; + if (d < 0.0f) return 0; // no intersection. + tmin = (b - dtSqrt(d)) / a; + tmax = (b + dtSqrt(d)) / a; + return 1; +} + +static int sweepCircleSegment(const float* c0, const float r0, const float* v, + const float* sa, const float* sb, const float sr, + float& tmin, float &tmax) +{ + // equation parameters + float L[3], H[3]; + dtVsub(L, sb, sa); + dtVsub(H, c0, sa); + const float radius = r0+sr; + const float l2 = dtVdot2D(L, L); + const float r2 = radius * radius; + const float dl = dtVperp2D(v, L); + const float hl = dtVperp2D(H, L); + const float a = dl * dl; + const float b = 2.0f * hl * dl; + const float c = hl * hl - (r2 * l2); + float d = (b*b) - (4.0f * a * c); + + // infinite line missed by infinite ray. + if (d < 0.0f) + return 0; + + const float i2a = 1.0f/(2*a); + d = dtSqrt(d); + tmin = (-b - d) * i2a; + tmax = (-b + d) * i2a; + + // line missed by ray range. + /* if (tmax < 0.0f || tmin > 1.0f) + return 0;*/ + + // find what part of the ray was collided. + const float il2 = 1.0f / l2; + float Pedge[3]; + dtVmad(Pedge, c0, v, tmin); + dtVsub(H, Pedge, sa); + const float e0 = dtVdot2D(H, L) * il2; + dtVmad(Pedge, c0, v, tmax); + dtVsub(H, Pedge, sa); + const float e1 = dtVdot2D(H, L) * il2; + + if (e0 < 0.0f || e1 < 0.0f) + { + float ctmin, ctmax; + if (sweepCircleCircle(c0, r0, v, sa, sr, ctmin, ctmax)) + { + if (e0 < 0.0f && ctmin > tmin) + tmin = ctmin; + if (e1 < 0.0f && ctmax < tmax) + tmax = ctmax; + } + else + { + return 0; + } + } + + if (e0 > 1.0f || e1 > 1.0f) + { + float ctmin, ctmax; + if (sweepCircleCircle(c0, r0, v, sb, sr, ctmin, ctmax)) + { + if (e0 > 1.0f && ctmin > tmin) + tmin = ctmin; + if (e1 > 1.0f && ctmax < tmax) + tmax = ctmax; + } + else + { + return 0; + } + } + + return 1; +} + +static void processSamples(Body* agent, const float vmax, + const Body* obs, const int nobs, RVO* rvo, + const float* spos, const float cs, const int nspos, + float* res) +{ + dtVset(res, 0,0,0); + + const float ivmax = 1.0f / vmax; + + // Max time of collision to be considered. + const float maxToi = 2.5f; + + float minPenalty = FLT_MAX; + + for (int n = 0; n < nspos; ++n) + { + float vcand[3]; + dtVcopy(vcand, &spos[n*3]); + dtVcopy(&rvo->spos[rvo->ns*3], &spos[n*3]); + rvo->scs[rvo->ns] = cs; + + // Find min time of impact and exit amongst all obstacles. + float tmin = maxToi; + float side = 0; + int nside = 0; + + for (int i = 0; i < nobs; ++i) + { + const Body* ob = &obs[i]; + float htmin, htmax; + + if (ob->type == BODY_CIRCLE) + { + float vab[3]; + + // Moving, use RVO + dtVscale(vab, vcand, 2); + dtVsub(vab, vab, agent->vel); + dtVsub(vab, vab, ob->vel); + + // Side + // NOTE: dp, and dv are constant over the whole calculation, + // they can be precomputed per object. + const float* pa = agent->p; + const float* pb = ob->p; + + const float orig[3] = {0,0}; + float dp[3],dv[3],np[3]; + dtVsub(dp,pb,pa); + dtVnormalize(dp); + dtVsub(dv, ob->dvel, agent->dvel); + + const float a = dtTriArea2D(orig, dp,dv); + if (a < 0.01f) + { + np[0] = -dp[2]; + np[2] = dp[0]; + } + else + { + np[0] = dp[2]; + np[2] = -dp[0]; + } + + side += dtClamp(dtMin(dtVdot2D(dp,vab)*2,dtVdot2D(np,vab)*2), 0.0f, 1.0f); + nside++; + + if (!sweepCircleCircle(agent->p,agent->rad, vab, ob->p,ob->rad, htmin, htmax)) + continue; + + // Handle overlapping obstacles. + if (htmin < 0.0f && htmax > 0.0f) + { + // Avoid more when overlapped. + htmin = -htmin * 0.5f; + } + } + else if (ob->type == BODY_CAPSULE) + { + // NOTE: the segments are assumed to come from a navmesh which is shrunken by + // the agent radius, hence the use of really small radius. + // This can be handle more efficiently by using seg-seg test instead. + // If the whole segment is to be treated as obstacle, use agent->rad instead of 0.01f! + const float r = 0.01f; // agent->rad + + float t; + if (dtDistancePtSegSqr2D(agent->p, ob->p, ob->q, t) < dtSqr(r+ob->rad)) + { + float sdir[3], snorm[3]; + dtVsub(sdir, ob->q, ob->p); + snorm[0] = -sdir[2]; + snorm[2] = sdir[0]; + // If the velocity is pointing towards the segment, no collision. + if (dtVdot2D(snorm, vcand) < 0.0f) + continue; + // Else immediate collision. + htmin = 0.0f; + htmax = 10.0f; + } + else + { + if (!sweepCircleSegment(agent->p, r, vcand, ob->p, ob->q, ob->rad, htmin, htmax)) + continue; + } + + // Avoid less when facing walls. + htmin *= 2.0f; + } + + if (htmin >= 0.0f) + { + // The closest obstacle is somewhere ahead of us, keep track of nearest obstacle. + if (htmin < tmin) + tmin = htmin; + } + } + + // Normalize side bias, to prevent it dominating too much. + if (nside) + side /= nside; + + const float vpen = VEL_WEIGHT * (dtVdist2D(vcand, agent->dvel) * ivmax); + const float vcpen = CUR_VEL_WEIGHT * (dtVdist2D(vcand, agent->vel) * ivmax); + const float spen = SIDE_WEIGHT * side; + const float tpen = TOI_WEIGHT * (1.0f/(0.1f+tmin/maxToi)); + + const float penalty = vpen + vcpen + spen + tpen; + + if (penalty < minPenalty) + { + minPenalty = penalty; + dtVcopy(res, vcand); + } + + // Store different penalties for debug viewing + rvo->spen[rvo->ns] = penalty; + rvo->svpen[rvo->ns] = vpen; + rvo->svcpen[rvo->ns] = vcpen; + rvo->sspen[rvo->ns] = spen; + rvo->stpen[rvo->ns] = tpen; + + rvo->ns++; + } +} + + +void sampleRVO(Body* agent, const float vmax, const Body* obs, const int nobs, RVO* rvo, const float bias, float* nvel) +{ + dtVset(nvel, 0,0,0); + + float spos[MAX_RVO_SAMPLES*3]; + int nspos = 0; + + const float cvx = agent->dvel[0]*bias; + const float cvz = agent->dvel[2]*bias; + const float vrange = vmax*(1-bias); + const float cs = 1.0f / (float)RVO_SAMPLE_RAD*vrange; + + for (int z = -RVO_SAMPLE_RAD; z <= RVO_SAMPLE_RAD; ++z) + { + for (int x = -RVO_SAMPLE_RAD; x <= RVO_SAMPLE_RAD; ++x) + { + if (nspos < MAX_RVO_SAMPLES) + { + const float vx = cvx + (float)(x+0.5f)*cs; + const float vz = cvz + (float)(z+0.5f)*cs; + if (dtSqr(vx)+dtSqr(vz) > dtSqr(vmax+cs/2)) continue; + spos[nspos*3+0] = vx; + spos[nspos*3+1] = 0; + spos[nspos*3+2] = vz; + nspos++; + } + } + } + + rvo->ns = 0; + + processSamples(agent, vmax, obs, nobs, rvo, spos, cs/2, nspos, nvel); +} + + + +CrowdManager::CrowdManager() : + m_shortcutIter(0) +{ + reset(); +} + +CrowdManager::~CrowdManager() +{ +} + +void CrowdManager::reset() +{ + for (int i = 0; i < MAX_AGENTS; ++i) + memset(&m_agents[i], 0, sizeof(Agent)); +} + +const int CrowdManager::getAgentCount() const +{ + return MAX_AGENTS; +} + +const Agent* CrowdManager::getAgent(const int idx) +{ + return &m_agents[idx]; +} + +int CrowdManager::addAgent(const float* pos, const float radius, const float height) +{ + // Find empty slot. + int idx = -1; + for (int i = 0; i < MAX_AGENTS; ++i) + { + if (!m_agents[i].active) + { + idx = i; + break; + } + } + if (idx == -1) + return -1; + + Agent* ag = &m_agents[idx]; + memset(ag, 0, sizeof(Agent)); + dtVcopy(ag->pos, pos); + ag->radius = radius; + ag->colradius = radius * 7.5f; + ag->height = height; + ag->active = 1; + ag->var = (rand() % 10) / 9.0f; + + // Init trail + for (int i = 0; i < AGENT_MAX_TRAIL; ++i) + dtVcopy(&ag->trail[i*3], ag->pos); + ag->htrail = 0; + + return idx; +} + +void CrowdManager::removeAgent(const int idx) +{ + if (idx >= 0 && idx < MAX_AGENTS) + memset(&m_agents[idx], 0, sizeof(Agent)); +} + +void CrowdManager::setMoveTarget(const int idx, const float* pos) +{ + Agent* ag = &m_agents[idx]; + dtVcopy(ag->target, pos); + ag->targetState = AGENT_TARGET_SET; +} + +static void calcSmoothSteerDirection(const float* pos, const float* corners, const int ncorners, float* dvel) +{ + const int ip0 = 0; + const int ip1 = dtMin(1, ncorners-1); + const float* p0 = &corners[ip0*3]; + const float* p1 = &corners[ip1*3]; + + float dir0[3], dir1[3]; + dtVsub(dir0, p0, pos); + dtVsub(dir1, p1, pos); + dir0[1] = 0; + dir1[1] = 0; + + float len0 = dtVlen(dir0); + float len1 = dtVlen(dir1); + if (len1 > 0.001f) + dtVscale(dir1,dir1,1.0f/len1); + + const float strength = 0.5f; + + dvel[0] = dir0[0] - dir1[0]*len0*strength; + dvel[1] = 0; + dvel[2] = dir0[2] - dir1[2]*len0*strength; +} + +void CrowdManager::update(const float dt, unsigned int flags, dtNavMesh* nmesh) +{ + if (!nmesh) + return; + + const float ext[3] = {2,4,2}; + dtQueryFilter filter; + + // Update target and agent navigation state. + for (int i = 0; i < MAX_AGENTS; ++i) + { + if (!m_agents[i].active) continue; + Agent* ag = &m_agents[i]; + + if (!ag->npath) + { + float nearest[3]; + ag->path[0] = nmesh->findNearestPoly(ag->pos, ext, &filter, nearest); + if (ag->path[0]) + { + ag->npath = 1; + dtVcopy(ag->pos, nearest); + } + } + + if (ag->targetState == AGENT_TARGET_SET) + { + float nearest[3]; + ag->targetRef = nmesh->findNearestPoly(ag->target, ext, &filter, nearest); + if (ag->targetRef) + dtVcopy(ag->target, nearest); + ag->targetState = AGENT_TARGET_ACQUIRED; + } + + if (ag->targetState == AGENT_TARGET_ACQUIRED) + { + ag->npath = nmesh->findPath(ag->path[0], ag->targetRef, ag->pos, ag->target, + &filter, ag->path, AGENT_MAX_PATH); + if (ag->npath) + { + ag->targetState = AGENT_TARGET_PATH; + // Check for partial path. + if (ag->path[ag->npath-1] != ag->targetRef) + { + // Partial path, constrain target position inside the last polygon. + ag->targetRef = ag->path[ag->npath-1]; + float nearest[3]; + if (nmesh->closestPointOnPoly(ag->targetRef, ag->target, nearest)) + dtVcopy(ag->target, nearest); + else + ag->targetState = AGENT_TARGET_FAILED; + } + } + else + ag->targetState = AGENT_TARGET_FAILED; + } + + if (ag->npath && dtVdist2DSqr(ag->pos, ag->colcenter) > dtSqr(ag->colradius*0.25f)) + { + dtVcopy(ag->colcenter, ag->pos); + + static const int MAX_COL_POLYS = 32; + dtPolyRef polys[MAX_COL_POLYS]; + const int npolys = nmesh->findLocalNeighbourhood(ag->path[0], ag->pos, ag->colradius, &filter, polys, 0, MAX_COL_POLYS); + + ag->ncolsegs = 0; + for (int j = 0; j < npolys; ++j) + { + float segs[DT_VERTS_PER_POLYGON*3*2]; + const int nsegs = nmesh->getPolyWallSegments(polys[j], &filter, segs); + for (int k = 0; k < nsegs; ++k) + { + const float* s = &segs[k*6]; + // Skip too distant segments. + float tseg; + const float distSqr = dtDistancePtSegSqr2D(ag->pos, s, s+3, tseg); + if (distSqr > dtSqr(ag->colradius)) + continue; + if (ag->ncolsegs < AGENT_MAX_COLSEGS) + { + memcpy(&ag->colsegs[ag->ncolsegs*6], s, sizeof(float)*6); + ag->ncolsegs++; + } + } + } + } + + } + + static const float MAX_ACC = 8.0f; + static const float MAX_SPEED = 3.5f; + + static const float MIN_TARGET_DIST = 0.01f; + + // Calculate steering. + for (int i = 0; i < MAX_AGENTS; ++i) + { + if (!m_agents[i].active) continue; + if (m_agents[i].targetState != AGENT_TARGET_PATH) continue; + Agent* ag = &m_agents[i]; + + if (flags & CROWDMAN_DRUNK) + { + ag->t += dt * (1.0f - ag->var*0.25f); + ag->maxspeed = MAX_SPEED*(1 + dtSqr(cosf(ag->t*2.0))*0.3f); + } + else + { + ag->maxspeed = MAX_SPEED; + } + + unsigned char cornerFlags[AGENT_MAX_CORNERS]; + dtPolyRef cornerPolys[AGENT_MAX_CORNERS]; + ag->ncorners = nmesh->findStraightPath(ag->pos, ag->target, ag->path, ag->npath, + ag->corners, cornerFlags, cornerPolys, AGENT_MAX_CORNERS); + + // Prune points in the beginning of the path which are too close. + while (ag->ncorners) + { + if ((cornerFlags[0] & DT_STRAIGHTPATH_OFFMESH_CONNECTION) || + dtVdist2DSqr(&ag->corners[0], ag->pos) > dtSqr(MIN_TARGET_DIST)) + break; + ag->ncorners--; + if (ag->ncorners) + { + memmove(cornerFlags, cornerFlags+1, sizeof(unsigned char)*ag->ncorners); + memmove(cornerPolys, cornerPolys+1, sizeof(dtPolyRef)*ag->ncorners); + memmove(ag->corners, ag->corners+3, sizeof(float)*3*ag->ncorners); + } + } + + // Prune points after an off-mesh connection. + for (int i = 0; i < ag->ncorners; ++i) + { + if (cornerFlags[i] & DT_STRAIGHTPATH_OFFMESH_CONNECTION) + { + ag->ncorners = i+1; + break; + } + } + + if (!ag->ncorners) + { + // No corner to steer to, + dtVset(ag->dvel, 0,0,0); + } + else + { + // Calculate delta movement. + + if (flags & CROWDMAN_ANTICIPATE_TURNS) + { + calcSmoothSteerDirection(ag->pos, ag->corners, ag->ncorners, ag->dvel); + } + else + { + dtVsub(ag->dvel, &ag->corners[0], ag->pos); + ag->dvel[1] = 0; + } + + bool endOfPath = (cornerFlags[ag->ncorners-1] & DT_STRAIGHTPATH_END) ? true : false; + bool offMeshConnection = (cornerFlags[ag->ncorners-1] & DT_STRAIGHTPATH_OFFMESH_CONNECTION) ? true : false; + + // Limit desired velocity to max speed. + const float slowDownRadius = ag->radius*2; + float distToGoal = slowDownRadius; + if (endOfPath || offMeshConnection) + distToGoal = dtVdist2D(ag->pos, &ag->corners[(ag->ncorners-1)*3]); + + float clampedSpeed = ag->maxspeed * dtMin(1.0f, distToGoal / slowDownRadius); + float speed = dtVlen(ag->dvel); + if (speed > 0.0001f) + clampedSpeed /= speed; + dtVscale(ag->dvel, ag->dvel, clampedSpeed); + + if (flags & CROWDMAN_DRUNK) + { + const float amp = cosf(ag->var*13.69f+ag->t*3.123f) * 0.2f; + const float nx = -ag->dvel[2]; + const float nz = ag->dvel[0]; + ag->dvel[0] += nx*amp; + ag->dvel[2] += nz*amp; + } + } + } + + // Velocity planning. + static const int MAX_BODIES = 32; + Body bodies[MAX_BODIES]; + for (int i = 0; i < MAX_AGENTS; ++i) + { + if (!m_agents[i].active) continue; + if (m_agents[i].targetState != AGENT_TARGET_PATH) continue; + Agent* ag = &m_agents[i]; + + if (flags & CROWDMAN_USE_VO) + { + int nbodies = 0; + + // Add dynamic obstacles. + for (int j = 0; j < MAX_AGENTS; ++j) + { + if (i == j) continue; + if (!m_agents[j].active) continue; + Agent* nei = &m_agents[j]; + + float diff[3]; + dtVsub(diff, ag->npos, nei->npos); + if (fabsf(diff[1]) >= (ag->height+nei->height)/2.0f) + continue; + diff[1] = 0; + + float dist = dtVlenSqr(diff); + if (dist > dtSqr(ag->colradius)) + continue; + + if (nbodies < MAX_BODIES) + { + setDynCircleBody(&bodies[nbodies], nei->pos, nei->radius, nei->vel, nei->dvel); + nbodies++; + } + } + + // Add static obstacles. + for (int j = 0; j < ag->ncolsegs; ++j) + { + const float* s = &ag->colsegs[j*6]; + if (dtTriArea2D(ag->pos, s, s+3) < 0.0f) + continue; + + if (nbodies < MAX_BODIES) + { + setStatCapsuleBody(&bodies[nbodies], s,s+3,0); + nbodies++; + } + } + + Body agent; + setDynCircleBody(&agent, ag->pos, ag->radius, ag->vel, ag->dvel); + + sampleRVO(&agent, ag->maxspeed, bodies, nbodies, &ag->rvo, 0.4f, ag->nvel); + + // Normalize samples for debug draw + normalizeSamples(&ag->rvo); + } + else + { + dtVcopy(ag->nvel, ag->dvel); + } + } + + // Integrate and update perceived velocity. + for (int i = 0; i < MAX_AGENTS; ++i) + { + if (!m_agents[i].active) continue; + Agent* ag = &m_agents[i]; + + // Fake dynamic constraint. + const float maxDelta = MAX_ACC * dt; + float dv[3]; + dtVsub(dv, ag->nvel, ag->vel); + float ds = dtVlen(dv); + if (ds > maxDelta) + dtVscale(dv, dv, maxDelta/ds); + dtVadd(ag->vel, ag->vel, dv); + + // Integrate + if (dtVlen(ag->vel) > 0.0001f) + dtVmad(ag->npos, ag->pos, ag->vel, dt); + else + dtVcopy(ag->npos, ag->pos); + } + + // Handle collisions. + for (int iter = 0; iter < 4; ++iter) + { + for (int i = 0; i < MAX_AGENTS; ++i) + { + if (!m_agents[i].active) continue; + Agent* ag = &m_agents[i]; + + ag->disp[0] = ag->disp[1] = ag->disp[2] = 0; + + float w = 0; + for (int j = 0; j < MAX_AGENTS; ++j) + { + if (i == j) continue; + if (!m_agents[j].active) continue; + Agent* nei = &m_agents[j]; + + float diff[3]; + dtVsub(diff, ag->npos, nei->npos); + + if (fabsf(diff[1]) >= (ag->height+nei->height)/2.0f) + continue; + + diff[1] = 0; + + float dist = dtVlenSqr(diff); + if (dist > dtSqr(ag->radius+nei->radius)) + continue; + dist = sqrtf(dist); + float pen = (ag->radius+nei->radius) - dist; + if (dist > 0.0001f) + pen = (1.0f/dist) * (pen*0.5f) * 0.7f; + + dtVmad(ag->disp, ag->disp, diff, pen); + + w += 1.0f; + } + + if (w > 0.0001f) + { + const float iw = 1.0f / w; + dtVscale(ag->disp, ag->disp, iw); + } + } + + for (int i = 0; i < MAX_AGENTS; ++i) + { + if (!m_agents[i].active) continue; + Agent* ag = &m_agents[i]; + dtVadd(ag->npos, ag->npos, ag->disp); + } + } + + // Move along navmesh and update new position. + for (int i = 0; i < MAX_AGENTS; ++i) + { + if (!m_agents[i].active) continue; + Agent* ag = &m_agents[i]; + + float result[3]; + dtPolyRef visited[16]; + int nvisited = nmesh->moveAlongSurface(ag->path[0], ag->pos, ag->npos, &filter, + result, visited, 16); + ag->npath = fixupCorridor(ag->path, ag->npath, AGENT_MAX_PATH, visited, nvisited); + + float h = 0; + nmesh->getPolyHeight(ag->path[0], result, &h); + result[1] = h; + dtVcopy(ag->pos, result); + + ag->htrail = (ag->htrail + 1) % AGENT_MAX_TRAIL; + dtVcopy(&ag->trail[ag->htrail*3], ag->pos); + } + + // Optimize path + for (int i = 0; i < MAX_AGENTS; ++i) + { + if (!m_agents[i].active) continue; + Agent* ag = &m_agents[i]; + if (ag->npath && ag->ncorners > 1) + { + // The target is the corner after the next corner to steer to. + const float* tgt = &ag->corners[3]; + const float distSqr = dtVdist2DSqr(ag->pos, tgt); + if (distSqr > dtSqr(0.01f)) // && distSqr < dtSqr(20.0f)) + { + static const int MAX_RES = 32; + dtPolyRef res[MAX_RES]; + float t, norm[3]; + const int nres = nmesh->raycast(ag->path[0], ag->pos, tgt, &filter, t, norm, res, MAX_RES); + if (nres > 1 && t > 0.99f) + { + ag->npath = mergeCorridor(ag->path, ag->npath, AGENT_MAX_PATH, res, nres); + } + } + } + } + +} + + + +CrowdTool::CrowdTool() : + m_sample(0), + m_targetPosSet(0), + m_expandDebugDraw(false), + m_showLabels(true), + m_showCorners(false), + m_showTargets(false), + m_showCollisionSegments(false), + m_showPath(false), + m_showVO(false), + m_expandOptions(true), + m_anticipateTurns(true), + m_useVO(true), + m_drunkMove(false), + m_run(true), + m_mode(TOOLMODE_CREATE) +{ +} + +CrowdTool::~CrowdTool() +{ +} + +void CrowdTool::init(Sample* sample) +{ + m_sample = sample; +} + +void CrowdTool::reset() +{ + m_targetPosSet = false; +} + +void CrowdTool::handleMenu() +{ + + if (imguiCheck("Create Agents", m_mode == TOOLMODE_CREATE)) + m_mode = TOOLMODE_CREATE; + if (imguiCheck("Move Agents", m_mode == TOOLMODE_MOVE)) + m_mode = TOOLMODE_MOVE; + + imguiSeparator(); + + if (m_mode == TOOLMODE_CREATE) + { + imguiValue("Click to add agents."); + imguiValue("Shift+Click to remove."); + } + else if (m_mode == TOOLMODE_MOVE) + { + imguiValue("Click to set move target."); + } + + imguiSeparator(); + imguiSeparator(); + + if (imguiCollapse("Options", m_expandOptions)) + m_expandOptions = !m_expandOptions; + + if (m_expandOptions) + { + imguiIndent(); + if (imguiCheck("Anticipate Turns", m_anticipateTurns)) + m_anticipateTurns = !m_anticipateTurns; + if (imguiCheck("Use VO", m_useVO)) + m_useVO = !m_useVO; + if (imguiCheck("Drunk Move", m_drunkMove)) + m_drunkMove = !m_drunkMove; + imguiUnindent(); + } + + if (imguiCollapse("Debug Draw", m_expandDebugDraw)) + m_expandDebugDraw = !m_expandDebugDraw; + + if (m_expandDebugDraw) + { + imguiIndent(); + if (imguiCheck("Show Labels", m_showLabels)) + m_showLabels = !m_showLabels; + if (imguiCheck("Show Corners", m_showCorners)) + m_showCorners = !m_showCorners; + if (imguiCheck("Show Targets", m_showTargets)) + m_showTargets = !m_showTargets; + if (imguiCheck("Show Collision Segs", m_showCollisionSegments)) + m_showCollisionSegments = !m_showCollisionSegments; + if (imguiCheck("Show Path", m_showPath)) + m_showPath = !m_showPath; + if (imguiCheck("Show VO", m_showVO)) + m_showVO = !m_showVO; + imguiUnindent(); + } +} + +void CrowdTool::handleClick(const float* s, const float* p, bool shift) +{ + if (!m_sample) return; + InputGeom* geom = m_sample->getInputGeom(); + if (!geom) return; + + if (m_mode == TOOLMODE_CREATE) + { + if (shift) + { + // Delete + int isel = -1; + float tsel = FLT_MAX; + + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + float bmin[3], bmax[3]; + getAgentBounds(ag, bmin, bmax); + float tmin, tmax; + if (isectSegAABB(s, p, bmin,bmax, tmin, tmax)) + { + if (tmin > 0 && tmin < tsel) + { + isel = i; + tsel = tmin; + } + } + } + if (isel != -1) + { + m_crowd.removeAgent(isel); + } + } + else + { + // Add + int idx = m_crowd.addAgent(p, m_sample->getAgentRadius(), m_sample->getAgentHeight()); + if (idx != -1 && m_targetPosSet) + m_crowd.setMoveTarget(idx, m_targetPos); + } + } + else if (m_mode == TOOLMODE_MOVE) + { + dtVcopy(m_targetPos, p); + m_targetPosSet = true; + + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + m_crowd.setMoveTarget(i, m_targetPos); + } + } +} + +void CrowdTool::handleStep() +{ + m_run = !m_run; +} + +void CrowdTool::handleUpdate(const float dt) +{ + if (!m_sample) return; + if (!m_sample->getNavMesh()) return; + if (m_run) + { + unsigned int flags = 0; + + if (m_anticipateTurns) + flags |= CROWDMAN_ANTICIPATE_TURNS; + if (m_useVO) + flags |= CROWDMAN_USE_VO; + if (m_drunkMove) + flags |= CROWDMAN_DRUNK; + + m_crowd.update(dt, flags, m_sample->getNavMesh()); + } +} + +void CrowdTool::handleRender() +{ + DebugDrawGL dd; + const float s = m_sample->getAgentRadius(); + + dtNavMesh* nmesh = m_sample->getNavMesh(); + if (!nmesh) + return; + + if (m_targetPosSet) + duDebugDrawCross(&dd, m_targetPos[0],m_targetPos[1]+0.1f,m_targetPos[2], s, duRGBA(0,0,0,128), 2.0f); + + + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + + dd.depthMask(false); + + if (m_showPath) + { + for (int i = 0; i < ag->npath; ++i) + duDebugDrawNavMeshPoly(&dd, *nmesh, ag->path[i], duRGBA(0,0,0,64)); + } + + dd.begin(DU_DRAW_LINES,3.0f); + float prev[3], preva = 1; + dtVcopy(prev, ag->pos); + for (int j = 0; j < AGENT_MAX_TRAIL-1; ++j) + { + const int idx = (ag->htrail + AGENT_MAX_TRAIL-j) % AGENT_MAX_TRAIL; + const float* v = &ag->trail[idx*3]; + float a = 1 - j/(float)AGENT_MAX_TRAIL; + dd.vertex(prev[0],prev[1]+0.1f,prev[2], duRGBA(0,0,0,(int)(128*preva))); + dd.vertex(v[0],v[1]+0.1f,v[2], duRGBA(0,0,0,(int)(128*a))); + preva = a; + dtVcopy(prev, v); + } + dd.end(); + + if (m_showTargets) + { + if (ag->targetState != AGENT_TARGET_NONE) + { + duDebugDrawArc(&dd, ag->pos[0], ag->pos[1], ag->pos[2], + ag->target[0], ag->target[1], ag->target[2], 0.25f, + 0, 0.4f, duRGBA(0,0,0,128), 1.0f); + } + } + + if (m_showCorners) + { + if (ag->ncorners) + { + dd.begin(DU_DRAW_LINES, 2.0f); + for (int j = 0; j < ag->ncorners; ++j) + { + const float* va = j == 0 ? ag->pos : &ag->corners[(j-1)*3]; + const float* vb = &ag->corners[j*3]; + dd.vertex(va[0],va[1]+ag->radius,va[2], duRGBA(128,0,0,64)); + dd.vertex(vb[0],vb[1]+ag->radius,vb[2], duRGBA(128,0,0,64)); + } + dd.end(); + + if (m_anticipateTurns) + { + float dvel[3], pos[3]; + calcSmoothSteerDirection(ag->pos, ag->corners, 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->corners[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(); + } + } + } + + if (m_showCollisionSegments) + { + const float off = ag->radius; + duDebugDrawCross(&dd, ag->colcenter[0],ag->colcenter[1]+off,ag->colcenter[2], s, duRGBA(192,0,128,255), 2.0f); + duDebugDrawCircle(&dd, ag->colcenter[0],ag->colcenter[1]+off,ag->colcenter[2], ag->colradius, duRGBA(192,0,128,128), 2.0f); + + dd.begin(DU_DRAW_LINES, 3.0f); + for (int j = 0; j < ag->ncolsegs; ++j) + { + const float* s = &ag->colsegs[j*6]; + unsigned int col = duRGBA(192,0,128,192); + if (dtTriArea2D(ag->pos, s, s+3) < 0.0f) + col = duDarkenCol(col); + +// dd.vertex(s[0],s[1]+0.2f,s[2], col); +// dd.vertex(s[3],s[4]+0.2f,s[5], col); + + duAppendArrow(&dd, s[0],s[1]+0.2f,s[2], s[3],s[4]+0.2f,s[5], 0.0f, 0.3f, col); + } + dd.end(); + } + + if (m_showVO) + { + // Draw detail about agent sela + const RVO* rvo = &ag->rvo; + + const float dx = ag->pos[0]; + const float dy = ag->pos[1]+ag->height; + const float dz = ag->pos[2]; + + dd.begin(DU_DRAW_QUADS); + for (int i = 0; i < rvo->ns; ++i) + { + const float* p = &rvo->spos[i*3]; + const float sr = rvo->scs[i]; + unsigned int col = duLerpCol(duRGBA(255,255,255,220), duRGBA(0,96,128,220), (int)(rvo->spen[i]*255)); + dd.vertex(dx+p[0]-sr, dy, dz+p[2]-sr, col); + dd.vertex(dx+p[0]-sr, dy, dz+p[2]+sr, col); + dd.vertex(dx+p[0]+sr, dy, dz+p[2]+sr, col); + dd.vertex(dx+p[0]+sr, dy, dz+p[2]-sr, col); + } + dd.end(); + + } + + duDebugDrawArrow(&dd, ag->pos[0],ag->pos[1]+ag->height,ag->pos[2], + ag->pos[0]+ag->vel[0],ag->pos[1]+ag->height+ag->vel[1],ag->pos[2]+ag->vel[2], + 0.0f, 0.4f, duRGBA(0,0,0,192), 2.0f); + + duDebugDrawArrow(&dd, ag->pos[0],ag->pos[1]+ag->height-0.1f,ag->pos[2], + ag->pos[0]+ag->dvel[0],ag->pos[1]+ag->height-0.1f+ag->dvel[1],ag->pos[2]+ag->dvel[2], + 0.0f, 0.4f, duRGBA(0,192,255,192), 1.0f); + + duDebugDrawCylinderWire(&dd, ag->pos[0]-ag->radius, ag->pos[1]+ag->radius*0.1f, ag->pos[2]-ag->radius, + ag->pos[0]+ag->radius, ag->pos[1]+ag->height, ag->pos[2]+ag->radius, + duRGBA(0,192,255,255), 3.0f); + + dd.depthMask(true); + } +} + +void CrowdTool::handleRenderOverlay(double* proj, double* model, int* view) +{ + GLdouble x, y, z; + + // Draw start and end point labels + if (m_targetPosSet && gluProject((GLdouble)m_targetPos[0], (GLdouble)m_targetPos[1], (GLdouble)m_targetPos[2], + model, proj, view, &x, &y, &z)) + { + imguiDrawText((int)x, (int)(y+25), IMGUI_ALIGN_CENTER, "TARGET", imguiRGBA(0,0,0,220)); + } + + if (m_showLabels) + { + char label[32]; + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const Agent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + + if (gluProject((GLdouble)ag->pos[0], (GLdouble)ag->pos[1]+ag->height, (GLdouble)ag->pos[2], + model, proj, view, &x, &y, &z)) + { + snprintf(label, 32, "%d", i); + imguiDrawText((int)x, (int)y+15, IMGUI_ALIGN_CENTER, label, imguiRGBA(0,0,0,220)); + } + + } + } +} diff --git a/RecastDemo/Source/InputGeom.cpp b/RecastDemo/Source/InputGeom.cpp index 1397a00..690afe3 100644 --- a/RecastDemo/Source/InputGeom.cpp +++ b/RecastDemo/Source/InputGeom.cpp @@ -415,13 +415,13 @@ void InputGeom::drawConvexVolumes(struct duDebugDraw* dd, bool /*hilight*/) dd->vertex(vb[0],vol->hmax,vb[2], col); dd->vertex(va[0],vol->hmax,va[2], col); - dd->vertex(va[0],vol->hmin,va[2], duDarkenColor(col)); + dd->vertex(va[0],vol->hmin,va[2], duDarkenCol(col)); dd->vertex(va[0],vol->hmax,va[2], col); dd->vertex(vb[0],vol->hmax,vb[2], col); - dd->vertex(va[0],vol->hmin,va[2], duDarkenColor(col)); + dd->vertex(va[0],vol->hmin,va[2], duDarkenCol(col)); dd->vertex(vb[0],vol->hmax,vb[2], col); - dd->vertex(vb[0],vol->hmin,vb[2], duDarkenColor(col)); + dd->vertex(vb[0],vol->hmin,vb[2], duDarkenCol(col)); } } @@ -436,11 +436,11 @@ void InputGeom::drawConvexVolumes(struct duDebugDraw* dd, bool /*hilight*/) { const float* va = &vol->verts[k*3]; const float* vb = &vol->verts[j*3]; - dd->vertex(va[0],vol->hmin,va[2], duDarkenColor(col)); - dd->vertex(vb[0],vol->hmin,vb[2], duDarkenColor(col)); + dd->vertex(va[0],vol->hmin,va[2], duDarkenCol(col)); + dd->vertex(vb[0],vol->hmin,vb[2], duDarkenCol(col)); dd->vertex(va[0],vol->hmax,va[2], col); dd->vertex(vb[0],vol->hmax,vb[2], col); - dd->vertex(va[0],vol->hmin,va[2], duDarkenColor(col)); + dd->vertex(va[0],vol->hmin,va[2], duDarkenCol(col)); dd->vertex(va[0],vol->hmax,va[2], col); } } @@ -450,7 +450,7 @@ void InputGeom::drawConvexVolumes(struct duDebugDraw* dd, bool /*hilight*/) for (int i = 0; i < m_volumeCount; ++i) { const ConvexVolume* vol = &m_volumes[i]; - unsigned int col = duDarkenColor(duIntToCol(vol->area, 255)); + unsigned int col = duDarkenCol(duIntToCol(vol->area, 255)); for (int j = 0; j < vol->nverts; ++j) { dd->vertex(vol->verts[j*3+0],vol->verts[j*3+1]+0.1f,vol->verts[j*3+2], col); diff --git a/RecastDemo/Source/NavMeshTesterTool.cpp b/RecastDemo/Source/NavMeshTesterTool.cpp index 3edd799..c448f88 100644 --- a/RecastDemo/Source/NavMeshTesterTool.cpp +++ b/RecastDemo/Source/NavMeshTesterTool.cpp @@ -315,7 +315,7 @@ void NavMeshTesterTool::handleMenu() } } -void NavMeshTesterTool::handleClick(const float* p, bool shift) +void NavMeshTesterTool::handleClick(const float* s, const float* p, bool shift) { if (shift) { @@ -477,6 +477,10 @@ void NavMeshTesterTool::handleStep() } +void NavMeshTesterTool::handleUpdate(const float dt) +{ +} + void NavMeshTesterTool::reset() { m_startRef = 0; @@ -893,8 +897,8 @@ void NavMeshTesterTool::handleRender() for (int i = 0; i < m_steerPointCount-1; ++i) { - dd.vertex(m_steerPoints[i*3+0],m_steerPoints[i*3+1]+0.2f,m_steerPoints[i*3+2], duDarkenColor(steerCol)); - dd.vertex(m_steerPoints[(i+1)*3+0],m_steerPoints[(i+1)*3+1]+0.2f,m_steerPoints[(i+1)*3+2], duDarkenColor(steerCol)); + dd.vertex(m_steerPoints[i*3+0],m_steerPoints[i*3+1]+0.2f,m_steerPoints[i*3+2], duDarkenCol(steerCol)); + dd.vertex(m_steerPoints[(i+1)*3+0],m_steerPoints[(i+1)*3+1]+0.2f,m_steerPoints[(i+1)*3+2], duDarkenCol(steerCol)); } dd.end(); diff --git a/RecastDemo/Source/OffMeshConnectionTool.cpp b/RecastDemo/Source/OffMeshConnectionTool.cpp index 9ede57d..0286561 100644 --- a/RecastDemo/Source/OffMeshConnectionTool.cpp +++ b/RecastDemo/Source/OffMeshConnectionTool.cpp @@ -83,7 +83,7 @@ void OffMeshConnectionTool::handleMenu() } } -void OffMeshConnectionTool::handleClick(const float* p, bool shift) +void OffMeshConnectionTool::handleClick(const float* s, const float* p, bool shift) { if (!m_sample) return; InputGeom* geom = m_sample->getInputGeom(); @@ -136,6 +136,10 @@ void OffMeshConnectionTool::handleStep() { } +void OffMeshConnectionTool::handleUpdate(const float dt) +{ +} + void OffMeshConnectionTool::handleRender() { DebugDrawGL dd; diff --git a/RecastDemo/Source/Sample.cpp b/RecastDemo/Source/Sample.cpp index 9fb7f35..5696809 100644 --- a/RecastDemo/Source/Sample.cpp +++ b/RecastDemo/Source/Sample.cpp @@ -266,10 +266,10 @@ void Sample::handleCommonSettings() imguiSeparator(); } -void Sample::handleClick(const float* p, bool shift) +void Sample::handleClick(const float* s, const float* p, bool shift) { if (m_tool) - m_tool->handleClick(p, shift); + m_tool->handleClick(s, p, shift); } void Sample::handleStep() @@ -282,3 +282,10 @@ bool Sample::handleBuild() { return true; } + +void Sample::handleUpdate(const float dt) +{ + if (m_tool) + m_tool->handleUpdate(dt); +} + diff --git a/RecastDemo/Source/Sample_Debug.cpp b/RecastDemo/Source/Sample_Debug.cpp index 9eaaaba..32e717b 100644 --- a/RecastDemo/Source/Sample_Debug.cpp +++ b/RecastDemo/Source/Sample_Debug.cpp @@ -352,10 +352,10 @@ const float* Sample_Debug::getBoundsMax() return 0; } -void Sample_Debug::handleClick(const float* p, bool shift) +void Sample_Debug::handleClick(const float* s, const float* p, bool shift) { if (m_tool) - m_tool->handleClick(p, shift); + m_tool->handleClick(s, p, shift); } void Sample_Debug::handleStep() diff --git a/RecastDemo/Source/Sample_SoloMeshSimple.cpp b/RecastDemo/Source/Sample_SoloMeshSimple.cpp index 5bff697..3cfc7fe 100644 --- a/RecastDemo/Source/Sample_SoloMeshSimple.cpp +++ b/RecastDemo/Source/Sample_SoloMeshSimple.cpp @@ -36,6 +36,7 @@ #include "NavMeshTesterTool.h" #include "OffMeshConnectionTool.h" #include "ConvexVolumeTool.h" +#include "CrowdTool.h" #ifdef WIN32 # define snprintf _snprintf @@ -111,6 +112,10 @@ void Sample_SoloMeshSimple::handleTools() { setTool(new ConvexVolumeTool); } + if (imguiCheck("Create Crowds", type == TOOL_CROWD)) + { + setTool(new CrowdTool); + } imguiSeparator(); diff --git a/RecastDemo/Source/Sample_SoloMeshTiled.cpp b/RecastDemo/Source/Sample_SoloMeshTiled.cpp index ce56b95..09dee8b 100644 --- a/RecastDemo/Source/Sample_SoloMeshTiled.cpp +++ b/RecastDemo/Source/Sample_SoloMeshTiled.cpp @@ -35,6 +35,7 @@ #include "NavMeshTesterTool.h" #include "OffMeshConnectionTool.h" #include "ConvexVolumeTool.h" +#include "CrowdTool.h" #ifdef WIN32 # define snprintf _snprintf @@ -78,7 +79,7 @@ public: imguiValue("Click LMB to highlight a tile."); } - virtual void handleClick(const float* p, bool /*shift*/) + virtual void handleClick(const float* /*s*/, const float* p, bool /*shift*/) { m_hitPosSet = true; rcVcopy(m_hitPos,p); @@ -88,6 +89,8 @@ public: virtual void handleStep() {} + virtual void handleUpdate(const float dt) {} + virtual void handleRender() { if (m_hitPosSet) @@ -215,6 +218,10 @@ void Sample_SoloMeshTiled::handleTools() { setTool(new ConvexVolumeTool); } + if (imguiCheck("Create Crowds", type == TOOL_CROWD)) + { + setTool(new CrowdTool); + } if (imguiCheck("Highlight Tile", type == TOOL_TILE_HIGHLIGHT)) { setTool(new TileHighlightTool); diff --git a/RecastDemo/Source/Sample_TileMesh.cpp b/RecastDemo/Source/Sample_TileMesh.cpp index 2a1e9a1..d4d8ff3 100644 --- a/RecastDemo/Source/Sample_TileMesh.cpp +++ b/RecastDemo/Source/Sample_TileMesh.cpp @@ -35,6 +35,7 @@ #include "NavMeshTesterTool.h" #include "OffMeshConnectionTool.h" #include "ConvexVolumeTool.h" +#include "CrowdTool.h" #ifdef WIN32 # define snprintf _snprintf @@ -112,7 +113,7 @@ public: imguiValue("Shift+LMB to remove a tile."); } - virtual void handleClick(const float* p, bool shift) + virtual void handleClick(const float* s, const float* p, bool shift) { m_hitPosSet = true; rcVcopy(m_hitPos,p); @@ -126,6 +127,8 @@ public: } virtual void handleStep() {} + + virtual void handleUpdate(const float dt) {} virtual void handleRender() { @@ -406,6 +409,10 @@ void Sample_TileMesh::handleTools() { setTool(new ConvexVolumeTool); } + if (imguiCheck("Create Crowds", type == TOOL_CROWD)) + { + setTool(new CrowdTool); + } imguiSeparator(); diff --git a/RecastDemo/Source/main.cpp b/RecastDemo/Source/main.cpp index ecf76e6..499f58d 100644 --- a/RecastDemo/Source/main.cpp +++ b/RecastDemo/Source/main.cpp @@ -113,6 +113,7 @@ int main(int /*argc*/, char** /*argv*/) } float t = 0.0f; + float timeAcc = 0.0f; Uint32 lastTime = SDL_GetTicks(); int mx = 0, my = 0; float rx = 45; @@ -363,6 +364,7 @@ int main(int /*argc*/, char** /*argv*/) t += dt; + // Hit test mesh. if (processHitTest && geom && sample) { @@ -383,7 +385,7 @@ int main(int /*argc*/, char** /*argv*/) pos[0] = rays[0] + (raye[0] - rays[0])*t; pos[1] = rays[1] + (raye[1] - rays[1])*t; pos[2] = rays[2] + (raye[2] - rays[2])*t; - sample->handleClick(pos, processHitTestShift); + sample->handleClick(rays, pos, processHitTestShift); } } else @@ -396,7 +398,22 @@ int main(int /*argc*/, char** /*argv*/) } } - + // Update sample simulation. + const float SIM_RATE = 20; + const float DELTA_TIME = 1.0f/SIM_RATE; + timeAcc = rcClamp(timeAcc+dt, -1.0f, 1.0f); + int simIter = 0; + while (timeAcc > DELTA_TIME) + { + timeAcc -= DELTA_TIME; + if (simIter < 5) + { + if (sample) + sample->handleUpdate(DELTA_TIME); + } + simIter++; + } + // Update and render glViewport(0, 0, width, height); glClearColor(0.3f, 0.3f, 0.32f, 1.0f);