From 3abbfe006db622550f4fed3ac6c8975250fec25f Mon Sep 17 00:00:00 2001 From: Mikko Mononen Date: Tue, 19 Jan 2010 14:22:48 +0000 Subject: [PATCH] Changed Detour header var names more to verbose. Pass params as a struct to dtCreateNavMeshData. Named Off-mesh links to Off-mesh connections. Cleaned up Off-mesh connection code and samples. Added connection radius and direction to Off-mesh connections. Agent dimensions passed store in navmesh header. --- DebugUtils/Include/DebugDraw.h | 8 +- DebugUtils/Include/DetourDebugDraw.h | 8 +- DebugUtils/Source/DebugDraw.cpp | 98 +- DebugUtils/Source/DetourDebugDraw.cpp | 162 +- DebugUtils/Source/RecastDebugDraw.cpp | 146 +- Detour/Include/DetourCommon.h | 9 + Detour/Include/DetourNavMesh.h | 85 +- Detour/Include/DetourNavMeshBuilder.h | 38 +- Detour/Source/DetourNavMesh.cpp | 384 +- Detour/Source/DetourNavMeshBuilder.cpp | 247 +- .../Xcode/Recast.xcodeproj/memon.pbxuser | 8386 ++++++++++++----- .../Recast.xcodeproj/memon.perspectivev3 | 297 +- .../Xcode/Recast.xcodeproj/project.pbxproj | 12 +- RecastDemo/Include/InputGeom.h | 20 +- RecastDemo/Include/NavMeshTesterTool.h | 3 +- ...MeshLinkTool.h => OffMeshConnectionTool.h} | 15 +- RecastDemo/Include/Sample.h | 8 +- RecastDemo/Source/InputGeom.cpp | 55 +- RecastDemo/Source/NavMeshTesterTool.cpp | 273 +- ...LinkTool.cpp => OffMeshConnectionTool.cpp} | 44 +- RecastDemo/Source/Sample.cpp | 7 + RecastDemo/Source/Sample_SoloMeshSimple.cpp | 49 +- RecastDemo/Source/Sample_SoloMeshTiled.cpp | 49 +- RecastDemo/Source/Sample_TileMesh.cpp | 54 +- 24 files changed, 7358 insertions(+), 3099 deletions(-) rename RecastDemo/Include/{OffMeshLinkTool.h => OffMeshConnectionTool.h} (82%) rename RecastDemo/Source/{OffMeshLinkTool.cpp => OffMeshConnectionTool.cpp} (70%) diff --git a/DebugUtils/Include/DebugDraw.h b/DebugUtils/Include/DebugDraw.h index 1b9e966..ef0797f 100644 --- a/DebugUtils/Include/DebugDraw.h +++ b/DebugUtils/Include/DebugDraw.h @@ -30,6 +30,8 @@ enum duDebugDrawPrimitives // Abstrace debug draw interface. struct duDebugDraw { + virtual void depthMask(bool state) = 0; + // Begin drawing primitives. // Params: // prim - (in) primitive type to draw, one of rcDebugDrawPrimitives. @@ -79,7 +81,8 @@ void duDebugDrawBoxWire(struct duDebugDraw* dd, float minx, float miny, float mi float maxx, float maxy, float maxz, unsigned int col, const float lineWidth); void duDebugDrawArc(struct duDebugDraw* dd, const float x0, const float y0, const float z0, - const float x1, const float y1, const float z1, const float h, unsigned int col, const float lineWidth); + 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 duDebugDrawCircle(struct duDebugDraw* dd, const float x, const float y, const float z, const float r, unsigned int col, const float lineWidth); @@ -103,7 +106,8 @@ void duAppendBoxWire(struct duDebugDraw* dd, float minx, float miny, float minz, float maxx, float maxy, float maxz, unsigned int col); void duAppendArc(struct duDebugDraw* dd, const float x0, const float y0, const float z0, - const float x1, const float y1, const float z1, const float h, unsigned int col); + const float x1, const float y1, const float z1, const float h, + 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/Include/DetourDebugDraw.h b/DebugUtils/Include/DetourDebugDraw.h index 19b1d51..30e2f0e 100755 --- a/DebugUtils/Include/DetourDebugDraw.h +++ b/DebugUtils/Include/DetourDebugDraw.h @@ -21,7 +21,13 @@ #include "DetourNavMesh.h" -void duDebugDrawNavMesh(struct duDebugDraw* dd, const dtNavMesh* mesh, bool drawClosedList = false); +enum DrawNavMeshFlags +{ + DU_DRAWNAVMESH_CLOSEDLIST = 0x01, + DU_DRAWNAVMESH_OFFMESHCONS = 0x02 +}; + +void duDebugDrawNavMesh(struct duDebugDraw* dd, const dtNavMesh* mesh, unsigned char flags); void duDebugDrawNavMeshBVTree(struct duDebugDraw* dd, const dtNavMesh* mesh); void duDebugDrawNavMeshPoly(struct duDebugDraw* dd, const dtNavMesh* mesh, dtPolyRef ref, const unsigned int col); diff --git a/DebugUtils/Source/DebugDraw.cpp b/DebugUtils/Source/DebugDraw.cpp index 5774cfb..4812dfc 100644 --- a/DebugUtils/Source/DebugDraw.cpp +++ b/DebugUtils/Source/DebugDraw.cpp @@ -79,10 +79,11 @@ void duDebugDrawBoxWire(struct duDebugDraw* dd, float minx, float miny, float mi } void duDebugDrawArc(struct duDebugDraw* dd, const float x0, const float y0, const float z0, - const float x1, const float y1, const float z1, const float h, unsigned int col, const float lineWidth) + const float x1, const float y1, const float z1, const float h, + const float as0, const float as1, unsigned int col, const float lineWidth) { dd->begin(DU_DRAW_LINES, lineWidth); - duAppendArc(dd, x0,y0,z0, x1,y1,z1, h, col); + duAppendArc(dd, x0,y0,z0, x1,y1,z1, h, as0, as1, col); dd->end(); } @@ -234,25 +235,98 @@ void duAppendBox(struct duDebugDraw* dd, float minx, float miny, float minz, } } + +inline void evalArc(const float x0, const float y0, const float z0, + const float dx, const float dy, const float dz, + const float h, const float u, float* res) +{ + res[0] = x0 + dx * u; + res[1] = y0 + dy * u + h * (1-(u*2-1)*(u*2-1)); + res[2] = z0 + dz * u; +} + + +inline void vcross(float* dest, const float* v1, const float* v2) +{ + dest[0] = v1[1]*v2[2] - v1[2]*v2[1]; + dest[1] = v1[2]*v2[0] - v1[0]*v2[2]; + dest[2] = v1[0]*v2[1] - v1[1]*v2[0]; +} + +inline void vnormalize(float* v) +{ + float d = 1.0f / sqrtf(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); + v[0] *= d; + v[1] *= d; + v[2] *= d; +} + +inline void vsub(float* dest, const float* v1, const float* v2) +{ + dest[0] = v1[0]-v2[0]; + dest[1] = v1[1]-v2[1]; + dest[2] = v1[2]-v2[2]; +} + + +void appendArrowHead(struct duDebugDraw* dd, const float* p, const float* q, + const float s, unsigned int col) +{ + float ax[3], ay[3] = {0,1,0}, az[3]; + vsub(az, q, p); + vnormalize(az); + vcross(ax, ay, az); + vcross(ay, az, ax); + vnormalize(ay); + + dd->vertex(p, col); +// dd->vertex(p[0]+az[0]*s+ay[0]*s/2, p[1]+az[1]*s+ay[1]*s/2, p[2]+az[2]*s+ay[2]*s/2, col); + dd->vertex(p[0]+az[0]*s+ax[0]*s/3, p[1]+az[1]*s+ax[1]*s/3, p[2]+az[2]*s+ax[2]*s/3, col); + + dd->vertex(p, col); +// dd->vertex(p[0]+az[0]*s-ay[0]*s/2, p[1]+az[1]*s-ay[1]*s/2, p[2]+az[2]*s-ay[2]*s/2, col); + dd->vertex(p[0]+az[0]*s-ax[0]*s/3, p[1]+az[1]*s-ax[1]*s/3, p[2]+az[2]*s-ax[2]*s/3, col); + +} + void duAppendArc(struct duDebugDraw* dd, const float x0, const float y0, const float z0, - const float x1, const float y1, const float z1, const float h, unsigned int col) + const float x1, const float y1, const float z1, const float h, + const float as0, const float as1, unsigned int col) { static const int NUM_ARC_PTS = 8; - static const float ARC_PTS_SCALE = 1.0f / (float)NUM_ARC_PTS; + static const float PAD = 0.05f; + static const float ARC_PTS_SCALE = (1.0f-PAD*2) / (float)NUM_ARC_PTS; const float dx = x1 - x0; const float dy = y1 - y0; const float dz = z1 - z0; const float len = sqrtf(dx*dx + dy*dy + dz*dz); - float px = x0, py = y0, pz = z0; + float prev[3]; + evalArc(x0,y0,z0, dx,dy,dz, len*h, PAD, prev); for (int i = 1; i <= NUM_ARC_PTS; ++i) { - const float u = i * ARC_PTS_SCALE; - const float x = x0 + dx * u; - const float y = y0 + dy * u + (len*h) * (1-(u*2-1)*(u*2-1)); - const float z = z0 + dz * u; - dd->vertex(px,py,pz, col); - dd->vertex(x,y,z, col); - px = x; py = y; pz = z; + const float u = PAD + i * ARC_PTS_SCALE; + float pt[3]; + evalArc(x0,y0,z0, dx,dy,dz, len*h, u, pt); + dd->vertex(prev[0],prev[1],prev[2], col); + dd->vertex(pt[0],pt[1],pt[2], col); + prev[0] = pt[0]; prev[1] = pt[1]; prev[2] = pt[2]; + } + + // End arrows + if (as0 > 0.001f) + { + float p[3], q[3]; + evalArc(x0,y0,z0, dx,dy,dz, len*h, PAD, p); + evalArc(x0,y0,z0, dx,dy,dz, len*h, PAD+0.05f, q); + appendArrowHead(dd, p, q, as0, col); + } + + if (as1 > 0.001f) + { + float p[3], q[3]; + evalArc(x0,y0,z0, dx,dy,dz, len*h, 1-PAD, p); + evalArc(x0,y0,z0, dx,dy,dz, len*h, 1-(PAD+0.05f), q); + appendArrowHead(dd, p, q, as1, col); } } diff --git a/DebugUtils/Source/DetourDebugDraw.cpp b/DebugUtils/Source/DetourDebugDraw.cpp index 7217bfd..6aefdcb 100755 --- a/DebugUtils/Source/DetourDebugDraw.cpp +++ b/DebugUtils/Source/DetourDebugDraw.cpp @@ -16,9 +16,11 @@ // 3. This notice may not be removed or altered from any source distribution. // +#include #include "DebugDraw.h" #include "DetourDebugDraw.h" #include "DetourNavMesh.h" +#include "DetourCommon.h" static float distancePtLine2d(const float* pt, const float* p, const float* q) @@ -43,26 +45,26 @@ static void drawPolyBoundaries(duDebugDraw* dd, const dtMeshHeader* header, dd->begin(DU_DRAW_LINES, linew); - for (int i = 0; i < header->npolys; ++i) + for (int i = 0; i < header->polyCount; ++i) { const dtPoly* p = &header->polys[i]; - if (p->flags & DT_POLY_OFFMESH_LINK) continue; + if (p->flags & DT_POLY_OFFMESH_CONNECTION) continue; - const dtPolyDetail* pd = &header->dmeshes[i]; + const dtPolyDetail* pd = &header->detailMeshes[i]; - for (int j = 0, nj = (int)p->nv; j < nj; ++j) + for (int j = 0, nj = (int)p->vertCount; j < nj; ++j) { unsigned int c = col; if (inner) { - if (p->n[j] == 0) continue; - if (p->n[j] & 0x8000) + if (p->neis[j] == 0) continue; + if (p->neis[j] & DT_EXT_LINK) { bool con = false; - for (int k = 0; k < p->nlinks; ++k) + for (int k = 0; k < p->linkCount; ++k) { - if (header->links[p->links+k].e == j) + if (header->links[p->linkBase+k].edge == j) { con = true; break; @@ -78,24 +80,24 @@ static void drawPolyBoundaries(duDebugDraw* dd, const dtMeshHeader* header, } else { - if (p->n[j] != 0) continue; + if (p->neis[j] != 0) continue; } - const float* v0 = &header->verts[p->v[j]*3]; - const float* v1 = &header->verts[p->v[(j+1)%nj]*3]; + const float* v0 = &header->verts[p->verts[j]*3]; + const float* v1 = &header->verts[p->verts[(j+1) % nj]*3]; // Draw detail mesh edges which align with the actual poly edge. // This is really slow. - for (int k = 0; k < pd->ntris; ++k) + for (int k = 0; k < pd->triCount; ++k) { - const unsigned char* t = &header->dtris[(pd->tbase+k)*4]; + const unsigned char* t = &header->detailTris[(pd->triBase+k)*4]; const float* tv[3]; for (int m = 0; m < 3; ++m) { - if (t[m] < p->nv) - tv[m] = &header->verts[p->v[t[m]]*3]; + if (t[m] < p->vertCount) + tv[m] = &header->verts[p->verts[t[m]]*3]; else - tv[m] = &header->dverts[(pd->vbase+(t[m]-p->nv))*3]; + tv[m] = &header->detailVerts[(pd->vertBase+(t[m]-p->vertCount))*3]; } for (int m = 0, n = 2; m < 3; n=m++) { @@ -113,59 +115,88 @@ static void drawPolyBoundaries(duDebugDraw* dd, const dtMeshHeader* header, dd->end(); } -static void drawMeshTile(duDebugDraw* dd, const dtNavMesh* mesh, const dtMeshTile* tile, bool drawClosedList) +static void drawMeshTile(duDebugDraw* dd, const dtNavMesh* mesh, const dtMeshTile* tile, unsigned char flags) { const dtMeshHeader* header = tile->header; dtPolyRef base = mesh->getTileId(tile); + dd->depthMask(false); + dd->begin(DU_DRAW_TRIS); - for (int i = 0; i < header->npolys; ++i) + for (int i = 0; i < header->polyCount; ++i) { const dtPoly* p = &header->polys[i]; - if (p->flags & DT_POLY_OFFMESH_LINK) // Skip off-mesh links. + if (p->flags & DT_POLY_OFFMESH_CONNECTION) // Skip off-mesh links. continue; - const dtPolyDetail* pd = &header->dmeshes[i]; + const dtPolyDetail* pd = &header->detailMeshes[i]; unsigned int col; - if (drawClosedList && mesh->isInClosedList(base | (dtPolyRef)i)) + if ((flags & DU_DRAWNAVMESH_CLOSEDLIST) && mesh->isInClosedList(base | (dtPolyRef)i)) col = duRGBA(255,196,0,64); else col = duRGBA(0,196,255,64); - for (int j = 0; j < pd->ntris; ++j) + for (int j = 0; j < pd->triCount; ++j) { - const unsigned char* t = &header->dtris[(pd->tbase+j)*4]; + const unsigned char* t = &header->detailTris[(pd->triBase+j)*4]; for (int k = 0; k < 3; ++k) { - if (t[k] < p->nv) - dd->vertex(&header->verts[p->v[t[k]]*3], col); + if (t[k] < p->vertCount) + dd->vertex(&header->verts[p->verts[t[k]]*3], col); else - dd->vertex(&header->dverts[(pd->vbase+t[k]-p->nv)*3], col); + dd->vertex(&header->detailVerts[(pd->vertBase+t[k]-p->vertCount)*3], col); } } } dd->end(); - dd->begin(DU_DRAW_LINES, 2.0f); - for (int i = 0; i < header->npolys; ++i) + if (flags & DU_DRAWNAVMESH_OFFMESHCONS) { - const dtPoly* p = &header->polys[i]; - if ((p->flags & DT_POLY_OFFMESH_LINK) == 0) // Skip regular polys. - continue; + dd->begin(DU_DRAW_LINES, 2.0f); + for (int i = 0; i < header->polyCount; ++i) + { + const dtPoly* p = &header->polys[i]; + if ((p->flags & DT_POLY_OFFMESH_CONNECTION) == 0) // Skip regular polys. + continue; + + unsigned int col; + if ((flags & DU_DRAWNAVMESH_CLOSEDLIST) && mesh->isInClosedList(base | (dtPolyRef)i)) + col = duRGBA(255,196,0,220); + else + col = duRGBA(255,255,255,220); - unsigned int col; - if (drawClosedList && mesh->isInClosedList(base | (dtPolyRef)i)) - col = duRGBA(255,196,0,220); - else - col = duRGBA(0,196,255,220); - - const float* va = &header->verts[p->v[0]*3]; - const float* vb = &header->verts[p->v[1]*3]; - - duDebugDrawArc(dd, va[0],va[1]+0.1f,va[2], vb[0],vb[1]+0.1f,vb[2], 0.25f, col, 2.0f); + const dtOffMeshConnection* con = &header->offMeshCons[i - header->offMeshBase]; + const float* va = &header->verts[p->verts[0]*3]; + const float* vb = &header->verts[p->verts[1]*3]; + + // End points and their on-mesh locations. + if (con->ref[0]) + { + dd->vertex(va[0],va[1],va[2], col); + dd->vertex(con->pos[0],con->pos[1],con->pos[2], col); + duAppendCircle(dd, con->pos[0],con->pos[1]+0.1f,con->pos[2], con->rad, duRGBA(0,48,64,196)); + } + if (con->ref[1]) + { + dd->vertex(vb[0],vb[1],vb[2], col); + dd->vertex(con->pos[3],con->pos[4],con->pos[5], col); + duAppendCircle(dd, con->pos[3],con->pos[4]+0.1f,con->pos[5], con->rad, duRGBA(0,48,64,196)); + } + + // End point vertices. + dd->vertex(con->pos[0],con->pos[1],con->pos[2], duRGBA(0,48,64,196)); + dd->vertex(con->pos[0],con->pos[1]+0.2f,con->pos[2], duRGBA(0,48,64,196)); + + dd->vertex(con->pos[3],con->pos[4],con->pos[5], duRGBA(0,48,64,196)); + dd->vertex(con->pos[3],con->pos[4]+0.2f,con->pos[5], duRGBA(0,48,64,196)); + + // Connection arc. + duAppendArc(dd, con->pos[0],con->pos[1],con->pos[2], con->pos[3],con->pos[4],con->pos[5], 0.25f, + (con->flags & 1) ? 0.6f : 0, 0.6f, col); + } + dd->end(); } - dd->end(); // Draw inter poly boundaries drawPolyBoundaries(dd, header, duRGBA(0,48,64,32), 1.5f, true); @@ -175,7 +206,7 @@ static void drawMeshTile(duDebugDraw* dd, const dtNavMesh* mesh, const dtMeshTil const unsigned int vcol = duRGBA(0,0,0,196); dd->begin(DU_DRAW_POINTS, 3.0f); - for (int i = 0; i < header->nverts; ++i) + for (int i = 0; i < header->vertCount; ++i) { const float* v = &header->verts[i*3]; dd->vertex(v[0], v[1], v[2], vcol); @@ -262,9 +293,12 @@ static void drawMeshTile(duDebugDraw* dd, const dtNavMesh* mesh, const dtMeshTil glVertex3f(p->bmin[0], p->bmin[1], header->bmin[2]+0.1f); } glEnd();*/ + + dd->depthMask(true); + } -void duDebugDrawNavMesh(duDebugDraw* dd, const dtNavMesh* mesh, bool drawClosedList) +void duDebugDrawNavMesh(duDebugDraw* dd, const dtNavMesh* mesh, unsigned char flags) { if (!mesh) return; @@ -272,7 +306,7 @@ void duDebugDrawNavMesh(duDebugDraw* dd, const dtNavMesh* mesh, bool drawClosedL { const dtMeshTile* tile = mesh->getTile(i); if (!tile->header) continue; - drawMeshTile(dd, mesh, tile, drawClosedList); + drawMeshTile(dd, mesh, tile, flags); } } @@ -282,11 +316,11 @@ static void drawMeshTileBVTree(duDebugDraw* dd, const dtNavMesh* mesh, const dtM const dtMeshHeader* header = tile->header; // Draw BV nodes. - const float cs = 1.0f / header->bvquant; + const float cs = 1.0f / header->bvQuantFactor; dd->begin(DU_DRAW_LINES, 1.0f); - for (int i = 0; i < header->nbvtree; ++i) + for (int i = 0; i < header->bvNodeCount; ++i) { - const dtBVNode* n = &header->bvtree[i]; + const dtBVNode* n = &header->bvTree[i]; if (n->i < 0) // Leaf indices are positive. continue; duAppendBoxWire(dd, header->bmin[0] + n->bmin[0]*cs, @@ -402,31 +436,43 @@ void duDebugDrawNavMeshPoly(duDebugDraw* dd, const dtNavMesh* mesh, dtPolyRef re const dtMeshHeader* header = tile->header; const dtPoly* p = &header->polys[ip]; + dd->depthMask(false); + const unsigned int c = (col & 0x00ffffff) | (64 << 24); - if (p->flags & DT_POLY_OFFMESH_LINK) + if (p->flags & DT_POLY_OFFMESH_CONNECTION) { - const float* va = &header->verts[p->v[0]*3]; - const float* vb = &header->verts[p->v[1]*3]; - duDebugDrawArc(dd, va[0],va[1]+0.1f,va[2], vb[0],vb[1]+0.1f,vb[2], 0.25f, c, 2.0f); + dtOffMeshConnection* con = &header->offMeshCons[ip - header->offMeshBase]; + + dd->begin(DU_DRAW_LINES, 2.0f); + + // Connection arc. + duAppendArc(dd, con->pos[0],con->pos[1],con->pos[2], con->pos[3],con->pos[4],con->pos[5], 0.25f, + (con->flags & 1) ? 0.6f : 0, 0.6f, c); + + dd->end(); + } else { - const dtPolyDetail* pd = &header->dmeshes[ip]; + const dtPolyDetail* pd = &header->detailMeshes[ip]; dd->begin(DU_DRAW_TRIS); - for (int i = 0; i < pd->ntris; ++i) + for (int i = 0; i < pd->triCount; ++i) { - const unsigned char* t = &header->dtris[(pd->tbase+i)*4]; + const unsigned char* t = &header->detailTris[(pd->triBase+i)*4]; for (int j = 0; j < 3; ++j) { - if (t[j] < p->nv) - dd->vertex(&header->verts[p->v[t[j]]*3], c); + if (t[j] < p->vertCount) + dd->vertex(&header->verts[p->verts[t[j]]*3], c); else - dd->vertex(&header->dverts[(pd->vbase+t[j]-p->nv)*3], c); + dd->vertex(&header->detailVerts[(pd->vertBase+t[j]-p->vertCount)*3], c); } } dd->end(); } + + dd->depthMask(true); + } diff --git a/DebugUtils/Source/RecastDebugDraw.cpp b/DebugUtils/Source/RecastDebugDraw.cpp index f4d218d..5512b4b 100644 --- a/DebugUtils/Source/RecastDebugDraw.cpp +++ b/DebugUtils/Source/RecastDebugDraw.cpp @@ -72,148 +72,6 @@ void duDebugDrawTriMeshSlope(duDebugDraw* dd, const float* verts, int nverts, dd->end(); } -/* -static void drawBoxWire(duDebugDraw* dd, - float minx, float miny, float minz, - float maxx, float maxy, float maxz, - const float* col) -{ - // Submits 24 vertices. - - unsigned int color = duRGBAf(col[0],col[1],col[2],col[3]); - - // Top - dd->vertex(minx, miny, minz, color); - dd->vertex(maxx, miny, minz, color); - dd->vertex(maxx, miny, minz, color); - dd->vertex(maxx, miny, maxz, color); - dd->vertex(maxx, miny, maxz, color); - dd->vertex(minx, miny, maxz, color); - dd->vertex(minx, miny, maxz, color); - dd->vertex(minx, miny, minz, color); - - // bottom - dd->vertex(minx, maxy, minz, color); - dd->vertex(maxx, maxy, minz, color); - dd->vertex(maxx, maxy, minz, color); - dd->vertex(maxx, maxy, maxz, color); - dd->vertex(maxx, maxy, maxz, color); - dd->vertex(minx, maxy, maxz, color); - dd->vertex(minx, maxy, maxz, color); - dd->vertex(minx, maxy, minz, color); - - // Sides - dd->vertex(minx, miny, minz, color); - dd->vertex(minx, maxy, minz, color); - dd->vertex(maxx, miny, minz, color); - dd->vertex(maxx, maxy, minz, color); - dd->vertex(maxx, miny, maxz, color); - dd->vertex(maxx, maxy, maxz, color); - dd->vertex(minx, miny, maxz, color); - dd->vertex(minx, maxy, maxz, color); -} -*/ -/*static void drawBox(duDebugDraw* dd, - float minx, float miny, float minz, - float maxx, float maxy, float maxz, - const float* col1, const float* col2) -{ - // Submits 24 vertices. - - const float verts[8*3] = - { - minx, miny, minz, - maxx, miny, minz, - maxx, miny, maxz, - minx, miny, maxz, - minx, maxy, minz, - maxx, maxy, minz, - maxx, maxy, maxz, - minx, maxy, maxz, - }; - static const float dim[6] = - { - 0.95f, 0.55f, 0.65f, 0.85f, 0.65f, 0.85f, - }; - static const unsigned char inds[6*5] = - { - 0, 7, 6, 5, 4, - 1, 0, 1, 2, 3, - 2, 1, 5, 6, 2, - 3, 3, 7, 4, 0, - 4, 2, 6, 7, 3, - 5, 0, 4, 5, 1, - }; - - const unsigned char* in = inds; - for (int i = 0; i < 6; ++i) - { - float d = dim[*in]; in++; - unsigned int color; - if (i == 0) - color = duRGBAf(d*col2[0],d*col2[1],d*col2[2], col2[3]); - else - color = duRGBAf(d*col1[0],d*col1[1],d*col1[2], col1[3]); - dd->vertex(&verts[*in*3], color); in++; - dd->vertex(&verts[*in*3], color); in++; - dd->vertex(&verts[*in*3], color); in++; - dd->vertex(&verts[*in*3], color); in++; - } -} - -void duDebugDrawCylinderWire(duDebugDraw* dd, float minx, float miny, float minz, - float maxx, float maxy, float maxz, - const float* col) -{ - static const int NUM_SEG = 16; - float dir[NUM_SEG*2]; - for (int i = 0; i < NUM_SEG; ++i) - { - const float a = (float)i/(float)NUM_SEG*(float)M_PI*2; - dir[i*2] = cosf(a); - dir[i*2+1] = sinf(a); - } - - const float cx = (maxx + minx)/2; - const float cz = (maxz + minz)/2; - const float rx = (maxx - minx)/2; - const float rz = (maxz - minz)/2; - - unsigned int color = duRGBAf(col[0],col[1],col[2],col[3]); - - dd->begin(DU_DRAW_LINES); - - for (int i = 0, j=NUM_SEG-1; i < NUM_SEG; j=i++) - { - dd->vertex(cx+dir[j*2+0]*rx, miny, cz+dir[j*2+1]*rz, color); - dd->vertex(cx+dir[i*2+0]*rx, miny, cz+dir[i*2+1]*rz, color); - dd->vertex(cx+dir[j*2+0]*rx, maxy, cz+dir[j*2+1]*rz, color); - dd->vertex(cx+dir[i*2+0]*rx, maxy, cz+dir[i*2+1]*rz, color); - } - for (int i = 0; i < NUM_SEG; i += NUM_SEG/4) - { - dd->vertex(cx+dir[i*2+0]*rx, miny, cz+dir[i*2+1]*rz, color); - dd->vertex(cx+dir[i*2+0]*rx, maxy, cz+dir[i*2+1]*rz, color); - } - - dd->end(); -} - -void duDebugDrawBoxWire(duDebugDraw* dd, float minx, float miny, float minz, float maxx, float maxy, float maxz, const float* col) -{ - dd->begin(DU_DRAW_LINES, 1.0f); - drawBoxWire(dd, minx, miny, minz, maxx, maxy, maxz, col); - dd->end(); -} - -void duDebugDrawBox(duDebugDraw* dd, float minx, float miny, float minz, float maxx, float maxy, float maxz, - const float* col1, const float* col2) -{ - dd->begin(DU_DRAW_QUADS,24); - drawBox(dd, minx, miny, minz, maxx, maxy, maxz, col1, col2); - dd->end(); -}*/ - static int getSpanCount(const rcHeightfield& hf) { const int w = hf.width; @@ -433,6 +291,7 @@ static const rcContour* findContourFromSet(const rcContourSet& cset, unsigned sh return 0; } +/* static const int NUM_ADU_PTS = 8; void drawArc(duDebugDraw* dd, const float* p0, const float* p1, unsigned int color) @@ -477,6 +336,7 @@ void duDebugDrawCross(struct duDebugDraw* dd, const float* p, const float s, con dd->vertex(p[0],p[1]+dy,p[2]+s, color); dd->end(); } +*/ void duDebugDrawRegionConnections(duDebugDraw* dd, const rcContourSet& cset, const float alpha) { @@ -503,7 +363,7 @@ void duDebugDrawRegionConnections(duDebugDraw* dd, const rcContourSet& cset, con if (cont2) { getContourCenter(cont2, orig, cs, ch, pos2); - drawArc(dd, pos, pos2, color); + duAppendArc(dd, pos[0],pos[1],pos[2], pos2[0],pos2[1],pos2[2], 0.25f, 0.6f, 0.6f, color); } } } diff --git a/Detour/Include/DetourCommon.h b/Detour/Include/DetourCommon.h index 43c1f92..93b9f8a 100644 --- a/Detour/Include/DetourCommon.h +++ b/Detour/Include/DetourCommon.h @@ -171,6 +171,15 @@ inline bool checkOverlapBox(const unsigned short amin[3], const unsigned short a return overlap; } +inline bool overlapBounds(const float* amin, const float* amax, const float* bmin, const float* bmax) +{ + bool overlap = true; + overlap = (amin[0] > bmax[0] || amax[0] < bmin[0]) ? false : overlap; + overlap = (amin[1] > bmax[1] || amax[1] < bmin[1]) ? false : overlap; + overlap = (amin[2] > bmax[2] || amax[2] < bmin[2]) ? false : overlap; + return overlap; +} + void closestPtPointTriangle(float* closest, const float* p, const float* a, const float* b, const float* c); diff --git a/Detour/Include/DetourNavMesh.h b/Detour/Include/DetourNavMesh.h index 0791e19..984ff24 100644 --- a/Detour/Include/DetourNavMesh.h +++ b/Detour/Include/DetourNavMesh.h @@ -28,34 +28,36 @@ static const int DT_VERTS_PER_POLYGON = 6; static const int DT_NAVMESH_MAGIC = 'DNAV'; static const int DT_NAVMESH_VERSION = 2; -static const unsigned char DT_POLY_OFFMESH_LINK = 1; +static const unsigned char DT_POLY_OFFMESH_CONNECTION = 1; + +static const unsigned short DT_EXT_LINK = 0x8000; // Structure describing the navigation polygon data. struct dtPoly { - unsigned short v[DT_VERTS_PER_POLYGON]; // Indices to vertices of the poly. - unsigned short n[DT_VERTS_PER_POLYGON]; // Refs to neighbours of the poly. - unsigned short links; // Base index to header 'links' array. - unsigned char nlinks; // Number of links for - unsigned char nv; // Number of vertices. - unsigned char flags; // Flags. + unsigned short verts[DT_VERTS_PER_POLYGON]; // Indices to vertices of the poly. + unsigned short neis[DT_VERTS_PER_POLYGON]; // Refs to neighbours of the poly. + unsigned short linkBase; // Base index to header 'links' array. + unsigned char linkCount; // Number of links for + unsigned char vertCount; // Number of vertices. + unsigned char flags; // Flags. }; // Stucture describing polygon detail triangles. struct dtPolyDetail { - unsigned short vbase; // Offset to detail vertex array. - unsigned short nverts; // Number of vertices in the detail mesh. - unsigned short tbase; // Offset to detail triangle array. - unsigned short ntris; // Number of triangles. + unsigned short vertBase; // Offset to detail vertex array. + unsigned short vertCount; // Number of vertices in the detail mesh. + unsigned short triBase; // Offset to detail triangle array. + unsigned short triCount; // Number of triangles. }; // Stucture describing a link to another polygon. struct dtLink { dtPolyRef ref; // Neighbour reference. - unsigned short p; // Index to polygon which owns this link. - unsigned char e; // Index to polygon edge which owns this link. + unsigned short poly; // Index to polygon which owns this link. + unsigned char edge; // Index to polygon edge which owns this link. unsigned char side; // If boundary link, defines on which side the link is. unsigned char bmin, bmax; // If boundary link, defines the sub edge area. }; @@ -66,37 +68,43 @@ struct dtBVNode int i; // Index to item or if negative, escape index. }; -struct dtOffMeshLink +struct dtOffMeshConnection { - dtPolyRef ref[2]; // Endpoint polys. - unsigned short p; // Poly Id - unsigned char side; // TODO + float pos[6]; // Both end point locations. + float rad; // Link connection radius. + dtPolyRef ref[2]; // End point polys. + unsigned short poly; // Poly Id + unsigned char flags; // Link flags }; struct dtMeshHeader { int magic; // Magic number, used to identify the data. int version; // Data version number. - int npolys; // Number of polygons in the tile. - int nverts; // Number of vertices in the tile. - int nlinks; // Number of links in the tile (will be updated when tile is added). - int maxlinks; // Number of allocated links. - int ndmeshes; // Number of detail meshes. - int ndverts; // Number of detail vertices. - int ndtris; // Number of detail triangles. - int nbvtree; // Number of BVtree nodes. - int nomlinks; // Number of Off-Mesh links. - int nombase; // Index to first polygon which is Off-Mesh link. + + int polyCount; // Number of polygons in the tile. + int vertCount; // Number of vertices in the tile. + int linkCount; // Number of links in the tile (will be updated when tile is added). + int maxLinkCount; // Number of allocated links. + int detailMeshCount; // Number of detail meshes. + int detailVertCount; // Number of detail vertices. + int detailTriCount; // Number of detail triangles. + int bvNodeCount; // Number of BVtree nodes. + int offMeshConCount; // Number of Off-Mesh links. + int offMeshBase; // Index to first polygon which is Off-Mesh link. + float walkableHeight; + float walkableRadius; + float walkableClimb; float bmin[3], bmax[3]; // Bounding box of the tile. - float bvquant; // BVtree quantization factor (world to bvnode coords) + float bvQuantFactor; // BVtree quantization factor (world to bvnode coords) dtPoly* polys; // Pointer to the polygons (will be updated when tile is added). float* verts; // Pointer to the vertices (will be updated when tile added). dtLink* links; // Pointer to the links (will be updated when tile added). - dtPolyDetail* dmeshes; // Pointer to detail meshes (will be updated when tile added). - float* dverts; // Pointer to detail vertices (will be updated when tile added). - unsigned char* dtris; // Pointer to detail triangles (will be updated when tile added). - dtBVNode* bvtree; // Pointer to BVtree nodes (will be updated when tile added). - dtOffMeshLink* omlinks; // Pointer to Off-Mesh links. (will be updated when tile added). + dtPolyDetail* detailMeshes; // Pointer to detail meshes (will be updated when tile added). + float* detailVerts; // Pointer to detail vertices (will be updated when tile added). + unsigned char* detailTris; // Pointer to detail triangles (will be updated when tile added). + dtBVNode* bvTree; // Pointer to BVtree nodes (will be updated when tile added). + dtOffMeshConnection* offMeshCons; // Pointer to Off-Mesh links. (will be updated when tile added). }; struct dtMeshTile @@ -115,7 +123,7 @@ enum dtStraightPathFlags { DT_STRAIGHTPATH_START = 0x01, // The vertex is the start position. DT_STRAIGHTPATH_END = 0x02, // The vertex is the end position. - DT_STRAIGHTPATH_OFFMESH_LINK = 0x04, // The vertex is start of an off-mesh link. + DT_STRAIGHTPATH_OFFMESH_CONNECTION = 0x04, // The vertex is start of an off-mesh link. }; class dtNavMesh @@ -129,13 +137,12 @@ public: // orig - (in) origin of the nav mesh tile space. // tileWidth - (in) width of each tile. // tileHeight - (in) height of each tile. - // portalheight - (in) height of the portal region between tiles. // maxTiles - (in) maximum number of tiles the navmesh can contain*. // maxPolys - (in) maximum number of polygons each tile can contain*. // maxNodes - (in) maximum number of A* nodes to use*. // *) Will be rounded to next power of two. // Returns: True if succeed, else false. - bool init(const float* orig, float tileWidth, float tileHeight, float portalHeight, + bool init(const float* orig, float tileWidth, float tileHeight, int maxTiles, int maxPolys, int maxNodes); // Initializes the nav mesh for single tile use. @@ -197,8 +204,9 @@ public: // Params: // center - (in) The center of the search box. // extents - (in) The extents of the search box. + // nearestPt - (out, opt) The nearest point on found polygon, null if not needed. // Returns: Reference identifier for the polygon, or 0 if no polygons found. - dtPolyRef findNearestPoly(const float* center, const float* extents); + dtPolyRef findNearestPoly(const float* center, const float* extents, float* nearestPt); // Returns polygons which touch the query box. // Params: @@ -312,7 +320,7 @@ public: // startPos - (out) start point of the link. // endPos - (out) end point of the link. // Returns: true if link is found. - bool getOffMeshLinkPolyEndPoints(dtPolyRef prevRef, dtPolyRef polyRef, float* startPos, float* endPos) const; + bool getOffMeshConnectionPolyEndPoints(dtPolyRef prevRef, dtPolyRef polyRef, float* startPos, float* endPos) const; // Returns height of the polygon at specified location. // Params: @@ -379,7 +387,6 @@ private: float m_orig[3]; // Origin of the tile (0,0) float m_tileWidth, m_tileHeight; // Dimensions of each tile. - float m_portalHeight; // Extra height value used to connect portals. int m_maxTiles; // Max number of tiles. int m_tileLutSize; // Tile hash lookup size (must be pot). int m_tileLutMask; // Tile hash lookup mask. diff --git a/Detour/Include/DetourNavMeshBuilder.h b/Detour/Include/DetourNavMeshBuilder.h index d6e2517..01da77d 100644 --- a/Detour/Include/DetourNavMeshBuilder.h +++ b/Detour/Include/DetourNavMeshBuilder.h @@ -19,12 +19,36 @@ #ifndef DETOURNAVMESHBUILDER_H #define DETOURNAVMESHBUILDER_H -bool dtCreateNavMeshData(const unsigned short* verts, const int nverts, - const unsigned short* polys, const int npolys, const int nvp, - const unsigned short* dmeshes, const float* dverts, const int ndverts, - const unsigned char* dtris, const int ndtris, - const float* omverts, const int nomlinks, - const float* bmin, const float* bmax, float cs, float ch, int tileSize, int walkableClimb, - unsigned char** outData, int* outDataSize); +struct dtNavMeshCreateParams +{ + // Navmesh vertices. + const unsigned short* verts; + int vertCount; + // Navmesh polygons + const unsigned short* polys; + int polyCount; + int nvp; + // Navmesh Detail + const unsigned short* detailMeshes; + const float* detailVerts; + int detailVertsCount; + const unsigned char* detailTris; + int detailTriCount; + // Off-Mesh Connections. + const float* offMeshConVerts; + const float* offMeshConRad; + const unsigned char* offMeshConDir; + int offMeshConCount; + // Settings + float walkableHeight; + float walkableRadius; + float walkableClimb; + float bmin[3], bmax[3]; + float cs; + float ch; + int tileSize; +}; + +bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, int* outDataSize); #endif // DETOURNAVMESHBUILDER_H diff --git a/Detour/Source/DetourNavMesh.cpp b/Detour/Source/DetourNavMesh.cpp index 2868dbc..1dcacc3 100644 --- a/Detour/Source/DetourNavMesh.cpp +++ b/Detour/Source/DetourNavMesh.cpp @@ -25,8 +25,6 @@ #include "DetourCommon.h" -static const unsigned short EXT_LINK = 0x8000; - inline int opposite(int side) { return (side+2) & 0x3; } inline bool overlapBoxes(const float* amin, const float* amax, @@ -82,7 +80,6 @@ inline int computeTileHash(int x, int y, const int mask) dtNavMesh::dtNavMesh() : m_tileWidth(0), m_tileHeight(0), - m_portalHeight(0), m_maxTiles(0), m_tileLutSize(0), m_tileLutMask(0), @@ -120,13 +117,12 @@ dtNavMesh::~dtNavMesh() delete [] m_tiles; } -bool dtNavMesh::init(const float* orig, float tileWidth, float tileHeight, float portalHeight, +bool dtNavMesh::init(const float* orig, float tileWidth, float tileHeight, int maxTiles, int maxPolys, int maxNodes) { vcopy(m_orig, orig); m_tileWidth = tileWidth; m_tileHeight = tileHeight; - m_portalHeight = portalHeight; // Init tiles m_maxTiles = maxTiles; @@ -184,7 +180,7 @@ bool dtNavMesh::init(unsigned char* data, int dataSize, bool ownsData, int maxNo const float w = header->bmax[0] - header->bmin[0]; const float h = header->bmax[2] - header->bmin[2]; - if (!init(header->bmin, w, h, 0, 1, header->npolys, maxNodes)) + if (!init(header->bmin, w, h, 1, header->polyCount, maxNodes)) return false; return addTileAt(0,0, data, dataSize, ownsData); @@ -199,26 +195,27 @@ int dtNavMesh::findConnectingPolys(const float* va, const float* vb, dtMeshHeader* h = tile->header; float amin[2], amax[2]; - calcRect(va,vb, amin,amax, side, 0.01f, m_portalHeight); + calcRect(va,vb, amin,amax, side, 0.01f, h->walkableClimb); // Remove links pointing to 'side' and compact the links array. float bmin[2], bmax[2]; - unsigned short m = EXT_LINK | (unsigned short)side; + unsigned short m = DT_EXT_LINK | (unsigned short)side; int n = 0; dtPolyRef base = getTileId(tile); - for (int i = 0; i < h->npolys; ++i) + for (int i = 0; i < h->polyCount; ++i) { dtPoly* poly = &h->polys[i]; - for (int j = 0; j < poly->nv; ++j) + const int nv = poly->vertCount; + for (int j = 0; j < nv; ++j) { // Skip edges which do not point to the right side. - if (poly->n[j] != m) continue; + if (poly->neis[j] != m) continue; // Check if the segments touch. - const float* vc = &h->verts[poly->v[j]*3]; - const float* vd = &h->verts[poly->v[(j+1) % (int)poly->nv]*3]; - calcRect(vc,vd, bmin,bmax, side, 0.01f, m_portalHeight); + const float* vc = &h->verts[poly->verts[j]*3]; + const float* vd = &h->verts[poly->verts[(j+1) % nv]*3]; + calcRect(vc,vd, bmin,bmax, side, 0.01f, h->walkableClimb); if (!overlapRects(amin,amax, bmin,bmax)) continue; // Add return value. if (n < maxcon) @@ -242,17 +239,17 @@ void dtNavMesh::removeExtLinks(dtMeshTile* tile, int side) // Remove links pointing to 'side' and compact the links array. dtLink* pool = m_tmpLinks; int nlinks = 0; - for (int i = 0; i < h->npolys; ++i) + for (int i = 0; i < h->polyCount; ++i) { dtPoly* poly = &h->polys[i]; int plinks = nlinks; int nplinks = 0; - for (int j = 0; j < poly->nlinks; ++j) + for (int j = 0; j < poly->linkCount; ++j) { - dtLink* link = &h->links[poly->links+j]; + dtLink* link = &h->links[poly->linkBase+j]; if ((int)link->side != side) { - if (nlinks < h->maxlinks) + if (nlinks < h->maxLinkCount) { dtLink* dst = &pool[nlinks++]; memcpy(dst, link, sizeof(dtLink)); @@ -260,11 +257,11 @@ void dtNavMesh::removeExtLinks(dtMeshTile* tile, int side) } } } - poly->links = plinks; - poly->nlinks = nplinks; + poly->linkBase = plinks; + poly->linkCount = nplinks; } - h->nlinks = nlinks; - if (h->nlinks) + h->linkCount = nlinks; + if (h->linkCount) memcpy(h->links, m_tmpLinks, sizeof(dtLink)*nlinks); } @@ -276,18 +273,18 @@ void dtNavMesh::buildExtLinks(dtMeshTile* tile, dtMeshTile* target, int side) // Remove links pointing to 'side' and compact the links array. dtLink* pool = m_tmpLinks; int nlinks = 0; - for (int i = 0; i < h->npolys; ++i) + for (int i = 0; i < h->polyCount; ++i) { dtPoly* poly = &h->polys[i]; int plinks = nlinks; int nplinks = 0; // Copy internal and other external links. - for (int j = 0; j < poly->nlinks; ++j) + for (int j = 0; j < poly->linkCount; ++j) { - dtLink* link = &h->links[poly->links+j]; + dtLink* link = &h->links[poly->linkBase+j]; if ((int)link->side != side) { - if (nlinks < h->maxlinks) + if (nlinks < h->maxLinkCount) { dtLink* dst = &pool[nlinks++]; memcpy(dst, link, sizeof(dtLink)); @@ -296,26 +293,27 @@ void dtNavMesh::buildExtLinks(dtMeshTile* tile, dtMeshTile* target, int side) } } // Create new links. - unsigned short m = EXT_LINK | (unsigned short)side; - for (int j = 0; j < poly->nv; ++j) + unsigned short m = DT_EXT_LINK | (unsigned short)side; + const int nv = poly->vertCount; + for (int j = 0; j < nv; ++j) { // Skip edges which do not point to the right side. - if (poly->n[j] != m) continue; + if (poly->neis[j] != m) continue; // Create new links - const float* va = &h->verts[poly->v[j]*3]; - const float* vb = &h->verts[poly->v[(j+1)%(int)poly->nv]*3]; + const float* va = &h->verts[poly->verts[j]*3]; + const float* vb = &h->verts[poly->verts[(j+1) % nv]*3]; dtPolyRef nei[4]; float neia[4*2]; int nnei = findConnectingPolys(va,vb, target, opposite(side), nei,neia,4); for (int k = 0; k < nnei; ++k) { - if (nlinks < h->maxlinks) + if (nlinks < h->maxLinkCount) { dtLink* link = &pool[nlinks++]; link->ref = nei[k]; - link->p = (unsigned short)i; - link->e = (unsigned char)j; + link->poly = (unsigned short)i; + link->edge = (unsigned char)j; link->side = (unsigned char)side; // Compress portal limits to a byte value. @@ -338,11 +336,11 @@ void dtNavMesh::buildExtLinks(dtMeshTile* tile, dtMeshTile* target, int side) } } - poly->links = plinks; - poly->nlinks = nplinks; + poly->linkBase = plinks; + poly->linkCount = nplinks; } - h->nlinks = nlinks; - if (h->nlinks) + h->linkCount = nlinks; + if (h->linkCount) memcpy(h->links, m_tmpLinks, sizeof(dtLink)*nlinks); } @@ -358,95 +356,103 @@ void dtNavMesh::buildIntLinks(dtMeshTile* tile) unsigned int salt, it, ip, tileIdx; dtDecodePolyId(base, salt, tileIdx, ip); - // Find Off-mesh link end points. - for (int i = 0; i < h->nomlinks; ++i) + // Find Off-mesh connection end points. + for (int i = 0; i < h->offMeshConCount; ++i) { - dtOffMeshLink* link = &h->omlinks[i]; - dtPoly* poly = &h->polys[link->p]; + dtOffMeshConnection* con = &h->offMeshCons[i]; + dtPoly* poly = &h->polys[con->poly]; - link->ref[0] = 0; - link->ref[1] = 0; + con->ref[0] = 0; + con->ref[1] = 0; - const float ext[3] = { 0.1f, 0.3f, 0.1f }; //m_portalHeight }; // TODO: save agent size with mesh. + const float ext[3] = { con->rad, h->walkableClimb, con->rad }; for (int j = 0; j < 2; ++j) { - const float* v = &h->verts[poly->v[j]*3]; - dtPolyRef ref = findNearestPoly(v, ext); - // Make sure the location is on current mesh. + // Find polygon to connect to. + const float* p = &con->pos[j*3]; + float nearestPt[3]; + dtPolyRef ref = findNearestPoly(p, ext, nearestPt); + // findNearestPoly may return too optimistic results, further check to make sure. + if (sqr(nearestPt[0]-p[0])+sqr(nearestPt[2]-p[2]) > sqr(con->rad)) + continue; + // TODO: Handle cross tile links. dtDecodePolyId(ref, salt, it, ip); if (it != tileIdx) continue; - - link->ref[j] = ref; + + // Make sure the location is on current mesh. + float* v = &h->verts[poly->verts[j]*3]; + vcopy(v, nearestPt); + con->ref[j] = ref; } } - for (int i = 0; i < h->npolys; ++i) + for (int i = 0; i < h->polyCount; ++i) { dtPoly* poly = &h->polys[i]; - poly->links = nlinks; - poly->nlinks = 0; + poly->linkBase = nlinks; + poly->linkCount = 0; - if (poly->flags & DT_POLY_OFFMESH_LINK) + if (poly->flags & DT_POLY_OFFMESH_CONNECTION) { // Find Off-Mesh link and fill in information. - dtOffMeshLink& omlink = h->omlinks[i - h->nombase]; + dtOffMeshConnection* con = &h->offMeshCons[i - h->offMeshBase]; // Connect both ends. for (int j = 0; j < 2; ++j) { - if (nlinks < h->maxlinks) + if (nlinks < h->maxLinkCount) { dtLink* link = &pool[nlinks++]; - link->ref = omlink.ref[j]; - link->p = (unsigned short)i; - link->e = (unsigned char)j; + link->ref = con->ref[j]; + link->poly = (unsigned short)i; + link->edge = (unsigned char)j; link->side = 0xff; link->bmin = link->bmax = 0; - poly->nlinks++; + poly->linkCount++; } } } else { // Polygon edges. - for (int j = 0; j < poly->nv; ++j) + for (int j = 0; j < poly->vertCount; ++j) { // Skip hard and non-internal edges. - if (poly->n[j] == 0 || (poly->n[j] & EXT_LINK)) continue; + if (poly->neis[j] == 0 || (poly->neis[j] & DT_EXT_LINK)) continue; - if (nlinks < h->maxlinks) + if (nlinks < h->maxLinkCount) { dtLink* link = &pool[nlinks++]; - link->ref = base | (unsigned int)(poly->n[j]-1); - link->p = (unsigned short)i; - link->e = (unsigned char)j; + link->ref = base | (unsigned int)(poly->neis[j]-1); + link->poly = (unsigned short)i; + link->edge = (unsigned char)j; link->side = 0xff; link->bmin = link->bmax = 0; - poly->nlinks++; + poly->linkCount++; } } // Check this polygon is Off-Mesh link target and connect. // TODO: Speed this up. dtPolyRef curRef = base | (unsigned int)i; - for (int j = 0; j < h->nomlinks; ++j) + for (int j = 0; j < h->offMeshConCount; ++j) { - const dtOffMeshLink* omlink = &h->omlinks[j]; + const dtOffMeshConnection* con = &h->offMeshCons[j]; // Test both end points. for (int k = 0; k < 2; ++k) { - if (omlink->ref[k] == curRef) + if (con->ref[k] == curRef) { - if (nlinks < h->maxlinks) + if (nlinks < h->maxLinkCount) { dtLink* link = &pool[nlinks++]; - link->ref = base | (dtPolyRef)omlink->p; - link->p = (unsigned short)i; - link->e = 0; + link->ref = base | (dtPolyRef)con->poly; + link->poly = (unsigned short)i; + link->edge = 0; link->side = 0xff; link->bmin = link->bmax = 0; - poly->nlinks++; + poly->linkCount++; } } } @@ -455,7 +461,7 @@ void dtNavMesh::buildIntLinks(dtMeshTile* tile) } } - h->nlinks = nlinks; + h->linkCount = nlinks; } bool dtNavMesh::addTileAt(int x, int y, unsigned char* data, int dataSize, bool ownsData) @@ -473,9 +479,9 @@ bool dtNavMesh::addTileAt(int x, int y, unsigned char* data, int dataSize, bool return false; // Make sure the tmp link array is large enough. - if (header->maxlinks > m_ntmpLinks) + if (header->maxLinkCount > m_ntmpLinks) { - m_ntmpLinks = header->maxlinks; + m_ntmpLinks = header->maxLinkCount; delete [] m_tmpLinks; m_tmpLinks = 0; m_tmpLinks = new dtLink[m_ntmpLinks]; @@ -495,24 +501,24 @@ bool dtNavMesh::addTileAt(int x, int y, unsigned char* data, int dataSize, bool // Patch header pointers. const int headerSize = align4(sizeof(dtMeshHeader)); - const int vertsSize = align4(sizeof(float)*3*header->nverts); - const int polysSize = align4(sizeof(dtPoly)*header->npolys); - const int linksSize = align4(sizeof(dtLink)*(header->maxlinks)); - const int detailMeshesSize = align4(sizeof(dtPolyDetail)*header->ndmeshes); - const int detailVertsSize = align4(sizeof(float)*3*header->ndverts); - const int detailTrisSize = align4(sizeof(unsigned char)*4*header->ndtris); - const int bvtreeSize = header->nbvtree ? align4(sizeof(dtBVNode)*header->npolys*2) : 0; - const int offMeshLinksSize = align4(sizeof(dtOffMeshLink)*header->nomlinks); + const int vertsSize = align4(sizeof(float)*3*header->vertCount); + const int polysSize = align4(sizeof(dtPoly)*header->polyCount); + const int linksSize = align4(sizeof(dtLink)*(header->maxLinkCount)); + const int detailMeshesSize = align4(sizeof(dtPolyDetail)*header->detailMeshCount); + const int detailVertsSize = align4(sizeof(float)*3*header->detailVertCount); + const int detailTrisSize = align4(sizeof(unsigned char)*4*header->detailTriCount); + const int bvtreeSize = header->bvNodeCount ? align4(sizeof(dtBVNode)*header->polyCount*2) : 0; + const int offMeshLinksSize = align4(sizeof(dtOffMeshConnection)*header->offMeshConCount); unsigned char* d = data + headerSize; header->verts = (float*)d; d += vertsSize; header->polys = (dtPoly*)d; d += polysSize; header->links = (dtLink*)d; d += linksSize; - header->dmeshes = (dtPolyDetail*)d; d += detailMeshesSize; - header->dverts = (float*)d; d += detailVertsSize; - header->dtris = (unsigned char*)d; d += detailTrisSize; - header->omlinks = (dtOffMeshLink*)d; d += offMeshLinksSize; - header->bvtree = header->nbvtree ? (dtBVNode*)d : 0; d += bvtreeSize; + header->detailMeshes = (dtPolyDetail*)d; d += detailMeshesSize; + header->detailVerts = (float*)d; d += detailVertsSize; + header->detailTris = (unsigned char*)d; d += detailTrisSize; + header->offMeshCons = (dtOffMeshConnection*)d; d += offMeshLinksSize; + header->bvTree = header->bvNodeCount ? (dtBVNode*)d : 0; d += bvtreeSize; // Init tile. tile->header = header; @@ -573,7 +579,7 @@ const dtMeshTile* dtNavMesh::getTileByRef(dtPolyRef ref, int* polyIndex) const dtDecodePolyId(ref, salt, it, ip); if (it >= (unsigned int)m_maxTiles) return 0; if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return 0; - if (ip >= (unsigned int)m_tiles[it].header->npolys) return 0; + if (ip >= (unsigned int)m_tiles[it].header->polyCount) return 0; if (polyIndex) *polyIndex = (int)ip; return &m_tiles[it]; } @@ -663,22 +669,22 @@ bool dtNavMesh::closestPointOnPoly(dtPolyRef ref, const float* pos, float* close if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return false; const dtMeshHeader* header = m_tiles[it].header; - if (ip >= (unsigned int)header->npolys) return false; + if (ip >= (unsigned int)header->polyCount) return false; const dtPoly* poly = &header->polys[ip]; float closestDistSqr = FLT_MAX; - const dtPolyDetail* pd = &header->dmeshes[ip]; + const dtPolyDetail* pd = &header->detailMeshes[ip]; - for (int j = 0; j < pd->ntris; ++j) + for (int j = 0; j < pd->triCount; ++j) { - const unsigned char* t = &header->dtris[(pd->tbase+j)*4]; + const unsigned char* t = &header->detailTris[(pd->triBase+j)*4]; const float* v[3]; for (int k = 0; k < 3; ++k) { - if (t[k] < poly->nv) - v[k] = &header->verts[poly->v[t[k]]*3]; + if (t[k] < poly->vertCount) + v[k] = &header->verts[poly->verts[t[k]]*3]; else - v[k] = &header->dverts[(pd->vbase+(t[k]-poly->nv))*3]; + v[k] = &header->detailVerts[(pd->vertBase+(t[k]-poly->vertCount))*3]; } float pt[3]; closestPtPointTriangle(pt, pos, v[0], v[1], v[2]); @@ -701,7 +707,7 @@ bool dtNavMesh::closestPointOnPolyBoundary(dtPolyRef ref, const float* pos, floa if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return false; const dtMeshHeader* header = m_tiles[it].header; - if (ip >= (unsigned int)header->npolys) return false; + if (ip >= (unsigned int)header->polyCount) return false; const dtPoly* poly = &header->polys[ip]; // Collect vertices. @@ -709,9 +715,9 @@ bool dtNavMesh::closestPointOnPolyBoundary(dtPolyRef ref, const float* pos, floa float edged[DT_VERTS_PER_POLYGON]; float edget[DT_VERTS_PER_POLYGON]; int nv = 0; - for (int i = 0; i < (int)poly->nv; ++i) + for (int i = 0; i < (int)poly->vertCount; ++i) { - vcopy(&verts[nv*3], &header->verts[poly->v[i]*3]); + vcopy(&verts[nv*3], &header->verts[poly->verts[i]*3]); nv++; } @@ -743,7 +749,7 @@ bool dtNavMesh::closestPointOnPolyBoundary(dtPolyRef ref, const float* pos, floa } // Returns start and end location of an off-mesh link polygon. -bool dtNavMesh::getOffMeshLinkPolyEndPoints(dtPolyRef prevRef, dtPolyRef polyRef, float* startPos, float* endPos) const +bool dtNavMesh::getOffMeshConnectionPolyEndPoints(dtPolyRef prevRef, dtPolyRef polyRef, float* startPos, float* endPos) const { unsigned int salt, it, ip; @@ -752,7 +758,7 @@ bool dtNavMesh::getOffMeshLinkPolyEndPoints(dtPolyRef prevRef, dtPolyRef polyRef if (it >= (unsigned int)m_maxTiles) return false; if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return false; const dtMeshHeader* prevHeader = m_tiles[it].header; - if (ip >= (unsigned int)prevHeader->npolys) return false; + if (ip >= (unsigned int)prevHeader->polyCount) return false; const dtPoly* prevPoly = &prevHeader->polys[ip]; // Get current polygon @@ -760,23 +766,23 @@ bool dtNavMesh::getOffMeshLinkPolyEndPoints(dtPolyRef prevRef, dtPolyRef polyRef if (it >= (unsigned int)m_maxTiles) return false; if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return false; const dtMeshHeader* header = m_tiles[it].header; - if (ip >= (unsigned int)header->npolys) return false; + if (ip >= (unsigned int)header->polyCount) return false; const dtPoly* poly = &header->polys[ip]; // Make sure that the current poly is indeed off-mesh link. - if ((poly->flags & DT_POLY_OFFMESH_LINK) == 0) + if ((poly->flags & DT_POLY_OFFMESH_CONNECTION) == 0) return false; // Figure out which way to hand out the vertices. int idx0 = 0, idx1 = 1; - for (int i = 0; i < prevPoly->nlinks; ++i) + for (int i = 0; i < prevPoly->linkCount; ++i) { - const dtLink* link = &prevHeader->links[prevPoly->links+i]; + const dtLink* link = &prevHeader->links[prevPoly->linkBase+i]; if (link->ref != polyRef) continue; // If first link does not point to the prev, then we need to reverse the order. - if (header->links[poly->links+0].ref != prevRef) + if (header->links[poly->linkBase+0].ref != prevRef) { idx0 = 1; idx1 = 0; @@ -784,8 +790,8 @@ bool dtNavMesh::getOffMeshLinkPolyEndPoints(dtPolyRef prevRef, dtPolyRef polyRef } } - vcopy(startPos, &header->verts[poly->v[idx0]*3]); - vcopy(endPos, &header->verts[poly->v[idx1]*3]); + vcopy(startPos, &header->verts[poly->verts[idx0]*3]); + vcopy(endPos, &header->verts[poly->verts[idx1]*3]); return true; } @@ -799,13 +805,13 @@ bool dtNavMesh::getPolyHeight(dtPolyRef ref, const float* pos, float* height) co if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return false; const dtMeshHeader* header = m_tiles[it].header; - if (ip >= (unsigned int)header->npolys) return false; + if (ip >= (unsigned int)header->polyCount) return false; const dtPoly* poly = &header->polys[ip]; - if (poly->flags & DT_POLY_OFFMESH_LINK) + if (poly->flags & DT_POLY_OFFMESH_CONNECTION) { - const float* v0 = &header->verts[poly->v[0]*3]; - const float* v1 = &header->verts[poly->v[1]*3]; + const float* v0 = &header->verts[poly->verts[0]*3]; + const float* v1 = &header->verts[poly->verts[1]*3]; const float d0 = vdist(pos, v0); const float d1 = vdist(pos, v1); const float u = d0 / (d0+d1); @@ -815,17 +821,17 @@ bool dtNavMesh::getPolyHeight(dtPolyRef ref, const float* pos, float* height) co } else { - const dtPolyDetail* pd = &header->dmeshes[ip]; - for (int j = 0; j < pd->ntris; ++j) + const dtPolyDetail* pd = &header->detailMeshes[ip]; + for (int j = 0; j < pd->triCount; ++j) { - const unsigned char* t = &header->dtris[(pd->tbase+j)*4]; + const unsigned char* t = &header->detailTris[(pd->triBase+j)*4]; const float* v[3]; for (int k = 0; k < 3; ++k) { - if (t[k] < poly->nv) - v[k] = &header->verts[poly->v[t[k]]*3]; + if (t[k] < poly->vertCount) + v[k] = &header->verts[poly->verts[t[k]]*3]; else - v[k] = &header->dverts[(pd->vbase+(t[k]-poly->nv))*3]; + v[k] = &header->detailVerts[(pd->vertBase+(t[k]-poly->vertCount))*3]; } float h; if (closestHeightPointTriangle(pos, v[0], v[1], v[2], h)) @@ -841,24 +847,26 @@ bool dtNavMesh::getPolyHeight(dtPolyRef ref, const float* pos, float* height) co } -dtPolyRef dtNavMesh::findNearestPoly(const float* center, const float* extents) +dtPolyRef dtNavMesh::findNearestPoly(const float* center, const float* extents, float* nearestPt) { // Get nearby polygons from proximity grid. dtPolyRef polys[128]; - int npolys = queryPolygons(center, extents, polys, 128); + int polyCount = queryPolygons(center, extents, polys, 128); // Find nearest polygon amongst the nearby polygons. dtPolyRef nearest = 0; float nearestDistanceSqr = FLT_MAX; - for (int i = 0; i < npolys; ++i) + for (int i = 0; i < polyCount; ++i) { dtPolyRef ref = polys[i]; - float closest[3]; - if (!closestPointOnPoly(ref, center, closest)) + float closestPtPoly[3]; + if (!closestPointOnPoly(ref, center, closestPtPoly)) continue; - float d = vdistSqr(center, closest); + float d = vdistSqr(center, closestPtPoly); if (d < nearestDistanceSqr) { + if (nearestPt) + vcopy(nearestPt, closestPtPoly); nearestDistanceSqr = d; nearest = ref; } @@ -872,10 +880,10 @@ int dtNavMesh::queryTilePolygons(dtMeshTile* tile, dtPolyRef* polys, const int maxPolys) { const dtMeshHeader* header = tile->header; - if (header->bvtree) + if (header->bvTree) { - const dtBVNode* node = &header->bvtree[0]; - const dtBVNode* end = &header->bvtree[header->nbvtree]; + const dtBVNode* node = &header->bvTree[0]; + const dtBVNode* end = &header->bvTree[header->bvNodeCount]; // Calculate quantized box unsigned short bmin[3], bmax[3]; @@ -887,12 +895,12 @@ int dtNavMesh::queryTilePolygons(dtMeshTile* tile, float maxy = clamp(qmax[1], header->bmin[1], header->bmax[1]) - header->bmin[1]; float maxz = clamp(qmax[2], header->bmin[2], header->bmax[2]) - header->bmin[2]; // Quantize - bmin[0] = (unsigned short)(header->bvquant * minx) & 0xfffe; - bmin[1] = (unsigned short)(header->bvquant * miny) & 0xfffe; - bmin[2] = (unsigned short)(header->bvquant * minz) & 0xfffe; - bmax[0] = (unsigned short)(header->bvquant * maxx + 1) | 1; - bmax[1] = (unsigned short)(header->bvquant * maxy + 1) | 1; - bmax[2] = (unsigned short)(header->bvquant * maxz + 1) | 1; + bmin[0] = (unsigned short)(header->bvQuantFactor * minx) & 0xfffe; + bmin[1] = (unsigned short)(header->bvQuantFactor * miny) & 0xfffe; + bmin[2] = (unsigned short)(header->bvQuantFactor * minz) & 0xfffe; + bmax[0] = (unsigned short)(header->bvQuantFactor * maxx + 1) | 1; + bmax[1] = (unsigned short)(header->bvQuantFactor * maxy + 1) | 1; + bmax[2] = (unsigned short)(header->bvQuantFactor * maxz + 1) | 1; // Traverse tree dtPolyRef base = getTileId(tile); @@ -925,16 +933,16 @@ int dtNavMesh::queryTilePolygons(dtMeshTile* tile, const dtMeshHeader* header = tile->header; int n = 0; dtPolyRef base = getTileId(tile); - for (int i = 0; i < header->npolys; ++i) + for (int i = 0; i < header->polyCount; ++i) { // Calc polygon bounds. dtPoly* p = &header->polys[i]; - const float* v = &header->verts[p->v[0]*3]; + const float* v = &header->verts[p->verts[0]*3]; vcopy(bmin, v); vcopy(bmax, v); - for (int j = 1; j < p->nv; ++j) + for (int j = 1; j < p->vertCount; ++j) { - v = &header->verts[p->v[j]*3]; + v = &header->verts[p->verts[j]*3]; vmin(bmin, v); vmax(bmax, v); } @@ -1036,9 +1044,9 @@ int dtNavMesh::findPath(dtPolyRef startRef, dtPolyRef endRef, const dtMeshHeader* header = m_tiles[it].header; const dtPoly* poly = &header->polys[ip]; - for (int i = 0; i < poly->nlinks; ++i) + for (int i = 0; i < poly->linkCount; ++i) { - dtPolyRef neighbour = header->links[poly->links+i].ref; + dtPolyRef neighbour = header->links[poly->linkBase+i].ref; if (neighbour) { // Skip parent node. @@ -1228,7 +1236,7 @@ int dtNavMesh::findStraightPath(const float* startPos, const float* endPos, vcopy(portalApex, portalLeft); apexIndex = leftIndex; - unsigned char flags = (leftPolyFlags & DT_POLY_OFFMESH_LINK) ? DT_STRAIGHTPATH_OFFMESH_LINK : 0; + unsigned char flags = (leftPolyFlags & DT_POLY_OFFMESH_CONNECTION) ? DT_STRAIGHTPATH_OFFMESH_CONNECTION : 0; dtPolyRef ref = leftPolyRef; if (!vequal(&straightPath[(straightPathSize-1)*3], portalApex)) @@ -1289,7 +1297,7 @@ int dtNavMesh::findStraightPath(const float* startPos, const float* endPos, vcopy(portalApex, portalRight); apexIndex = rightIndex; - unsigned char flags = (rightPolyFlags & DT_POLY_OFFMESH_LINK) ? DT_STRAIGHTPATH_OFFMESH_LINK : 0; + unsigned char flags = (rightPolyFlags & DT_POLY_OFFMESH_CONNECTION) ? DT_STRAIGHTPATH_OFFMESH_CONNECTION : 0; dtPolyRef ref = rightPolyRef; if (!vequal(&straightPath[(straightPathSize-1)*3], portalApex)) @@ -1364,12 +1372,12 @@ int dtNavMesh::moveAlongPathCorridor(const float* startPos, const float* endPos, dtDecodePolyId(path[n], salt, it, ip); if (it >= (unsigned int)m_maxTiles) return n; if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return n; - if (ip >= (unsigned int)m_tiles[it].header->npolys) return n; + if (ip >= (unsigned int)m_tiles[it].header->polyCount) return n; const dtMeshHeader* header = m_tiles[it].header; const dtPoly* poly = &header->polys[ip]; // In case of Off-Mesh link, just snap to the end location and advance over it. - if (poly->flags & DT_POLY_OFFMESH_LINK) + if (poly->flags & DT_POLY_OFFMESH_CONNECTION) { if (n+1 < pathSize) { @@ -1384,9 +1392,9 @@ int dtNavMesh::moveAlongPathCorridor(const float* startPos, const float* endPos, // Collect vertices. int nv = 0; - for (int i = 0; i < (int)poly->nv; ++i) + for (int i = 0; i < (int)poly->vertCount; ++i) { - vcopy(&verts[nv*3], &header->verts[poly->v[i]*3]); + vcopy(&verts[nv*3], &header->verts[poly->verts[i]*3]); nv++; } @@ -1441,44 +1449,44 @@ bool dtNavMesh::getPortalPoints(dtPolyRef from, dtPolyRef to, float* left, float dtDecodePolyId(from, salt, it, ip); if (it >= (unsigned int)m_maxTiles) return false; if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return false; - if (ip >= (unsigned int)m_tiles[it].header->npolys) return false; + if (ip >= (unsigned int)m_tiles[it].header->polyCount) return false; const dtMeshHeader* fromHeader = m_tiles[it].header; const dtPoly* fromPoly = &fromHeader->polys[ip]; fromFlags = fromPoly->flags; - for (int i = 0; i < fromPoly->nlinks; ++i) + for (int i = 0; i < fromPoly->linkCount; ++i) { - const dtLink* link = &fromHeader->links[fromPoly->links+i]; + const dtLink* link = &fromHeader->links[fromPoly->linkBase+i]; if (link->ref != to) continue; dtDecodePolyId(to, salt, it, ip); if (it >= (unsigned int)m_maxTiles) return false; if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return false; - if (ip >= (unsigned int)m_tiles[it].header->npolys) return false; + if (ip >= (unsigned int)m_tiles[it].header->polyCount) return false; const dtMeshHeader* toHeader = m_tiles[it].header; const dtPoly* toPoly = &toHeader->polys[ip]; toFlags = toPoly->flags; - if (fromPoly->flags & DT_POLY_OFFMESH_LINK) + if (fromPoly->flags & DT_POLY_OFFMESH_CONNECTION) { - const int v = fromHeader->links[fromPoly->links+0].ref == to ? 0 : 1; - vcopy(left, &fromHeader->verts[fromPoly->v[v]*3]); - vcopy(right, &fromHeader->verts[fromPoly->v[v]*3]); + const int v = fromHeader->links[fromPoly->linkBase+0].ref == to ? 0 : 1; + vcopy(left, &fromHeader->verts[fromPoly->verts[v]*3]); + vcopy(right, &fromHeader->verts[fromPoly->verts[v]*3]); return true; } - if (toPoly->flags & DT_POLY_OFFMESH_LINK) + if (toPoly->flags & DT_POLY_OFFMESH_CONNECTION) { - const int v = toHeader->links[toPoly->links+0].ref == from ? 0 : 1; - vcopy(left, &toHeader->verts[toPoly->v[v]*3]); - vcopy(right, &toHeader->verts[toPoly->v[v]*3]); + const int v = toHeader->links[toPoly->linkBase+0].ref == from ? 0 : 1; + vcopy(left, &toHeader->verts[toPoly->verts[v]*3]); + vcopy(right, &toHeader->verts[toPoly->verts[v]*3]); return true; } // Find portal vertices. - const int v0 = fromPoly->v[link->e]; - const int v1 = fromPoly->v[(link->e+1) % fromPoly->nv]; + const int v0 = fromPoly->verts[link->edge]; + const int v1 = fromPoly->verts[(link->edge+1) % (int)fromPoly->vertCount]; vcopy(left, &fromHeader->verts[v0*3]); vcopy(right, &fromHeader->verts[v1*3]); // If the link is at tile boundary, clamp the vertices to @@ -1554,9 +1562,9 @@ int dtNavMesh::raycast(dtPolyRef centerRef, const float* startPos, const float* // Collect vertices. int nv = 0; - for (int i = 0; i < (int)poly->nv; ++i) + for (int i = 0; i < (int)poly->vertCount; ++i) { - vcopy(&verts[nv*3], &header->verts[poly->v[i]*3]); + vcopy(&verts[nv*3], &header->verts[poly->verts[i]*3]); nv++; } @@ -1576,10 +1584,10 @@ int dtNavMesh::raycast(dtPolyRef centerRef, const float* startPos, const float* // Follow neighbours. dtPolyRef nextRef = 0; - for (int i = 0; i < poly->nlinks; ++i) + for (int i = 0; i < poly->linkCount; ++i) { - const dtLink* link = &header->links[poly->links+i]; - if ((int)link->e == segMax) + const dtLink* link = &header->links[poly->linkBase+i]; + if ((int)link->edge == segMax) { // If the link is internal, just return the ref. if (link->side == 0xff) @@ -1589,8 +1597,8 @@ int dtNavMesh::raycast(dtPolyRef centerRef, const float* startPos, const float* } // If the link is at tile boundary, - const int v0 = poly->v[link->e]; - const int v1 = poly->v[(link->e+1) % poly->nv]; + const int v0 = poly->verts[link->edge]; + const int v1 = poly->verts[(link->edge+1) % poly->vertCount]; const float* left = &header->verts[v0*3]; const float* right = &header->verts[v1*3]; @@ -1700,9 +1708,9 @@ int dtNavMesh::findPolysAround(dtPolyRef centerRef, const float* centerPos, floa const dtMeshHeader* header = m_tiles[it].header; const dtPoly* poly = &header->polys[ip]; - for (int i = 0; i < poly->nlinks; ++i) + for (int i = 0; i < poly->linkCount; ++i) { - const dtLink* link = &header->links[poly->links+i]; + const dtLink* link = &header->links[poly->linkBase+i]; dtPolyRef neighbour = link->ref; if (neighbour) { @@ -1711,8 +1719,8 @@ int dtNavMesh::findPolysAround(dtPolyRef centerRef, const float* centerPos, floa continue; // Calc distance to the edge. - const float* va = &header->verts[poly->v[link->e]*3]; - const float* vb = &header->verts[poly->v[(link->e+1)%poly->nv]*3]; + const float* va = &header->verts[poly->verts[link->edge]*3]; + const float* vb = &header->verts[poly->verts[(link->edge+1) % poly->vertCount]*3]; float tseg; float distSqr = distancePtSegSqr2D(centerPos, va, vb, tseg); @@ -1804,17 +1812,17 @@ float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos, const dtPoly* poly = &header->polys[ip]; // Hit test walls. - for (int i = 0, j = (int)poly->nv-1; i < (int)poly->nv; j = i++) + for (int i = 0, j = (int)poly->vertCount-1; i < (int)poly->vertCount; j = i++) { // Skip non-solid edges. - if (poly->n[j] & EXT_LINK) + if (poly->neis[j] & DT_EXT_LINK) { // Tile border. bool solid = true; - for (int i = 0; i < poly->nlinks; ++i) + for (int i = 0; i < poly->linkCount; ++i) { - const dtLink* link = &header->links[poly->links+i]; - if (link->e == j && link->ref != 0) + const dtLink* link = &header->links[poly->linkBase+i]; + if (link->edge == j && link->ref != 0) { solid = false; break; @@ -1822,15 +1830,15 @@ float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos, } if (!solid) continue; } - else if (poly->n[j]) + else if (poly->neis[j]) { // Internal edge continue; } // Calc distance to the edge. - const float* vj = &header->verts[poly->v[j]*3]; - const float* vi = &header->verts[poly->v[i]*3]; + const float* vj = &header->verts[poly->verts[j]*3]; + const float* vi = &header->verts[poly->verts[i]*3]; float tseg; float distSqr = distancePtSegSqr2D(centerPos, vj, vi, tseg); @@ -1846,9 +1854,9 @@ float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos, hitPos[2] = vj[2] + (vi[2] - vj[2])*tseg; } - for (int i = 0; i < poly->nlinks; ++i) + for (int i = 0; i < poly->linkCount; ++i) { - const dtLink* link = &header->links[poly->links+i]; + const dtLink* link = &header->links[poly->linkBase+i]; dtPolyRef neighbour = link->ref; if (neighbour) { @@ -1857,8 +1865,8 @@ float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos, continue; // Calc distance to the edge. - const float* va = &header->verts[poly->v[link->e]*3]; - const float* vb = &header->verts[poly->v[(link->e+1)%poly->nv]*3]; + const float* va = &header->verts[poly->verts[link->edge]*3]; + const float* vb = &header->verts[poly->verts[(link->edge+1) % poly->vertCount]*3]; float tseg; float distSqr = distancePtSegSqr2D(centerPos, va, vb, tseg); @@ -1917,7 +1925,7 @@ const dtPoly* dtNavMesh::getPolyByRef(dtPolyRef ref) const dtDecodePolyId(ref, salt, it, ip); if (it >= (unsigned int)m_maxTiles) return 0; if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return 0; - if (ip >= (unsigned int)m_tiles[it].header->npolys) return 0; + if (ip >= (unsigned int)m_tiles[it].header->polyCount) return 0; return &m_tiles[it].header->polys[ip]; } @@ -1927,7 +1935,7 @@ const float* dtNavMesh::getPolyVertsByRef(dtPolyRef ref) const dtDecodePolyId(ref, salt, it, ip); if (it >= (unsigned int)m_maxTiles) return 0; if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return 0; - if (ip >= (unsigned int)m_tiles[it].header->npolys) return 0; + if (ip >= (unsigned int)m_tiles[it].header->polyCount) return 0; return m_tiles[it].header->verts; } @@ -1937,7 +1945,7 @@ const dtLink* dtNavMesh::getPolyLinksByRef(dtPolyRef ref) const dtDecodePolyId(ref, salt, it, ip); if (it >= (unsigned int)m_maxTiles) return 0; if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return 0; - if (ip >= (unsigned int)m_tiles[it].header->npolys) return 0; + if (ip >= (unsigned int)m_tiles[it].header->polyCount) return 0; return m_tiles[it].header->links; } diff --git a/Detour/Source/DetourNavMeshBuilder.cpp b/Detour/Source/DetourNavMeshBuilder.cpp index 3bc791a..9af0477 100644 --- a/Detour/Source/DetourNavMeshBuilder.cpp +++ b/Detour/Source/DetourNavMeshBuilder.cpp @@ -22,6 +22,7 @@ #include #include "DetourNavMesh.h" #include "DetourCommon.h" +#include "DetourNavMeshBuilder.h" @@ -337,96 +338,88 @@ unsigned short findNearestPoly(dtMeshHeader* header, const float* center, const } */ -bool dtCreateNavMeshData(const unsigned short* verts, const int nverts, - const unsigned short* polys, const int npolys, const int nvp, - const unsigned short* dmeshes, const float* dverts, const int ndverts, - const unsigned char* dtris, const int ndtris, - const float* omverts, const int nomlinks, - const float* bmin, const float* bmax, float cs, float ch, int tileSize, int walkableClimb, - unsigned char** outData, int* outDataSize) +bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, int* outDataSize) { - if (nvp != DT_VERTS_PER_POLYGON) + if (params->nvp > DT_VERTS_PER_POLYGON) return false; - if (nverts >= 0xffff) + if (params->vertCount >= 0xffff) return false; + if (!params->vertCount || !params->verts) + return false; + if (!params->polyCount || !params->polys) + return false; + if (!params->detailMeshes || !params->detailVerts || !params->detailTris) + return false; + + const int nvp = params->nvp; - if (!nverts) - return false; - if (!npolys) - return false; - if (!dmeshes || !dverts || ! dtris) - return false; - - // Off-mesh links are stored as polygons, adjust values. - const int totpolys = npolys + nomlinks; - const int totverts = nverts + nomlinks*2; + // Off-mesh connectionss are stored as polygons, adjust values. + const int totPolyCount = params->polyCount + params->offMeshConCount; + const int totVertCount = params->vertCount + params->offMeshConCount*2; // Find portal edges which are at tile borders. - int nedges = 0; - int nportals = 0; - for (int i = 0; i < npolys; ++i) + int edgeCount = 0; + int portalCount = 0; + for (int i = 0; i < params->polyCount; ++i) { - const unsigned short* p = &polys[i*2*nvp]; + const unsigned short* p = ¶ms->polys[i*2*nvp]; for (int j = 0; j < nvp; ++j) { if (p[j] == 0xffff) break; int nj = j+1; if (nj >= nvp || p[nj] == 0xffff) nj = 0; - const unsigned short* va = &verts[p[j]*3]; - const unsigned short* vb = &verts[p[nj]*3]; + const unsigned short* va = ¶ms->verts[p[j]*3]; + const unsigned short* vb = ¶ms->verts[p[nj]*3]; - nedges++; + edgeCount++; - if (tileSize > 0) + if (params->tileSize > 0) { - if (va[0] == tileSize && vb[0] == tileSize) - nportals++; // x+ - else if (va[2] == tileSize && vb[2] == tileSize) - nportals++; // z+ + if (va[0] == params->tileSize && vb[0] == params->tileSize) + portalCount++; // x+ + else if (va[2] == params->tileSize && vb[2] == params->tileSize) + portalCount++; // z+ else if (va[0] == 0 && vb[0] == 0) - nportals++; // x- + portalCount++; // x- else if (va[2] == 0 && vb[2] == 0) - nportals++; // z- + portalCount++; // z- } } } - const int maxLinks = nedges + nportals*2 + nomlinks*4; + const int maxLinkCount = edgeCount + portalCount*2 + params->offMeshConCount*4; // Find unique detail vertices. - int uniqueDetailVerts = 0; - if (dmeshes) + int uniqueDetailVertCount = 0; + for (int i = 0; i < params->polyCount; ++i) { - for (int i = 0; i < npolys; ++i) + const unsigned short* p = ¶ms->polys[i*nvp*2]; + int ndv = params->detailMeshes[i*4+1]; + int nv = 0; + for (int j = 0; j < nvp; ++j) { - const unsigned short* p = &polys[i*nvp*2]; - int ndv = dmeshes[i*4+1]; - int nv = 0; - for (int j = 0; j < nvp; ++j) - { - if (p[j] == 0xffff) break; - nv++; - } - ndv -= nv; - uniqueDetailVerts += ndv; + if (p[j] == 0xffff) break; + nv++; } + ndv -= nv; + uniqueDetailVertCount += ndv; } // Calculate data size const int headerSize = align4(sizeof(dtMeshHeader)); - const int vertsSize = align4(sizeof(float)*3*totverts); - const int polysSize = align4(sizeof(dtPoly)*totpolys); - const int linksSize = align4(sizeof(dtLink)*maxLinks); - const int detailMeshesSize = align4(sizeof(dtPolyDetail)*npolys); - const int detailVertsSize = align4(sizeof(float)*3*uniqueDetailVerts); - const int detailTrisSize = align4(sizeof(unsigned char)*4*ndtris); - const int bvtreeSize = align4(sizeof(dtBVNode)*npolys*2); - const int offMeshLinksSize = align4(sizeof(dtOffMeshLink)*nomlinks); + const int vertsSize = align4(sizeof(float)*3*totVertCount); + const int polysSize = align4(sizeof(dtPoly)*totPolyCount); + const int linksSize = align4(sizeof(dtLink)*maxLinkCount); + const int detailMeshesSize = align4(sizeof(dtPolyDetail)*params->polyCount); + const int detailVertsSize = align4(sizeof(float)*3*uniqueDetailVertCount); + const int detailTrisSize = align4(sizeof(unsigned char)*4*params->detailTriCount); + const int bvTreeSize = align4(sizeof(dtBVNode)*params->polyCount*2); + const int offMeshConsSize = align4(sizeof(dtOffMeshConnection)*params->offMeshConCount); const int dataSize = headerSize + vertsSize + polysSize + linksSize + detailMeshesSize + detailVertsSize + detailTrisSize + - bvtreeSize + offMeshLinksSize; + bvTreeSize + offMeshConsSize; unsigned char* data = new unsigned char[dataSize]; if (!data) @@ -441,98 +434,99 @@ bool dtCreateNavMeshData(const unsigned short* verts, const int nverts, dtPolyDetail* navDMeshes = (dtPolyDetail*)d; d += detailMeshesSize; float* navDVerts = (float*)d; d += detailVertsSize; unsigned char* navDTris = (unsigned char*)d; d += detailTrisSize; - dtOffMeshLink* offMeshLinks = (dtOffMeshLink*)d; d += offMeshLinksSize; - dtBVNode* navBvtree = (dtBVNode*)d; d += bvtreeSize; + dtOffMeshConnection* offMeshCons = (dtOffMeshConnection*)d; d += offMeshConsSize; + dtBVNode* navBvtree = (dtBVNode*)d; d += bvTreeSize; // Store header header->magic = DT_NAVMESH_MAGIC; header->version = DT_NAVMESH_VERSION; - header->npolys = totpolys; - header->nverts = totverts; - header->maxlinks = maxLinks; - header->bmin[0] = bmin[0]; - header->bmin[1] = bmin[1]; - header->bmin[2] = bmin[2]; - header->bmax[0] = bmax[0]; - header->bmax[1] = bmax[1]; - header->bmax[2] = bmax[2]; - header->ndmeshes = npolys; - header->ndverts = uniqueDetailVerts; - header->ndtris = ndtris; - header->bvquant = 1.0f/cs; - header->nombase = npolys; - header->nomlinks = nomlinks; - header->nbvtree = npolys*2; + header->polyCount = totPolyCount; + header->vertCount = totVertCount; + header->maxLinkCount = maxLinkCount; + vcopy(header->bmin, params->bmin); + vcopy(header->bmax, params->bmax); + header->detailMeshCount = params->polyCount; + header->detailVertCount = uniqueDetailVertCount; + header->detailTriCount = params->detailTriCount; + header->bvQuantFactor = 1.0f / params->cs; + header->offMeshBase = params->polyCount; + header->walkableHeight = params->walkableHeight; + header->walkableRadius = params->walkableRadius; + header->walkableClimb = params->walkableClimb; + header->offMeshConCount = params->offMeshConCount; + header->bvNodeCount = params->polyCount*2; + + const int offMeshVertsBase = params->vertCount; + const int offMeshPolyBase = params->polyCount; // Store vertices // Mesh vertices - for (int i = 0; i < nverts; ++i) + for (int i = 0; i < params->vertCount; ++i) { - const unsigned short* iv = &verts[i*3]; + const unsigned short* iv = ¶ms->verts[i*3]; float* v = &navVerts[i*3]; - v[0] = bmin[0] + iv[0] * cs; - v[1] = bmin[1] + iv[1] * ch; - v[2] = bmin[2] + iv[2] * cs; + v[0] = params->bmin[0] + iv[0] * params->cs; + v[1] = params->bmin[1] + iv[1] * params->ch; + v[2] = params->bmin[2] + iv[2] * params->cs; } // Off-mesh link vertices. - for (int i = 0; i < nomlinks; ++i) + for (int i = 0; i < params->offMeshConCount; ++i) { - const float* linkv = &omverts[i*2*3]; - float* v = &navVerts[(nverts+i*2)*3]; + const float* linkv = ¶ms->offMeshConVerts[i*2*3]; + float* v = &navVerts[(offMeshVertsBase + i*2)*3]; vcopy(&v[0], &linkv[0]); vcopy(&v[3], &linkv[3]); } // Store polygons // Mesh polys - const unsigned short* src = polys; - for (int i = 0; i < npolys; ++i) + const unsigned short* src = params->polys; + for (int i = 0; i < params->polyCount; ++i) { dtPoly* p = &navPolys[i]; - p->nv = 0; + p->vertCount = 0; for (int j = 0; j < nvp; ++j) { if (src[j] == 0xffff) break; - p->v[j] = src[j]; - p->n[j] = (src[nvp+j]+1) & 0xffff; - p->nv++; + p->verts[j] = src[j]; + p->neis[j] = (src[nvp+j]+1) & 0xffff; + p->vertCount++; } src += nvp*2; } - // Off-mesh link vertices. - const int omvbase = nverts; // first off-mesh link vertex. - for (int i = 0; i < nomlinks; ++i) + // Off-mesh connection vertices. + for (int i = 0; i < params->offMeshConCount; ++i) { - dtPoly* p = &navPolys[npolys+i]; - p->nv = 2; - p->v[0] = (unsigned short)(omvbase + i*2+0); - p->v[1] = (unsigned short)(omvbase + i*2+1); - p->flags = DT_POLY_OFFMESH_LINK; // Off-mesh link poly. + dtPoly* p = &navPolys[offMeshPolyBase+i]; + p->vertCount = 2; + p->verts[0] = (unsigned short)(offMeshVertsBase + i*2+0); + p->verts[1] = (unsigned short)(offMeshVertsBase + i*2+1); + p->flags = DT_POLY_OFFMESH_CONNECTION; // Off-mesh link poly. } // Store portal edges. - if (tileSize > 0) + if (params->tileSize > 0) { - for (int i = 0; i < npolys; ++i) + for (int i = 0; i < params->polyCount; ++i) { dtPoly* poly = &navPolys[i]; - for (int j = 0; j < poly->nv; ++j) + for (int j = 0; j < poly->vertCount; ++j) { int nj = j+1; - if (nj >= poly->nv) nj = 0; + if (nj >= poly->vertCount) nj = 0; - const unsigned short* va = &verts[poly->v[j]*3]; - const unsigned short* vb = &verts[poly->v[nj]*3]; + const unsigned short* va = ¶ms->verts[poly->verts[j]*3]; + const unsigned short* vb = ¶ms->verts[poly->verts[nj]*3]; - if (va[0] == tileSize && vb[0] == tileSize) // x+ - poly->n[j] = 0x8000 | 0; - else if (va[2] == tileSize && vb[2] == tileSize) // z+ - poly->n[j] = 0x8000 | 1; + if (va[0] == params->tileSize && vb[0] == params->tileSize) // x+ + poly->neis[j] = DT_EXT_LINK | 0; + else if (va[2] == params->tileSize && vb[2] == params->tileSize) // z+ + poly->neis[j] = DT_EXT_LINK | 1; else if (va[0] == 0 && vb[0] == 0) // x- - poly->n[j] = 0x8000 | 2; + poly->neis[j] = DT_EXT_LINK | 2; else if (va[2] == 0 && vb[2] == 0) // z- - poly->n[j] = 0x8000 | 3; + poly->neis[j] = DT_EXT_LINK | 3; } } } @@ -541,35 +535,42 @@ bool dtCreateNavMeshData(const unsigned short* verts, const int nverts, // The nav polygon vertices are stored as the first vertices on each mesh. // We compress the mesh data by skipping them and using the navmesh coordinates. unsigned short vbase = 0; - for (int i = 0; i < npolys; ++i) + for (int i = 0; i < params->polyCount; ++i) { dtPolyDetail& dtl = navDMeshes[i]; - const int vb = dmeshes[i*4+0]; - const int ndv = dmeshes[i*4+1]; - const int nv = navPolys[i].nv; - dtl.vbase = vbase; - dtl.nverts = ndv-nv; - dtl.tbase = dmeshes[i*4+2]; - dtl.ntris = dmeshes[i*4+3]; + const int vb = params->detailMeshes[i*4+0]; + const int ndv = params->detailMeshes[i*4+1]; + const int nv = navPolys[i].vertCount; + dtl.vertBase = vbase; + dtl.vertCount = ndv-nv; + dtl.triBase = params->detailMeshes[i*4+2]; + dtl.triCount = params->detailMeshes[i*4+3]; // Copy vertices except the first 'nv' verts which are equal to nav poly verts. if (ndv-nv) { - memcpy(&navDVerts[vbase*3], &dverts[(vb+nv)*3], sizeof(float)*3*(ndv-nv)); + memcpy(&navDVerts[vbase*3], ¶ms->detailVerts[(vb+nv)*3], sizeof(float)*3*(ndv-nv)); vbase += ndv-nv; } } // Store triangles. - memcpy(navDTris, dtris, sizeof(unsigned char)*4*ndtris); + memcpy(navDTris, params->detailTris, sizeof(unsigned char)*4*params->detailTriCount); // Store and create BVtree. // TODO: take detail mesh into account! use byte per bbox extent? - createBVTree(verts, nverts, polys, npolys, nvp, cs, ch, npolys*2, navBvtree); + createBVTree(params->verts, params->vertCount, params->polys, params->polyCount, + nvp, params->cs, params->ch, params->polyCount*2, navBvtree); - // Store Off-Mesh links. - for (int i = 0; i < nomlinks; ++i) + // Store Off-Mesh connections. + for (int i = 0; i < params->offMeshConCount; ++i) { - dtOffMeshLink* link = &offMeshLinks[i]; - link->p = npolys + i; + dtOffMeshConnection* con = &offMeshCons[i]; + con->poly = offMeshPolyBase + i; + // Copy connection end-points. + const float* endPts = ¶ms->offMeshConVerts[i*2*3]; + vcopy(&con->pos[0], &endPts[0]); + vcopy(&con->pos[3], &endPts[3]); + con->rad = params->offMeshConRad[i]; + con->flags = params->offMeshConDir[i]; } *outData = data; diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 7f2f026..7e36a51 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -17,9 +17,10 @@ ); breakpoints = ( 6BBB88CC10EAA37B008FEA1F /* NavMeshTesterTool.cpp:282 */, - 6BB700A210FA36C3006DA0A6 /* DetourNavMesh.cpp:362 */, - 6BB700DA10FA3D0C006DA0A6 /* DetourNavMesh.cpp:507 */, - 6BB700FD10FA3E9F006DA0A6 /* DetourNavMesh.cpp:396 */, + 6BB700A210FA36C3006DA0A6 /* DetourNavMesh.cpp:207 */, + 6BB700DA10FA3D0C006DA0A6 /* DetourNavMesh.cpp:207 */, + 6BCF32F11104D811009445BF /* Sample_SoloMeshSimple.cpp:569 */, + 6BCF32FA1104D84C009445BF /* DetourNavMeshBuilder.cpp:572 */, ); codeSenseManager = 6B8632AA0F78115100E2684A /* Code sense */; executables = ( @@ -122,185 +123,85 @@ PBXFindDataSource_LocationID, ); }; - PBXPerProjectTemplateStateSaveDate = 285108132; - PBXWorkspaceStateSaveDate = 285108132; + PBXPerProjectTemplateStateSaveDate = 285522539; + PBXWorkspaceStateSaveDate = 285522539; }; perUserProjectItems = { 6B57D358108C66B200DDD053 = 6B57D358108C66B200DDD053 /* PBXTextBookmark */; + 6B69733010FFB63B00984788 = 6B69733010FFB63B00984788 /* PBXTextBookmark */; + 6B69733210FFB63B00984788 = 6B69733210FFB63B00984788 /* PBXTextBookmark */; + 6B69733410FFB63B00984788 = 6B69733410FFB63B00984788 /* PBXTextBookmark */; + 6B69733610FFB63B00984788 = 6B69733610FFB63B00984788 /* PBXTextBookmark */; + 6B69733710FFB63B00984788 = 6B69733710FFB63B00984788 /* PBXTextBookmark */; + 6B69733910FFB63B00984788 = 6B69733910FFB63B00984788 /* PBXTextBookmark */; + 6B69734410FFB87300984788 = 6B69734410FFB87300984788 /* PBXTextBookmark */; + 6B69735010FFBC1000984788 = 6B69735010FFBC1000984788 /* PBXTextBookmark */; + 6B69735210FFBC1000984788 = 6B69735210FFBC1000984788 /* PBXTextBookmark */; + 6B69735310FFBC1000984788 = 6B69735310FFBC1000984788 /* PBXTextBookmark */; + 6B69735410FFBC1000984788 = 6B69735410FFBC1000984788 /* PBXTextBookmark */; + 6B69735610FFBC1000984788 = 6B69735610FFBC1000984788 /* PBXTextBookmark */; + 6B69735810FFBC1000984788 = 6B69735810FFBC1000984788 /* PBXTextBookmark */; + 6B69736210FFBDCA00984788 = 6B69736210FFBDCA00984788 /* PBXTextBookmark */; + 6B69736310FFBDCA00984788 = 6B69736310FFBDCA00984788 /* PBXTextBookmark */; + 6B69736510FFBDCA00984788 = 6B69736510FFBDCA00984788 /* PBXTextBookmark */; + 6B69736610FFBDCA00984788 = 6B69736610FFBDCA00984788 /* PBXTextBookmark */; + 6B69736710FFBDCA00984788 = 6B69736710FFBDCA00984788 /* PBXTextBookmark */; + 6B69736810FFBDCA00984788 = 6B69736810FFBDCA00984788 /* PBXTextBookmark */; + 6B69736A10FFBDCA00984788 = 6B69736A10FFBDCA00984788 /* PBXTextBookmark */; + 6B69736E10FFBDCA00984788 = 6B69736E10FFBDCA00984788 /* PBXTextBookmark */; + 6B69736F10FFBDCA00984788 = 6B69736F10FFBDCA00984788 /* PBXTextBookmark */; + 6B69737010FFBDCA00984788 = 6B69737010FFBDCA00984788 /* PBXTextBookmark */; + 6B69737110FFBDCA00984788 = 6B69737110FFBDCA00984788 /* PBXTextBookmark */; + 6B69737210FFBDCA00984788 = 6B69737210FFBDCA00984788 /* PBXTextBookmark */; + 6B69737310FFBDCA00984788 = 6B69737310FFBDCA00984788 /* PBXTextBookmark */; + 6B69737410FFBDCA00984788 = 6B69737410FFBDCA00984788 /* PBXTextBookmark */; + 6B69737510FFBDCA00984788 = 6B69737510FFBDCA00984788 /* PBXTextBookmark */; + 6B69737610FFBDCA00984788 = 6B69737610FFBDCA00984788 /* PBXTextBookmark */; + 6B69737710FFBDCA00984788 = 6B69737710FFBDCA00984788 /* PBXTextBookmark */; + 6B69737810FFBDCA00984788 = 6B69737810FFBDCA00984788 /* PBXTextBookmark */; + 6B69737910FFBDCA00984788 = 6B69737910FFBDCA00984788 /* PBXTextBookmark */; + 6B69737A10FFBDCA00984788 = 6B69737A10FFBDCA00984788 /* PBXTextBookmark */; + 6B69737B10FFBDCA00984788 = 6B69737B10FFBDCA00984788 /* PBXTextBookmark */; + 6B69737C10FFBDCA00984788 = 6B69737C10FFBDCA00984788 /* PBXTextBookmark */; + 6B69737D10FFBDCA00984788 = 6B69737D10FFBDCA00984788 /* PBXTextBookmark */; + 6B69737E10FFBDCA00984788 = 6B69737E10FFBDCA00984788 /* PBXTextBookmark */; + 6B69738810FFBDFD00984788 = 6B69738810FFBDFD00984788 /* PBXTextBookmark */; + 6B69738A10FFBDFD00984788 = 6B69738A10FFBDFD00984788 /* PBXTextBookmark */; + 6B69738C10FFBDFD00984788 = 6B69738C10FFBDFD00984788 /* PBXTextBookmark */; + 6B69739310FFC43600984788 = 6B69739310FFC43600984788 /* PBXTextBookmark */; + 6B69739410FFC43600984788 = 6B69739410FFC43600984788 /* PBXTextBookmark */; + 6B69739510FFC43600984788 = 6B69739510FFC43600984788 /* PBXTextBookmark */; + 6B69739610FFC43600984788 = 6B69739610FFC43600984788 /* PBXTextBookmark */; + 6B69739810FFC43600984788 = 6B69739810FFC43600984788 /* PBXTextBookmark */; + 6B69739910FFC43600984788 = 6B69739910FFC43600984788 /* PBXTextBookmark */; + 6B69739E10FFCA4500984788 = 6B69739E10FFCA4500984788 /* PBXTextBookmark */; + 6B69739F10FFCA4500984788 = 6B69739F10FFCA4500984788 /* PBXTextBookmark */; + 6B6973A010FFCA4500984788 = 6B6973A010FFCA4500984788 /* PBXTextBookmark */; + 6B6973A110FFCA4500984788 = 6B6973A110FFCA4500984788 /* PBXTextBookmark */; + 6B6973A210FFCA4500984788 = 6B6973A210FFCA4500984788 /* PBXTextBookmark */; + 6B6973A310FFCA4500984788 = 6B6973A310FFCA4500984788 /* PBXTextBookmark */; + 6B6973A511005A7B00984788 = 6B6973A511005A7B00984788 /* PBXTextBookmark */; 6B7FB74D1091EBDE001BA51A = 6B7FB74D1091EBDE001BA51A /* PBXTextBookmark */; 6B8DE70D10B01BBF00DF20FB = 6B8DE70D10B01BBF00DF20FB /* PBXTextBookmark */; 6B8DE76D10B0243500DF20FB = 6B8DE76D10B0243500DF20FB /* PBXTextBookmark */; 6B8DE84910B0584400DF20FB = 6B8DE84910B0584400DF20FB /* PBXTextBookmark */; 6B8DEAA110BC7BCD00DF20FB = 6B8DEAA110BC7BCD00DF20FB /* PBXTextBookmark */; - 6B9869F710DFFA98007D8D84 = 6B9869F710DFFA98007D8D84 /* PBXTextBookmark */; 6B9869FC10DFFA98007D8D84 = 6B9869FC10DFFA98007D8D84 /* PBXTextBookmark */; 6BA1E63A10C1DB5B008007F6 = 6BA1E63A10C1DB5B008007F6 /* PBXTextBookmark */; 6BA1E7F210C7B3FF008007F6 = 6BA1E7F210C7B3FF008007F6 /* PBXTextBookmark */; - 6BA1E8DB10C7CB62008007F6 = 6BA1E8DB10C7CB62008007F6 /* PBXTextBookmark */; 6BA1E8E410C7D2FA008007F6 = 6BA1E8E410C7D2FA008007F6 /* PBXTextBookmark */; - 6BAA5E5D10FADB1400701160 = 6BAA5E5D10FADB1400701160 /* PBXTextBookmark */; - 6BAA5E5E10FADB1400701160 = 6BAA5E5E10FADB1400701160 /* PBXTextBookmark */; - 6BAA5E5F10FADB1400701160 = 6BAA5E5F10FADB1400701160 /* PBXTextBookmark */; - 6BAA5E6010FADB1400701160 = 6BAA5E6010FADB1400701160 /* PBXTextBookmark */; - 6BAA5E6110FADB1400701160 = 6BAA5E6110FADB1400701160 /* PBXTextBookmark */; - 6BAA5E6210FADB1400701160 = 6BAA5E6210FADB1400701160 /* PBXTextBookmark */; - 6BAA5E6310FADB1400701160 = 6BAA5E6310FADB1400701160 /* PBXTextBookmark */; - 6BB35FD010FBA81000A9B4B8 = 6BB35FD010FBA81000A9B4B8 /* PBXTextBookmark */; - 6BB35FD610FBCED500A9B4B8 = 6BB35FD610FBCED500A9B4B8 /* PBXTextBookmark */; - 6BB35FD710FBCED500A9B4B8 = 6BB35FD710FBCED500A9B4B8 /* PBXTextBookmark */; - 6BB35FD810FBCED500A9B4B8 = 6BB35FD810FBCED500A9B4B8 /* PBXTextBookmark */; - 6BB35FD910FBCED500A9B4B8 = 6BB35FD910FBCED500A9B4B8 /* PBXTextBookmark */; - 6BB35FDA10FBCED500A9B4B8 = 6BB35FDA10FBCED500A9B4B8 /* PBXTextBookmark */; - 6BB35FDB10FBCED500A9B4B8 = 6BB35FDB10FBCED500A9B4B8 /* PBXTextBookmark */; - 6BB35FDC10FBCED500A9B4B8 = 6BB35FDC10FBCED500A9B4B8 /* PBXTextBookmark */; - 6BB35FDD10FBCED500A9B4B8 = 6BB35FDD10FBCED500A9B4B8 /* PBXTextBookmark */; - 6BB35FE410FBCF3700A9B4B8 = 6BB35FE410FBCF3700A9B4B8 /* PBXTextBookmark */; - 6BB35FE510FBCF3700A9B4B8 = 6BB35FE510FBCF3700A9B4B8 /* PBXTextBookmark */; - 6BB35FE610FBCF3700A9B4B8 = 6BB35FE610FBCF3700A9B4B8 /* PBXTextBookmark */; - 6BB35FE710FBCF3700A9B4B8 = 6BB35FE710FBCF3700A9B4B8 /* PBXTextBookmark */; - 6BB35FEA10FBCFAB00A9B4B8 = 6BB35FEA10FBCFAB00A9B4B8 /* PBXTextBookmark */; - 6BB35FED10FBD09300A9B4B8 = 6BB35FED10FBD09300A9B4B8 /* PBXTextBookmark */; - 6BB35FEE10FBD09300A9B4B8 = 6BB35FEE10FBD09300A9B4B8 /* PBXTextBookmark */; - 6BB35FEF10FBD09300A9B4B8 = 6BB35FEF10FBD09300A9B4B8 /* PBXTextBookmark */; - 6BB35FF010FBD09300A9B4B8 = 6BB35FF010FBD09300A9B4B8 /* PBXTextBookmark */; - 6BB35FF110FBD09300A9B4B8 = 6BB35FF110FBD09300A9B4B8 /* PBXTextBookmark */; - 6BB35FF910FBD0A000A9B4B8 = 6BB35FF910FBD0A000A9B4B8 /* PBXTextBookmark */; - 6BB35FFC10FE4EB600A9B4B8 = 6BB35FFC10FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB35FFD10FE4EB600A9B4B8 = 6BB35FFD10FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB35FFE10FE4EB600A9B4B8 = 6BB35FFE10FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB35FFF10FE4EB600A9B4B8 = 6BB35FFF10FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600010FE4EB600A9B4B8 = 6BB3600010FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600110FE4EB600A9B4B8 = 6BB3600110FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600210FE4EB600A9B4B8 = 6BB3600210FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600310FE4EB600A9B4B8 = 6BB3600310FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600410FE4EB600A9B4B8 = 6BB3600410FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600510FE4EB600A9B4B8 = 6BB3600510FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600610FE4EB600A9B4B8 = 6BB3600610FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600710FE4EB600A9B4B8 = 6BB3600710FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600810FE4EB600A9B4B8 = 6BB3600810FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600910FE4EB600A9B4B8 = 6BB3600910FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600A10FE4EB600A9B4B8 = 6BB3600A10FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600B10FE4EB600A9B4B8 = 6BB3600B10FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600C10FE4EB600A9B4B8 = 6BB3600C10FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3600D10FE4EB600A9B4B8 = 6BB3600D10FE4EB600A9B4B8 /* PBXTextBookmark */; - 6BB3601310FE561F00A9B4B8 = 6BB3601310FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601410FE561F00A9B4B8 = 6BB3601410FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601510FE561F00A9B4B8 = 6BB3601510FE561F00A9B4B8 /* PBXTextBookmark */; 6BB3601610FE561F00A9B4B8 = 6BB3601610FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601710FE561F00A9B4B8 = 6BB3601710FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601810FE561F00A9B4B8 = 6BB3601810FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601910FE561F00A9B4B8 = 6BB3601910FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601A10FE561F00A9B4B8 = 6BB3601A10FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601B10FE561F00A9B4B8 = 6BB3601B10FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601C10FE561F00A9B4B8 = 6BB3601C10FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601D10FE561F00A9B4B8 = 6BB3601D10FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601E10FE561F00A9B4B8 = 6BB3601E10FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3601F10FE561F00A9B4B8 = 6BB3601F10FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3602010FE561F00A9B4B8 = 6BB3602010FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3602110FE561F00A9B4B8 = 6BB3602110FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3602210FE561F00A9B4B8 = 6BB3602210FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3602310FE561F00A9B4B8 = 6BB3602310FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3602410FE561F00A9B4B8 = 6BB3602410FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3602510FE561F00A9B4B8 = 6BB3602510FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3602610FE561F00A9B4B8 = 6BB3602610FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3602710FE561F00A9B4B8 = 6BB3602710FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3602810FE561F00A9B4B8 = 6BB3602810FE561F00A9B4B8 /* PBXTextBookmark */; - 6BB3602A10FE569B00A9B4B8 = 6BB3602A10FE569B00A9B4B8 /* PBXTextBookmark */; - 6BB3602B10FE569B00A9B4B8 = 6BB3602B10FE569B00A9B4B8 /* PBXTextBookmark */; - 6BB3602C10FE569B00A9B4B8 = 6BB3602C10FE569B00A9B4B8 /* PBXTextBookmark */; - 6BB3602D10FE569B00A9B4B8 = 6BB3602D10FE569B00A9B4B8 /* PBXTextBookmark */; - 6BB3602E10FE569B00A9B4B8 = 6BB3602E10FE569B00A9B4B8 /* PBXTextBookmark */; - 6BB3602F10FE569B00A9B4B8 = 6BB3602F10FE569B00A9B4B8 /* PBXTextBookmark */; - 6BB3603110FE56BB00A9B4B8 = 6BB3603110FE56BB00A9B4B8 /* PBXTextBookmark */; - 6BB3603210FE56BB00A9B4B8 = 6BB3603210FE56BB00A9B4B8 /* PBXTextBookmark */; - 6BB3603310FE56BB00A9B4B8 = 6BB3603310FE56BB00A9B4B8 /* PBXTextBookmark */; - 6BB3603410FE56BB00A9B4B8 = 6BB3603410FE56BB00A9B4B8 /* PBXTextBookmark */; - 6BB3603710FE56F600A9B4B8 = 6BB3603710FE56F600A9B4B8 /* PBXTextBookmark */; - 6BB3603810FE56F600A9B4B8 = 6BB3603810FE56F600A9B4B8 /* PBXTextBookmark */; - 6BB3603910FE56F600A9B4B8 = 6BB3603910FE56F600A9B4B8 /* PBXTextBookmark */; - 6BB3603A10FE56F600A9B4B8 = 6BB3603A10FE56F600A9B4B8 /* PBXTextBookmark */; 6BB3603D10FE59E200A9B4B8 = 6BB3603D10FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3603E10FE59E200A9B4B8 = 6BB3603E10FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3603F10FE59E200A9B4B8 = 6BB3603F10FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604010FE59E200A9B4B8 = 6BB3604010FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604110FE59E200A9B4B8 = 6BB3604110FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604210FE59E200A9B4B8 = 6BB3604210FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604310FE59E200A9B4B8 = 6BB3604310FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604410FE59E200A9B4B8 = 6BB3604410FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604510FE59E200A9B4B8 = 6BB3604510FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604610FE59E200A9B4B8 = 6BB3604610FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604710FE59E200A9B4B8 = 6BB3604710FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604810FE59E200A9B4B8 = 6BB3604810FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604910FE59E200A9B4B8 = 6BB3604910FE59E200A9B4B8 /* PBXTextBookmark */; - 6BB3604A10FE59E200A9B4B8 = 6BB3604A10FE59E200A9B4B8 /* PBXTextBookmark */; 6BB3605210FE5CBD00A9B4B8 = 6BB3605210FE5CBD00A9B4B8 /* PBXTextBookmark */; 6BB3605310FE5CBD00A9B4B8 = 6BB3605310FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605410FE5CBD00A9B4B8 = 6BB3605410FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605510FE5CBD00A9B4B8 = 6BB3605510FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605610FE5CBD00A9B4B8 = 6BB3605610FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605710FE5CBD00A9B4B8 = 6BB3605710FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605810FE5CBD00A9B4B8 = 6BB3605810FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605910FE5CBD00A9B4B8 = 6BB3605910FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605A10FE5CBD00A9B4B8 = 6BB3605A10FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605B10FE5CBD00A9B4B8 = 6BB3605B10FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605C10FE5CBD00A9B4B8 = 6BB3605C10FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605D10FE5CBD00A9B4B8 = 6BB3605D10FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605E10FE5CBD00A9B4B8 = 6BB3605E10FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3605F10FE5CBD00A9B4B8 = 6BB3605F10FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3606010FE5CBD00A9B4B8 = 6BB3606010FE5CBD00A9B4B8 /* PBXTextBookmark */; - 6BB3606110FE5E8F00A9B4B8 = 6BB3606110FE5E8F00A9B4B8 /* PBXTextBookmark */; 6BB3606210FE5E8F00A9B4B8 = 6BB3606210FE5E8F00A9B4B8 /* PBXTextBookmark */; - 6BB3606310FE5E8F00A9B4B8 = 6BB3606310FE5E8F00A9B4B8 /* PBXTextBookmark */; - 6BB3606410FE5E8F00A9B4B8 = 6BB3606410FE5E8F00A9B4B8 /* PBXTextBookmark */; - 6BB3606510FE5E8F00A9B4B8 = 6BB3606510FE5E8F00A9B4B8 /* PBXTextBookmark */; - 6BB3606610FE5E8F00A9B4B8 = 6BB3606610FE5E8F00A9B4B8 /* PBXTextBookmark */; - 6BB3606710FE5E8F00A9B4B8 = 6BB3606710FE5E8F00A9B4B8 /* PBXTextBookmark */; - 6BB3606810FE604F00A9B4B8 = 6BB3606810FE604F00A9B4B8 /* PBXTextBookmark */; - 6BB3606910FE638300A9B4B8 = 6BB3606910FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3606A10FE638300A9B4B8 = 6BB3606A10FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3606B10FE638300A9B4B8 = 6BB3606B10FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3606C10FE638300A9B4B8 = 6BB3606C10FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3606D10FE638300A9B4B8 = 6BB3606D10FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3606E10FE638300A9B4B8 = 6BB3606E10FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3606F10FE638300A9B4B8 = 6BB3606F10FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3607010FE638300A9B4B8 = 6BB3607010FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3607110FE638300A9B4B8 = 6BB3607110FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3607210FE638300A9B4B8 = 6BB3607210FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3607310FE638300A9B4B8 = 6BB3607310FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3607410FE638300A9B4B8 = 6BB3607410FE638300A9B4B8 /* PBXTextBookmark */; - 6BB3607510FE662B00A9B4B8 = 6BB3607510FE662B00A9B4B8 /* PBXTextBookmark */; - 6BB3607B10FE670200A9B4B8 = 6BB3607B10FE670200A9B4B8 /* PBXTextBookmark */; - 6BB3607C10FE670200A9B4B8 = 6BB3607C10FE670200A9B4B8 /* PBXTextBookmark */; - 6BB3607D10FE670200A9B4B8 = 6BB3607D10FE670200A9B4B8 /* PBXTextBookmark */; - 6BB3607E10FE670200A9B4B8 = 6BB3607E10FE670200A9B4B8 /* PBXTextBookmark */; - 6BB3607F10FE670200A9B4B8 = 6BB3607F10FE670200A9B4B8 /* PBXTextBookmark */; - 6BB3608010FE670200A9B4B8 = 6BB3608010FE670200A9B4B8 /* PBXTextBookmark */; - 6BB3608110FE670200A9B4B8 = 6BB3608110FE670200A9B4B8 /* PBXTextBookmark */; - 6BB3608210FE670200A9B4B8 = 6BB3608210FE670200A9B4B8 /* PBXTextBookmark */; - 6BB3608510FE675100A9B4B8 = 6BB3608510FE675100A9B4B8 /* PBXTextBookmark */; - 6BB3608710FE676600A9B4B8 = 6BB3608710FE676600A9B4B8 /* PBXTextBookmark */; - 6BB3608B10FE677B00A9B4B8 = 6BB3608B10FE677B00A9B4B8 /* PBXTextBookmark */; 6BB4965F10C8F2AE00BC0805 = 6BB4965F10C8F2AE00BC0805 /* PBXTextBookmark */; - 6BB7000610F4F03D006DA0A6 = 6BB7000610F4F03D006DA0A6 /* PBXTextBookmark */; - 6BB7001110F4F17C006DA0A6 = 6BB7001110F4F17C006DA0A6 /* PBXTextBookmark */; - 6BB7001210F4F17C006DA0A6 = 6BB7001210F4F17C006DA0A6 /* PBXTextBookmark */; - 6BB7002C10F4F257006DA0A6 = 6BB7002C10F4F257006DA0A6 /* PBXTextBookmark */; 6BB7003710F4F39B006DA0A6 = 6BB7003710F4F39B006DA0A6 /* PBXTextBookmark */; - 6BB7003810F4F39B006DA0A6 = 6BB7003810F4F39B006DA0A6 /* PBXTextBookmark */; - 6BB7003A10F4F39B006DA0A6 = 6BB7003A10F4F39B006DA0A6 /* PBXTextBookmark */; - 6BB7004C10F4F532006DA0A6 = 6BB7004C10F4F532006DA0A6 /* PBXTextBookmark */; - 6BB7004F10F4F532006DA0A6 = 6BB7004F10F4F532006DA0A6 /* PBXTextBookmark */; - 6BB7007210FA2B13006DA0A6 = 6BB7007210FA2B13006DA0A6 /* PBXTextBookmark */; 6BB7007510FA2B13006DA0A6 = 6BB7007510FA2B13006DA0A6 /* PBXTextBookmark */; - 6BB7007C10FA2E34006DA0A6 = 6BB7007C10FA2E34006DA0A6 /* PBXTextBookmark */; 6BB7008C10FA3475006DA0A6 = 6BB7008C10FA3475006DA0A6 /* PBXTextBookmark */; - 6BB7008E10FA3475006DA0A6 = 6BB7008E10FA3475006DA0A6 /* PBXTextBookmark */; 6BB700BF10FA3AB1006DA0A6 = 6BB700BF10FA3AB1006DA0A6 /* PBXTextBookmark */; - 6BB700C010FA3AB1006DA0A6 = 6BB700C010FA3AB1006DA0A6 /* PBXTextBookmark */; 6BB700C310FA3AB1006DA0A6 = 6BB700C310FA3AB1006DA0A6 /* PBXTextBookmark */; - 6BB700F510FA3E31006DA0A6 = 6BB700F510FA3E31006DA0A6 /* PBXTextBookmark */; 6BB7FD6310F3564B006DA0A6 = 6BB7FD6310F3564B006DA0A6 /* PBXTextBookmark */; - 6BB7FD6910F3564B006DA0A6 = 6BB7FD6910F3564B006DA0A6 /* PBXTextBookmark */; 6BB7FDC010F37703006DA0A6 = 6BB7FDC010F37703006DA0A6 /* PBXTextBookmark */; 6BB7FDC110F37703006DA0A6 = 6BB7FDC110F37703006DA0A6 /* PBXTextBookmark */; 6BB7FDC710F37703006DA0A6 = 6BB7FDC710F37703006DA0A6 /* PBXTextBookmark */; @@ -316,26 +217,18 @@ 6BB7FE2310F37CF7006DA0A6 = 6BB7FE2310F37CF7006DA0A6 /* PBXTextBookmark */; 6BB7FE3B10F3817A006DA0A6 = 6BB7FE3B10F3817A006DA0A6 /* PBXTextBookmark */; 6BB7FE5410F3817A006DA0A6 = 6BB7FE5410F3817A006DA0A6 /* PBXTextBookmark */; - 6BB7FE7810F38224006DA0A6 = 6BB7FE7810F38224006DA0A6 /* PBXTextBookmark */; - 6BB7FEA910F4B5E1006DA0A6 = 6BB7FEA910F4B5E1006DA0A6 /* PBXTextBookmark */; 6BB7FEAD10F4B5E1006DA0A6 = 6BB7FEAD10F4B5E1006DA0A6 /* PBXTextBookmark */; 6BB7FEB810F4B5E1006DA0A6 = 6BB7FEB810F4B5E1006DA0A6 /* PBXTextBookmark */; 6BB7FEB910F4B5E1006DA0A6 = 6BB7FEB910F4B5E1006DA0A6 /* PBXTextBookmark */; 6BB7FECF10F4B5E1006DA0A6 = 6BB7FECF10F4B5E1006DA0A6 /* PBXTextBookmark */; 6BB7FEDE10F4B779006DA0A6 = 6BB7FEDE10F4B779006DA0A6 /* PBXTextBookmark */; - 6BB7FF0210F4D699006DA0A6 = 6BB7FF0210F4D699006DA0A6 /* PBXTextBookmark */; 6BB7FF0310F4D699006DA0A6 = 6BB7FF0310F4D699006DA0A6 /* PBXTextBookmark */; - 6BB7FF1210F4D699006DA0A6 = 6BB7FF1210F4D699006DA0A6 /* PBXTextBookmark */; 6BB7FF2410F4D699006DA0A6 = 6BB7FF2410F4D699006DA0A6 /* PBXTextBookmark */; - 6BB7FF6C10F4E8E2006DA0A6 = 6BB7FF6C10F4E8E2006DA0A6 /* PBXTextBookmark */; 6BB7FF6D10F4E8E2006DA0A6 = 6BB7FF6D10F4E8E2006DA0A6 /* PBXTextBookmark */; 6BB7FF6E10F4E8E2006DA0A6 = 6BB7FF6E10F4E8E2006DA0A6 /* PBXTextBookmark */; - 6BB7FF7310F4E8E2006DA0A6 = 6BB7FF7310F4E8E2006DA0A6 /* PBXTextBookmark */; 6BB7FF7910F4E8E2006DA0A6 = 6BB7FF7910F4E8E2006DA0A6 /* PBXTextBookmark */; 6BB7FF8910F4E8E2006DA0A6 = 6BB7FF8910F4E8E2006DA0A6 /* PBXTextBookmark */; 6BB7FF9610F4E8E2006DA0A6 = 6BB7FF9610F4E8E2006DA0A6 /* PBXTextBookmark */; - 6BB7FF9710F4E8E2006DA0A6 = 6BB7FF9710F4E8E2006DA0A6 /* PBXTextBookmark */; - 6BB7FFBE10F4E9A8006DA0A6 = 6BB7FFBE10F4E9A8006DA0A6 /* PBXTextBookmark */; 6BB7FFD610F4EC73006DA0A6 = 6BB7FFD610F4EC73006DA0A6 /* PBXTextBookmark */; 6BB93D1510CFFC6D00F74F2B = 6BB93D1510CFFC6D00F74F2B /* PBXTextBookmark */; 6BB93D1B10CFFD7600F74F2B = 6BB93D1B10CFFD7600F74F2B /* PBXTextBookmark */; @@ -347,46 +240,507 @@ 6BBB885510EA9ECC008FEA1F = 6BBB885510EA9ECC008FEA1F /* PBXTextBookmark */; 6BBB889B10EAA094008FEA1F = 6BBB889B10EAA094008FEA1F /* PBXTextBookmark */; 6BBB889D10EAA094008FEA1F = 6BBB889D10EAA094008FEA1F /* PBXTextBookmark */; - 6BE731E610FE67F500C1B074 /* PBXTextBookmark */ = 6BE731E610FE67F500C1B074 /* PBXTextBookmark */; - 6BE731F210FE682600C1B074 /* PBXTextBookmark */ = 6BE731F210FE682600C1B074 /* PBXTextBookmark */; - 6BE731F510FE685300C1B074 /* PBXTextBookmark */ = 6BE731F510FE685300C1B074 /* PBXTextBookmark */; - 6BE731F810FE69E000C1B074 /* PBXTextBookmark */ = 6BE731F810FE69E000C1B074 /* PBXTextBookmark */; - 6BE731F910FE6ABD00C1B074 /* PBXTextBookmark */ = 6BE731F910FE6ABD00C1B074 /* PBXTextBookmark */; - 6BE731FA10FE6ABD00C1B074 /* PBXTextBookmark */ = 6BE731FA10FE6ABD00C1B074 /* PBXTextBookmark */; - 6BE731FB10FE6ABD00C1B074 /* PBXTextBookmark */ = 6BE731FB10FE6ABD00C1B074 /* PBXTextBookmark */; - 6BE731FC10FE6ABD00C1B074 /* PBXTextBookmark */ = 6BE731FC10FE6ABD00C1B074 /* PBXTextBookmark */; - 6BE731FD10FE6BDC00C1B074 /* PBXTextBookmark */ = 6BE731FD10FE6BDC00C1B074 /* PBXTextBookmark */; - 6BE731FE10FE6BDC00C1B074 /* PBXTextBookmark */ = 6BE731FE10FE6BDC00C1B074 /* PBXTextBookmark */; - 6BE731FF10FE6BDC00C1B074 /* PBXTextBookmark */ = 6BE731FF10FE6BDC00C1B074 /* PBXTextBookmark */; - 6BE7320010FE6BDC00C1B074 /* PBXTextBookmark */ = 6BE7320010FE6BDC00C1B074 /* PBXTextBookmark */; - 6BE7320110FE6BDC00C1B074 /* PBXTextBookmark */ = 6BE7320110FE6BDC00C1B074 /* PBXTextBookmark */; - 6BE7320210FE6CEF00C1B074 /* PBXTextBookmark */ = 6BE7320210FE6CEF00C1B074 /* PBXTextBookmark */; - 6BE7320310FE6CEF00C1B074 /* PBXTextBookmark */ = 6BE7320310FE6CEF00C1B074 /* PBXTextBookmark */; - 6BE7320410FE6CEF00C1B074 /* PBXTextBookmark */ = 6BE7320410FE6CEF00C1B074 /* PBXTextBookmark */; - 6BE7320510FE6CEF00C1B074 /* PBXTextBookmark */ = 6BE7320510FE6CEF00C1B074 /* PBXTextBookmark */; - 6BE7320610FE6CEF00C1B074 /* PBXTextBookmark */ = 6BE7320610FE6CEF00C1B074 /* PBXTextBookmark */; - 6BE7320710FE6CEF00C1B074 /* PBXTextBookmark */ = 6BE7320710FE6CEF00C1B074 /* PBXTextBookmark */; - 6BE7320810FE6CEF00C1B074 /* PBXTextBookmark */ = 6BE7320810FE6CEF00C1B074 /* PBXTextBookmark */; - 6BE7320C10FE6EBE00C1B074 /* PBXTextBookmark */ = 6BE7320C10FE6EBE00C1B074 /* PBXTextBookmark */; - 6BE7320D10FE6EBE00C1B074 /* PBXTextBookmark */ = 6BE7320D10FE6EBE00C1B074 /* PBXTextBookmark */; - 6BE7320E10FE6EBE00C1B074 /* PBXTextBookmark */ = 6BE7320E10FE6EBE00C1B074 /* PBXTextBookmark */; - 6BE7320F10FE6EBE00C1B074 /* PBXTextBookmark */ = 6BE7320F10FE6EBE00C1B074 /* PBXTextBookmark */; - 6BE7321010FE6EBE00C1B074 /* PBXTextBookmark */ = 6BE7321010FE6EBE00C1B074 /* PBXTextBookmark */; - 6BE7321110FE6F1000C1B074 /* PBXTextBookmark */ = 6BE7321110FE6F1000C1B074 /* PBXTextBookmark */; - 6BE7321210FE70FE00C1B074 /* PBXTextBookmark */ = 6BE7321210FE70FE00C1B074 /* PBXTextBookmark */; - 6BE7321310FE70FE00C1B074 /* PBXTextBookmark */ = 6BE7321310FE70FE00C1B074 /* PBXTextBookmark */; - 6BE7321410FE70FE00C1B074 /* PBXTextBookmark */ = 6BE7321410FE70FE00C1B074 /* PBXTextBookmark */; - 6BE7321510FE70FE00C1B074 /* PBXTextBookmark */ = 6BE7321510FE70FE00C1B074 /* PBXTextBookmark */; - 6BE7321710FE712A00C1B074 /* PBXTextBookmark */ = 6BE7321710FE712A00C1B074 /* PBXTextBookmark */; - 6BE7321810FE712A00C1B074 /* PBXTextBookmark */ = 6BE7321810FE712A00C1B074 /* PBXTextBookmark */; - 6BE7321910FE712A00C1B074 /* PBXTextBookmark */ = 6BE7321910FE712A00C1B074 /* PBXTextBookmark */; - 6BE7321D10FE72B300C1B074 /* PBXTextBookmark */ = 6BE7321D10FE72B300C1B074 /* PBXTextBookmark */; - 6BE7321E10FE72B300C1B074 /* PBXTextBookmark */ = 6BE7321E10FE72B300C1B074 /* PBXTextBookmark */; - 6BE7321F10FE72B300C1B074 /* PBXTextBookmark */ = 6BE7321F10FE72B300C1B074 /* PBXTextBookmark */; - 6BE7322010FE72B300C1B074 /* PBXTextBookmark */ = 6BE7322010FE72B300C1B074 /* PBXTextBookmark */; - 6BE7322110FE72B300C1B074 /* PBXTextBookmark */ = 6BE7322110FE72B300C1B074 /* PBXTextBookmark */; - 6BE7322210FE72B300C1B074 /* PBXTextBookmark */ = 6BE7322210FE72B300C1B074 /* PBXTextBookmark */; - 6BE7322310FE72B300C1B074 /* PBXTextBookmark */ = 6BE7322310FE72B300C1B074 /* PBXTextBookmark */; + 6BCF31F41104C9F0009445BF /* PBXTextBookmark */ = 6BCF31F41104C9F0009445BF /* PBXTextBookmark */; + 6BCF31F51104C9F0009445BF /* PBXTextBookmark */ = 6BCF31F51104C9F0009445BF /* PBXTextBookmark */; + 6BCF31F61104C9F0009445BF /* PBXTextBookmark */ = 6BCF31F61104C9F0009445BF /* PBXTextBookmark */; + 6BCF31F71104C9F0009445BF /* PBXTextBookmark */ = 6BCF31F71104C9F0009445BF /* PBXTextBookmark */; + 6BCF31F81104C9F0009445BF /* PBXTextBookmark */ = 6BCF31F81104C9F0009445BF /* PBXTextBookmark */; + 6BCF31F91104C9F0009445BF /* PBXTextBookmark */ = 6BCF31F91104C9F0009445BF /* PBXTextBookmark */; + 6BCF31FA1104C9F0009445BF /* PBXTextBookmark */ = 6BCF31FA1104C9F0009445BF /* PBXTextBookmark */; + 6BCF31FB1104C9F0009445BF /* PBXTextBookmark */ = 6BCF31FB1104C9F0009445BF /* PBXTextBookmark */; + 6BCF31FC1104C9F0009445BF /* PBXTextBookmark */ = 6BCF31FC1104C9F0009445BF /* PBXTextBookmark */; + 6BCF31FD1104C9F0009445BF /* PBXTextBookmark */ = 6BCF31FD1104C9F0009445BF /* PBXTextBookmark */; + 6BCF31FE1104C9F0009445BF /* PBXTextBookmark */ = 6BCF31FE1104C9F0009445BF /* PBXTextBookmark */; + 6BCF31FF1104C9F0009445BF /* PBXTextBookmark */ = 6BCF31FF1104C9F0009445BF /* PBXTextBookmark */; + 6BCF32001104C9F0009445BF /* PBXTextBookmark */ = 6BCF32001104C9F0009445BF /* PBXTextBookmark */; + 6BCF32011104C9F0009445BF /* PBXTextBookmark */ = 6BCF32011104C9F0009445BF /* PBXTextBookmark */; + 6BCF32021104C9F0009445BF /* PBXTextBookmark */ = 6BCF32021104C9F0009445BF /* PBXTextBookmark */; + 6BCF32031104C9F0009445BF /* PBXTextBookmark */ = 6BCF32031104C9F0009445BF /* PBXTextBookmark */; + 6BCF32041104C9F0009445BF /* PBXTextBookmark */ = 6BCF32041104C9F0009445BF /* PBXTextBookmark */; + 6BCF32051104C9F0009445BF /* PBXTextBookmark */ = 6BCF32051104C9F0009445BF /* PBXTextBookmark */; + 6BCF32061104C9F0009445BF /* PBXTextBookmark */ = 6BCF32061104C9F0009445BF /* PBXTextBookmark */; + 6BCF32071104C9F0009445BF /* PBXTextBookmark */ = 6BCF32071104C9F0009445BF /* PBXTextBookmark */; + 6BCF32081104C9F0009445BF /* PBXTextBookmark */ = 6BCF32081104C9F0009445BF /* PBXTextBookmark */; + 6BCF32091104C9F0009445BF /* PBXTextBookmark */ = 6BCF32091104C9F0009445BF /* PBXTextBookmark */; + 6BCF320A1104C9F0009445BF /* PBXTextBookmark */ = 6BCF320A1104C9F0009445BF /* PBXTextBookmark */; + 6BCF320B1104C9F0009445BF /* PBXTextBookmark */ = 6BCF320B1104C9F0009445BF /* PBXTextBookmark */; + 6BCF320C1104C9F0009445BF /* PBXTextBookmark */ = 6BCF320C1104C9F0009445BF /* PBXTextBookmark */; + 6BCF320D1104C9F0009445BF /* PBXTextBookmark */ = 6BCF320D1104C9F0009445BF /* PBXTextBookmark */; + 6BCF320E1104C9F0009445BF /* PBXTextBookmark */ = 6BCF320E1104C9F0009445BF /* PBXTextBookmark */; + 6BCF320F1104C9F0009445BF /* PBXTextBookmark */ = 6BCF320F1104C9F0009445BF /* PBXTextBookmark */; + 6BCF32101104C9F0009445BF /* PBXTextBookmark */ = 6BCF32101104C9F0009445BF /* PBXTextBookmark */; + 6BCF32111104C9F0009445BF /* PBXTextBookmark */ = 6BCF32111104C9F0009445BF /* PBXTextBookmark */; + 6BCF32121104C9F0009445BF /* PBXTextBookmark */ = 6BCF32121104C9F0009445BF /* PBXTextBookmark */; + 6BCF32131104C9F0009445BF /* PBXTextBookmark */ = 6BCF32131104C9F0009445BF /* PBXTextBookmark */; + 6BCF32141104C9F0009445BF /* PBXTextBookmark */ = 6BCF32141104C9F0009445BF /* PBXTextBookmark */; + 6BCF32151104C9F0009445BF /* PBXTextBookmark */ = 6BCF32151104C9F0009445BF /* PBXTextBookmark */; + 6BCF32161104C9F0009445BF /* PBXTextBookmark */ = 6BCF32161104C9F0009445BF /* PBXTextBookmark */; + 6BCF32171104C9F0009445BF /* PBXTextBookmark */ = 6BCF32171104C9F0009445BF /* PBXTextBookmark */; + 6BCF32181104C9F0009445BF /* PBXTextBookmark */ = 6BCF32181104C9F0009445BF /* PBXTextBookmark */; + 6BCF32191104C9F0009445BF /* PBXTextBookmark */ = 6BCF32191104C9F0009445BF /* PBXTextBookmark */; + 6BCF321A1104C9F0009445BF /* PBXTextBookmark */ = 6BCF321A1104C9F0009445BF /* PBXTextBookmark */; + 6BCF321B1104C9F0009445BF /* PBXTextBookmark */ = 6BCF321B1104C9F0009445BF /* PBXTextBookmark */; + 6BCF321C1104C9F0009445BF /* PBXTextBookmark */ = 6BCF321C1104C9F0009445BF /* PBXTextBookmark */; + 6BCF321D1104C9F0009445BF /* PBXTextBookmark */ = 6BCF321D1104C9F0009445BF /* PBXTextBookmark */; + 6BCF321E1104C9F0009445BF /* PBXTextBookmark */ = 6BCF321E1104C9F0009445BF /* PBXTextBookmark */; + 6BCF321F1104C9F0009445BF /* PBXTextBookmark */ = 6BCF321F1104C9F0009445BF /* PBXTextBookmark */; + 6BCF32201104C9F0009445BF /* PBXTextBookmark */ = 6BCF32201104C9F0009445BF /* PBXTextBookmark */; + 6BCF322B1104CA22009445BF /* PBXTextBookmark */ = 6BCF322B1104CA22009445BF /* PBXTextBookmark */; + 6BCF322C1104CA22009445BF /* PBXTextBookmark */ = 6BCF322C1104CA22009445BF /* PBXTextBookmark */; + 6BCF322D1104CA22009445BF /* PBXTextBookmark */ = 6BCF322D1104CA22009445BF /* PBXTextBookmark */; + 6BCF322E1104CA22009445BF /* PBXTextBookmark */ = 6BCF322E1104CA22009445BF /* PBXTextBookmark */; + 6BCF322F1104CA22009445BF /* PBXTextBookmark */ = 6BCF322F1104CA22009445BF /* PBXTextBookmark */; + 6BCF32301104CA22009445BF /* PBXTextBookmark */ = 6BCF32301104CA22009445BF /* PBXTextBookmark */; + 6BCF32391104CDB5009445BF /* PBXTextBookmark */ = 6BCF32391104CDB5009445BF /* PBXTextBookmark */; + 6BCF323A1104CDB5009445BF /* PBXTextBookmark */ = 6BCF323A1104CDB5009445BF /* PBXTextBookmark */; + 6BCF323B1104CDB5009445BF /* PBXTextBookmark */ = 6BCF323B1104CDB5009445BF /* PBXTextBookmark */; + 6BCF323C1104CDB5009445BF /* PBXTextBookmark */ = 6BCF323C1104CDB5009445BF /* PBXTextBookmark */; + 6BCF323D1104CDB5009445BF /* PBXTextBookmark */ = 6BCF323D1104CDB5009445BF /* PBXTextBookmark */; + 6BCF323E1104CDB5009445BF /* PBXTextBookmark */ = 6BCF323E1104CDB5009445BF /* PBXTextBookmark */; + 6BCF323F1104CDB5009445BF /* PBXTextBookmark */ = 6BCF323F1104CDB5009445BF /* PBXTextBookmark */; + 6BCF32401104CDB5009445BF /* PBXTextBookmark */ = 6BCF32401104CDB5009445BF /* PBXTextBookmark */; + 6BCF32411104CDB5009445BF /* PBXTextBookmark */ = 6BCF32411104CDB5009445BF /* PBXTextBookmark */; + 6BCF32421104CDB5009445BF /* PBXTextBookmark */ = 6BCF32421104CDB5009445BF /* PBXTextBookmark */; + 6BCF32431104CDB5009445BF /* PBXTextBookmark */ = 6BCF32431104CDB5009445BF /* PBXTextBookmark */; + 6BCF32441104CDB5009445BF /* PBXTextBookmark */ = 6BCF32441104CDB5009445BF /* PBXTextBookmark */; + 6BCF32451104CDB5009445BF /* PBXTextBookmark */ = 6BCF32451104CDB5009445BF /* PBXTextBookmark */; + 6BCF32461104CDB5009445BF /* PBXTextBookmark */ = 6BCF32461104CDB5009445BF /* PBXTextBookmark */; + 6BCF32471104CDB5009445BF /* PBXTextBookmark */ = 6BCF32471104CDB5009445BF /* PBXTextBookmark */; + 6BCF32481104CDB5009445BF /* PBXTextBookmark */ = 6BCF32481104CDB5009445BF /* PBXTextBookmark */; + 6BCF32491104CDB5009445BF /* PBXTextBookmark */ = 6BCF32491104CDB5009445BF /* PBXTextBookmark */; + 6BCF324A1104CDB5009445BF /* PBXTextBookmark */ = 6BCF324A1104CDB5009445BF /* PBXTextBookmark */; + 6BCF324B1104CDB5009445BF /* PBXTextBookmark */ = 6BCF324B1104CDB5009445BF /* PBXTextBookmark */; + 6BCF324C1104CDB5009445BF /* PBXTextBookmark */ = 6BCF324C1104CDB5009445BF /* PBXTextBookmark */; + 6BCF324D1104CDB5009445BF /* PBXTextBookmark */ = 6BCF324D1104CDB5009445BF /* PBXTextBookmark */; + 6BCF324E1104CDB5009445BF /* PBXTextBookmark */ = 6BCF324E1104CDB5009445BF /* PBXTextBookmark */; + 6BCF324F1104CDB5009445BF /* PBXTextBookmark */ = 6BCF324F1104CDB5009445BF /* PBXTextBookmark */; + 6BCF32501104CDB5009445BF /* PBXTextBookmark */ = 6BCF32501104CDB5009445BF /* PBXTextBookmark */; + 6BCF32511104CDB5009445BF /* PBXTextBookmark */ = 6BCF32511104CDB5009445BF /* PBXTextBookmark */; + 6BCF32521104CDB5009445BF /* PBXTextBookmark */ = 6BCF32521104CDB5009445BF /* PBXTextBookmark */; + 6BCF32531104CDB5009445BF /* PBXTextBookmark */ = 6BCF32531104CDB5009445BF /* PBXTextBookmark */; + 6BCF325D1104CFE7009445BF /* PBXTextBookmark */ = 6BCF325D1104CFE7009445BF /* PBXTextBookmark */; + 6BCF325E1104CFE7009445BF /* PBXTextBookmark */ = 6BCF325E1104CFE7009445BF /* PBXTextBookmark */; + 6BCF325F1104CFE7009445BF /* PBXTextBookmark */ = 6BCF325F1104CFE7009445BF /* PBXTextBookmark */; + 6BCF32601104CFE7009445BF /* PBXTextBookmark */ = 6BCF32601104CFE7009445BF /* PBXTextBookmark */; + 6BCF32611104CFE7009445BF /* PBXTextBookmark */ = 6BCF32611104CFE7009445BF /* PBXTextBookmark */; + 6BCF32621104CFE7009445BF /* PBXTextBookmark */ = 6BCF32621104CFE7009445BF /* PBXTextBookmark */; + 6BCF32631104CFE7009445BF /* PBXTextBookmark */ = 6BCF32631104CFE7009445BF /* PBXTextBookmark */; + 6BCF32641104CFE7009445BF /* PBXTextBookmark */ = 6BCF32641104CFE7009445BF /* PBXTextBookmark */; + 6BCF32651104CFE7009445BF /* PBXTextBookmark */ = 6BCF32651104CFE7009445BF /* PBXTextBookmark */; + 6BCF32661104CFE7009445BF /* PBXTextBookmark */ = 6BCF32661104CFE7009445BF /* PBXTextBookmark */; + 6BCF32671104CFE7009445BF /* PBXTextBookmark */ = 6BCF32671104CFE7009445BF /* PBXTextBookmark */; + 6BCF32681104CFE7009445BF /* PBXTextBookmark */ = 6BCF32681104CFE7009445BF /* PBXTextBookmark */; + 6BCF32691104CFE7009445BF /* PBXTextBookmark */ = 6BCF32691104CFE7009445BF /* PBXTextBookmark */; + 6BCF326A1104CFE7009445BF /* PBXTextBookmark */ = 6BCF326A1104CFE7009445BF /* PBXTextBookmark */; + 6BCF326B1104CFE7009445BF /* PBXTextBookmark */ = 6BCF326B1104CFE7009445BF /* PBXTextBookmark */; + 6BCF326C1104CFE7009445BF /* PBXTextBookmark */ = 6BCF326C1104CFE7009445BF /* PBXTextBookmark */; + 6BCF326D1104CFE7009445BF /* PBXTextBookmark */ = 6BCF326D1104CFE7009445BF /* PBXTextBookmark */; + 6BCF326E1104CFE7009445BF /* PBXTextBookmark */ = 6BCF326E1104CFE7009445BF /* PBXTextBookmark */; + 6BCF326F1104CFE7009445BF /* PBXTextBookmark */ = 6BCF326F1104CFE7009445BF /* PBXTextBookmark */; + 6BCF32701104CFE7009445BF /* PBXTextBookmark */ = 6BCF32701104CFE7009445BF /* PBXTextBookmark */; + 6BCF32711104CFE7009445BF /* PBXTextBookmark */ = 6BCF32711104CFE7009445BF /* PBXTextBookmark */; + 6BCF32721104CFE7009445BF /* PBXTextBookmark */ = 6BCF32721104CFE7009445BF /* PBXTextBookmark */; + 6BCF32731104CFE7009445BF /* PBXTextBookmark */ = 6BCF32731104CFE7009445BF /* PBXTextBookmark */; + 6BCF32741104CFE7009445BF /* PBXTextBookmark */ = 6BCF32741104CFE7009445BF /* PBXTextBookmark */; + 6BCF32751104CFE7009445BF /* PBXTextBookmark */ = 6BCF32751104CFE7009445BF /* PBXTextBookmark */; + 6BCF32761104CFE7009445BF /* PBXTextBookmark */ = 6BCF32761104CFE7009445BF /* PBXTextBookmark */; + 6BCF32771104CFE7009445BF /* PBXTextBookmark */ = 6BCF32771104CFE7009445BF /* PBXTextBookmark */; + 6BCF32781104CFE7009445BF /* PBXTextBookmark */ = 6BCF32781104CFE7009445BF /* PBXTextBookmark */; + 6BCF32791104CFE7009445BF /* PBXTextBookmark */ = 6BCF32791104CFE7009445BF /* PBXTextBookmark */; + 6BCF327A1104CFE7009445BF /* PBXTextBookmark */ = 6BCF327A1104CFE7009445BF /* PBXTextBookmark */; + 6BCF327B1104CFE7009445BF /* PBXTextBookmark */ = 6BCF327B1104CFE7009445BF /* PBXTextBookmark */; + 6BCF32801104D114009445BF /* PBXTextBookmark */ = 6BCF32801104D114009445BF /* PBXTextBookmark */; + 6BCF32811104D114009445BF /* PBXTextBookmark */ = 6BCF32811104D114009445BF /* PBXTextBookmark */; + 6BCF32821104D114009445BF /* PBXTextBookmark */ = 6BCF32821104D114009445BF /* PBXTextBookmark */; + 6BCF32831104D114009445BF /* PBXTextBookmark */ = 6BCF32831104D114009445BF /* PBXTextBookmark */; + 6BCF32841104D114009445BF /* PBXTextBookmark */ = 6BCF32841104D114009445BF /* PBXTextBookmark */; + 6BCF32851104D114009445BF /* PBXTextBookmark */ = 6BCF32851104D114009445BF /* PBXTextBookmark */; + 6BCF32861104D114009445BF /* PBXTextBookmark */ = 6BCF32861104D114009445BF /* PBXTextBookmark */; + 6BCF32871104D114009445BF /* PBXTextBookmark */ = 6BCF32871104D114009445BF /* PBXTextBookmark */; + 6BCF32881104D114009445BF /* PBXTextBookmark */ = 6BCF32881104D114009445BF /* PBXTextBookmark */; + 6BCF32891104D114009445BF /* PBXTextBookmark */ = 6BCF32891104D114009445BF /* PBXTextBookmark */; + 6BCF328A1104D114009445BF /* PBXTextBookmark */ = 6BCF328A1104D114009445BF /* PBXTextBookmark */; + 6BCF328B1104D114009445BF /* PBXTextBookmark */ = 6BCF328B1104D114009445BF /* PBXTextBookmark */; + 6BCF328E1104D179009445BF /* PBXTextBookmark */ = 6BCF328E1104D179009445BF /* PBXTextBookmark */; + 6BCF328F1104D179009445BF /* PBXTextBookmark */ = 6BCF328F1104D179009445BF /* PBXTextBookmark */; + 6BCF32901104D179009445BF /* PBXTextBookmark */ = 6BCF32901104D179009445BF /* PBXTextBookmark */; + 6BCF32911104D179009445BF /* PBXTextBookmark */ = 6BCF32911104D179009445BF /* PBXTextBookmark */; + 6BCF32941104D1B2009445BF /* PBXTextBookmark */ = 6BCF32941104D1B2009445BF /* PBXTextBookmark */; + 6BCF32951104D1B2009445BF /* PBXTextBookmark */ = 6BCF32951104D1B2009445BF /* PBXTextBookmark */; + 6BCF32961104D1B2009445BF /* PBXTextBookmark */ = 6BCF32961104D1B2009445BF /* PBXTextBookmark */; + 6BCF32971104D1B2009445BF /* PBXTextBookmark */ = 6BCF32971104D1B2009445BF /* PBXTextBookmark */; + 6BCF329F1104D31E009445BF /* PBXTextBookmark */ = 6BCF329F1104D31E009445BF /* PBXTextBookmark */; + 6BCF32A01104D31E009445BF /* PBXTextBookmark */ = 6BCF32A01104D31E009445BF /* PBXTextBookmark */; + 6BCF32A11104D31E009445BF /* PBXTextBookmark */ = 6BCF32A11104D31E009445BF /* PBXTextBookmark */; + 6BCF32A21104D31E009445BF /* PBXTextBookmark */ = 6BCF32A21104D31E009445BF /* PBXTextBookmark */; + 6BCF32A31104D31E009445BF /* PBXTextBookmark */ = 6BCF32A31104D31E009445BF /* PBXTextBookmark */; + 6BCF32A41104D31E009445BF /* PBXTextBookmark */ = 6BCF32A41104D31E009445BF /* PBXTextBookmark */; + 6BCF32A51104D31E009445BF /* PBXTextBookmark */ = 6BCF32A51104D31E009445BF /* PBXTextBookmark */; + 6BCF32A61104D31E009445BF /* PBXTextBookmark */ = 6BCF32A61104D31E009445BF /* PBXTextBookmark */; + 6BCF32A71104D31E009445BF /* PBXTextBookmark */ = 6BCF32A71104D31E009445BF /* PBXTextBookmark */; + 6BCF32A81104D31E009445BF /* PBXTextBookmark */ = 6BCF32A81104D31E009445BF /* PBXTextBookmark */; + 6BCF32AF1104D3E5009445BF /* PBXTextBookmark */ = 6BCF32AF1104D3E5009445BF /* PBXTextBookmark */; + 6BCF32B01104D3E5009445BF /* PBXTextBookmark */ = 6BCF32B01104D3E5009445BF /* PBXTextBookmark */; + 6BCF32B11104D3E5009445BF /* PBXTextBookmark */ = 6BCF32B11104D3E5009445BF /* PBXTextBookmark */; + 6BCF32B21104D3E5009445BF /* PBXTextBookmark */ = 6BCF32B21104D3E5009445BF /* PBXTextBookmark */; + 6BCF32B31104D3E5009445BF /* PBXTextBookmark */ = 6BCF32B31104D3E5009445BF /* PBXTextBookmark */; + 6BCF32B41104D3E5009445BF /* PBXTextBookmark */ = 6BCF32B41104D3E5009445BF /* PBXTextBookmark */; + 6BCF32B51104D3E5009445BF /* PBXTextBookmark */ = 6BCF32B51104D3E5009445BF /* PBXTextBookmark */; + 6BCF32B61104D3E5009445BF /* PBXTextBookmark */ = 6BCF32B61104D3E5009445BF /* PBXTextBookmark */; + 6BCF32BA1104D405009445BF /* PBXTextBookmark */ = 6BCF32BA1104D405009445BF /* PBXTextBookmark */; + 6BCF32C11104D678009445BF /* PBXTextBookmark */ = 6BCF32C11104D678009445BF /* PBXTextBookmark */; + 6BCF32C21104D678009445BF /* PBXTextBookmark */ = 6BCF32C21104D678009445BF /* PBXTextBookmark */; + 6BCF32C31104D678009445BF /* PBXTextBookmark */ = 6BCF32C31104D678009445BF /* PBXTextBookmark */; + 6BCF32C41104D678009445BF /* PBXTextBookmark */ = 6BCF32C41104D678009445BF /* PBXTextBookmark */; + 6BCF32C51104D678009445BF /* PBXTextBookmark */ = 6BCF32C51104D678009445BF /* PBXTextBookmark */; + 6BCF32C61104D678009445BF /* PBXTextBookmark */ = 6BCF32C61104D678009445BF /* PBXTextBookmark */; + 6BCF32C71104D678009445BF /* PBXTextBookmark */ = 6BCF32C71104D678009445BF /* PBXTextBookmark */; + 6BCF32C91104D6F4009445BF /* PBXTextBookmark */ = 6BCF32C91104D6F4009445BF /* PBXTextBookmark */; + 6BCF32CA1104D6F4009445BF /* PBXTextBookmark */ = 6BCF32CA1104D6F4009445BF /* PBXTextBookmark */; + 6BCF32CB1104D6F4009445BF /* PBXTextBookmark */ = 6BCF32CB1104D6F4009445BF /* PBXTextBookmark */; + 6BCF32CC1104D6F4009445BF /* PBXTextBookmark */ = 6BCF32CC1104D6F4009445BF /* PBXTextBookmark */; + 6BCF32CD1104D6F4009445BF /* PBXTextBookmark */ = 6BCF32CD1104D6F4009445BF /* PBXTextBookmark */; + 6BCF32D11104D728009445BF /* PBXTextBookmark */ = 6BCF32D11104D728009445BF /* PBXTextBookmark */; + 6BCF32D21104D728009445BF /* PBXTextBookmark */ = 6BCF32D21104D728009445BF /* PBXTextBookmark */; + 6BCF32D31104D728009445BF /* PBXTextBookmark */ = 6BCF32D31104D728009445BF /* PBXTextBookmark */; + 6BCF32D41104D728009445BF /* PBXTextBookmark */ = 6BCF32D41104D728009445BF /* PBXTextBookmark */; + 6BCF32D51104D728009445BF /* PBXTextBookmark */ = 6BCF32D51104D728009445BF /* PBXTextBookmark */; + 6BCF32D61104D728009445BF /* PBXTextBookmark */ = 6BCF32D61104D728009445BF /* PBXTextBookmark */; + 6BCF32D81104D760009445BF /* PBXTextBookmark */ = 6BCF32D81104D760009445BF /* PBXTextBookmark */; + 6BCF32D91104D760009445BF /* PBXTextBookmark */ = 6BCF32D91104D760009445BF /* PBXTextBookmark */; + 6BCF32DA1104D760009445BF /* PBXTextBookmark */ = 6BCF32DA1104D760009445BF /* PBXTextBookmark */; + 6BCF32DB1104D760009445BF /* PBXTextBookmark */ = 6BCF32DB1104D760009445BF /* PBXTextBookmark */; + 6BCF32DD1104D79B009445BF /* PBXTextBookmark */ = 6BCF32DD1104D79B009445BF /* PBXTextBookmark */; + 6BCF32DE1104D79B009445BF /* PBXTextBookmark */ = 6BCF32DE1104D79B009445BF /* PBXTextBookmark */; + 6BCF32DF1104D79B009445BF /* PBXTextBookmark */ = 6BCF32DF1104D79B009445BF /* PBXTextBookmark */; + 6BCF32E01104D79B009445BF /* PBXTextBookmark */ = 6BCF32E01104D79B009445BF /* PBXTextBookmark */; + 6BCF32E11104D79B009445BF /* PBXTextBookmark */ = 6BCF32E11104D79B009445BF /* PBXTextBookmark */; + 6BCF32E21104D79B009445BF /* PBXTextBookmark */ = 6BCF32E21104D79B009445BF /* PBXTextBookmark */; + 6BCF32E31104D79B009445BF /* PBXTextBookmark */ = 6BCF32E31104D79B009445BF /* PBXTextBookmark */; + 6BCF32E51104D7A9009445BF /* PBXTextBookmark */ = 6BCF32E51104D7A9009445BF /* PBXTextBookmark */; + 6BCF32E71104D7F5009445BF /* PBXTextBookmark */ = 6BCF32E71104D7F5009445BF /* PBXTextBookmark */; + 6BCF32E81104D7F5009445BF /* PBXTextBookmark */ = 6BCF32E81104D7F5009445BF /* PBXTextBookmark */; + 6BCF32E91104D7F5009445BF /* PBXTextBookmark */ = 6BCF32E91104D7F5009445BF /* PBXTextBookmark */; + 6BCF32EA1104D7F5009445BF /* PBXTextBookmark */ = 6BCF32EA1104D7F5009445BF /* PBXTextBookmark */; + 6BCF32EB1104D7F5009445BF /* PBXTextBookmark */ = 6BCF32EB1104D7F5009445BF /* PBXTextBookmark */; + 6BCF32EC1104D7F5009445BF /* PBXTextBookmark */ = 6BCF32EC1104D7F5009445BF /* PBXTextBookmark */; + 6BCF32ED1104D7F5009445BF /* PBXTextBookmark */ = 6BCF32ED1104D7F5009445BF /* PBXTextBookmark */; + 6BCF32EE1104D7F5009445BF /* PBXTextBookmark */ = 6BCF32EE1104D7F5009445BF /* PBXTextBookmark */; + 6BCF32EF1104D7F5009445BF /* PBXTextBookmark */ = 6BCF32EF1104D7F5009445BF /* PBXTextBookmark */; + 6BCF32F31104D815009445BF /* PBXTextBookmark */ = 6BCF32F31104D815009445BF /* PBXTextBookmark */; + 6BCF32F41104D815009445BF /* PBXTextBookmark */ = 6BCF32F41104D815009445BF /* PBXTextBookmark */; + 6BCF32F51104D815009445BF /* PBXTextBookmark */ = 6BCF32F51104D815009445BF /* PBXTextBookmark */; + 6BCF32F61104D815009445BF /* PBXTextBookmark */ = 6BCF32F61104D815009445BF /* PBXTextBookmark */; + 6BCF32F71104D827009445BF /* PBXTextBookmark */ = 6BCF32F71104D827009445BF /* PBXTextBookmark */; + 6BCF32FE1104D891009445BF /* PBXTextBookmark */ = 6BCF32FE1104D891009445BF /* PBXTextBookmark */; + 6BCF32FF1104D891009445BF /* PBXTextBookmark */ = 6BCF32FF1104D891009445BF /* PBXTextBookmark */; + 6BCF33001104D891009445BF /* PBXTextBookmark */ = 6BCF33001104D891009445BF /* PBXTextBookmark */; + 6BCF33011104D891009445BF /* PBXTextBookmark */ = 6BCF33011104D891009445BF /* PBXTextBookmark */; + 6BCF33021104D891009445BF /* PBXTextBookmark */ = 6BCF33021104D891009445BF /* PBXTextBookmark */; + 6BCF33031104D891009445BF /* PBXTextBookmark */ = 6BCF33031104D891009445BF /* PBXTextBookmark */; + 6BCF33041104D891009445BF /* PBXTextBookmark */ = 6BCF33041104D891009445BF /* PBXTextBookmark */; + 6BCF33051104D891009445BF /* PBXTextBookmark */ = 6BCF33051104D891009445BF /* PBXTextBookmark */; + 6BCF33061104D891009445BF /* PBXTextBookmark */ = 6BCF33061104D891009445BF /* PBXTextBookmark */; + 6BCF33071104D891009445BF /* PBXTextBookmark */ = 6BCF33071104D891009445BF /* PBXTextBookmark */; + 6BCF330A11059D07009445BF /* PBXTextBookmark */ = 6BCF330A11059D07009445BF /* PBXTextBookmark */; + 6BCF330B11059D07009445BF /* PBXTextBookmark */ = 6BCF330B11059D07009445BF /* PBXTextBookmark */; + 6BCF330C11059D07009445BF /* PBXTextBookmark */ = 6BCF330C11059D07009445BF /* PBXTextBookmark */; + 6BCF330D11059D07009445BF /* PBXTextBookmark */ = 6BCF330D11059D07009445BF /* PBXTextBookmark */; + 6BCF331011059D21009445BF /* PBXTextBookmark */ = 6BCF331011059D21009445BF /* PBXTextBookmark */; + 6BCF331411059D39009445BF /* PBXTextBookmark */ = 6BCF331411059D39009445BF /* PBXTextBookmark */; + 6BCF331511059D39009445BF /* PBXTextBookmark */ = 6BCF331511059D39009445BF /* PBXTextBookmark */; + 6BCF331611059D39009445BF /* PBXTextBookmark */ = 6BCF331611059D39009445BF /* PBXTextBookmark */; + 6BCF331711059D39009445BF /* PBXTextBookmark */ = 6BCF331711059D39009445BF /* PBXTextBookmark */; + 6BCF331811059E23009445BF /* PBXTextBookmark */ = 6BCF331811059E23009445BF /* PBXTextBookmark */; + 6BCF331911059E23009445BF /* PBXTextBookmark */ = 6BCF331911059E23009445BF /* PBXTextBookmark */; + 6BCF331A11059E23009445BF /* PBXTextBookmark */ = 6BCF331A11059E23009445BF /* PBXTextBookmark */; + 6BCF331B11059E23009445BF /* PBXTextBookmark */ = 6BCF331B11059E23009445BF /* PBXTextBookmark */; + 6BCF331C11059E23009445BF /* PBXTextBookmark */ = 6BCF331C11059E23009445BF /* PBXTextBookmark */; + 6BCF331D11059E23009445BF /* PBXTextBookmark */ = 6BCF331D11059E23009445BF /* PBXTextBookmark */; + 6BCF331E11059E23009445BF /* PBXTextBookmark */ = 6BCF331E11059E23009445BF /* PBXTextBookmark */; + 6BCF331F11059E23009445BF /* PBXTextBookmark */ = 6BCF331F11059E23009445BF /* PBXTextBookmark */; + 6BCF332011059E23009445BF /* PBXTextBookmark */ = 6BCF332011059E23009445BF /* PBXTextBookmark */; + 6BCF332111059E80009445BF /* PBXTextBookmark */ = 6BCF332111059E80009445BF /* PBXTextBookmark */; + 6BCF332411059EA9009445BF /* PBXTextBookmark */ = 6BCF332411059EA9009445BF /* PBXTextBookmark */; + 6BCF332511059EA9009445BF /* PBXTextBookmark */ = 6BCF332511059EA9009445BF /* PBXTextBookmark */; + 6BCF332611059EA9009445BF /* PBXTextBookmark */ = 6BCF332611059EA9009445BF /* PBXTextBookmark */; + 6BCF332711059EA9009445BF /* PBXTextBookmark */ = 6BCF332711059EA9009445BF /* PBXTextBookmark */; + 6BCF332A1105A59B009445BF /* PBXTextBookmark */ = 6BCF332A1105A59B009445BF /* PBXTextBookmark */; + 6BCF332B1105A59B009445BF /* PBXTextBookmark */ = 6BCF332B1105A59B009445BF /* PBXTextBookmark */; + 6BCF332C1105A59B009445BF /* PBXTextBookmark */ = 6BCF332C1105A59B009445BF /* PBXTextBookmark */; + 6BCF332D1105A59B009445BF /* PBXTextBookmark */ = 6BCF332D1105A59B009445BF /* PBXTextBookmark */; + 6BCF33331105B2B5009445BF /* PBXTextBookmark */ = 6BCF33331105B2B5009445BF /* PBXTextBookmark */; + 6BCF33341105B2B5009445BF /* PBXTextBookmark */ = 6BCF33341105B2B5009445BF /* PBXTextBookmark */; + 6BCF33351105B2B5009445BF /* PBXTextBookmark */ = 6BCF33351105B2B5009445BF /* PBXTextBookmark */; + 6BCF33361105B2B5009445BF /* PBXTextBookmark */ = 6BCF33361105B2B5009445BF /* PBXTextBookmark */; + 6BCF33371105B2B5009445BF /* PBXTextBookmark */ = 6BCF33371105B2B5009445BF /* PBXTextBookmark */; + 6BCF33381105B2B5009445BF /* PBXTextBookmark */ = 6BCF33381105B2B5009445BF /* PBXTextBookmark */; + 6BCF33391105B2B5009445BF /* PBXTextBookmark */ = 6BCF33391105B2B5009445BF /* PBXTextBookmark */; + 6BCF333A1105B2B5009445BF /* PBXTextBookmark */ = 6BCF333A1105B2B5009445BF /* PBXTextBookmark */; + 6BCF333C1105B2E2009445BF /* PBXTextBookmark */ = 6BCF333C1105B2E2009445BF /* PBXTextBookmark */; + 6BCF333E1105B301009445BF /* PBXTextBookmark */ = 6BCF333E1105B301009445BF /* PBXTextBookmark */; + 6BCF33401105B318009445BF /* PBXTextBookmark */ = 6BCF33401105B318009445BF /* PBXTextBookmark */; + 6BCF33421105B335009445BF /* PBXTextBookmark */ = 6BCF33421105B335009445BF /* PBXTextBookmark */; + 6BCF33441105B3D2009445BF /* PBXTextBookmark */ = 6BCF33441105B3D2009445BF /* PBXTextBookmark */; + 6BCF33461105B440009445BF /* PBXTextBookmark */ = 6BCF33461105B440009445BF /* PBXTextBookmark */; + 6BCF334A1105B7BD009445BF /* PBXTextBookmark */ = 6BCF334A1105B7BD009445BF /* PBXTextBookmark */; + 6BCF334C1105B85A009445BF /* PBXTextBookmark */ = 6BCF334C1105B85A009445BF /* PBXTextBookmark */; + 6BCF334E1105B8AA009445BF /* PBXTextBookmark */ = 6BCF334E1105B8AA009445BF /* PBXTextBookmark */; + 6BCF33511105B986009445BF /* PBXTextBookmark */ = 6BCF33511105B986009445BF /* PBXTextBookmark */; + 6BCF33521105B986009445BF /* PBXTextBookmark */ = 6BCF33521105B986009445BF /* PBXTextBookmark */; + 6BCF33531105B986009445BF /* PBXTextBookmark */ = 6BCF33531105B986009445BF /* PBXTextBookmark */; + 6BCF33541105B986009445BF /* PBXTextBookmark */ = 6BCF33541105B986009445BF /* PBXTextBookmark */; + 6BCF33551105B986009445BF /* PBXTextBookmark */ = 6BCF33551105B986009445BF /* PBXTextBookmark */; + 6BCF33561105B986009445BF /* PBXTextBookmark */ = 6BCF33561105B986009445BF /* PBXTextBookmark */; + 6BCF33571105B986009445BF /* PBXTextBookmark */ = 6BCF33571105B986009445BF /* PBXTextBookmark */; + 6BCF33581105B986009445BF /* PBXTextBookmark */ = 6BCF33581105B986009445BF /* PBXTextBookmark */; + 6BCF33591105B986009445BF /* PBXTextBookmark */ = 6BCF33591105B986009445BF /* PBXTextBookmark */; + 6BCF335A1105B986009445BF /* PBXTextBookmark */ = 6BCF335A1105B986009445BF /* PBXTextBookmark */; + 6BCF335B1105B986009445BF /* PBXTextBookmark */ = 6BCF335B1105B986009445BF /* PBXTextBookmark */; + 6BCF33651105BBA2009445BF /* PBXTextBookmark */ = 6BCF33651105BBA2009445BF /* PBXTextBookmark */; + 6BCF33661105BBA2009445BF /* PBXTextBookmark */ = 6BCF33661105BBA2009445BF /* PBXTextBookmark */; + 6BCF33671105BBA2009445BF /* PBXTextBookmark */ = 6BCF33671105BBA2009445BF /* PBXTextBookmark */; + 6BCF33681105BBA2009445BF /* PBXTextBookmark */ = 6BCF33681105BBA2009445BF /* PBXTextBookmark */; + 6BCF33691105BBA2009445BF /* PBXTextBookmark */ = 6BCF33691105BBA2009445BF /* PBXTextBookmark */; + 6BCF336A1105BBA2009445BF /* PBXTextBookmark */ = 6BCF336A1105BBA2009445BF /* PBXTextBookmark */; + 6BCF336B1105BBA2009445BF /* PBXTextBookmark */ = 6BCF336B1105BBA2009445BF /* PBXTextBookmark */; + 6BCF336C1105BBA2009445BF /* PBXTextBookmark */ = 6BCF336C1105BBA2009445BF /* PBXTextBookmark */; + 6BCF336D1105BBA2009445BF /* PBXTextBookmark */ = 6BCF336D1105BBA2009445BF /* PBXTextBookmark */; + 6BCF336E1105BBA2009445BF /* PBXTextBookmark */ = 6BCF336E1105BBA2009445BF /* PBXTextBookmark */; + 6BCF336F1105BBA2009445BF /* PBXTextBookmark */ = 6BCF336F1105BBA2009445BF /* PBXTextBookmark */; + 6BCF33701105BBA2009445BF /* PBXTextBookmark */ = 6BCF33701105BBA2009445BF /* PBXTextBookmark */; + 6BCF33711105BBA2009445BF /* PBXTextBookmark */ = 6BCF33711105BBA2009445BF /* PBXTextBookmark */; + 6BCF33721105BBA2009445BF /* PBXTextBookmark */ = 6BCF33721105BBA2009445BF /* PBXTextBookmark */; + 6BCF33731105BBA2009445BF /* PBXTextBookmark */ = 6BCF33731105BBA2009445BF /* PBXTextBookmark */; + 6BCF33741105BBA2009445BF /* PBXTextBookmark */ = 6BCF33741105BBA2009445BF /* PBXTextBookmark */; + 6BCF33751105BBA2009445BF /* PBXTextBookmark */ = 6BCF33751105BBA2009445BF /* PBXTextBookmark */; + 6BCF33761105BBA2009445BF /* PBXTextBookmark */ = 6BCF33761105BBA2009445BF /* PBXTextBookmark */; + 6BCF33771105BBA2009445BF /* PBXTextBookmark */ = 6BCF33771105BBA2009445BF /* PBXTextBookmark */; + 6BCF33781105BBA2009445BF /* PBXTextBookmark */ = 6BCF33781105BBA2009445BF /* PBXTextBookmark */; + 6BCF33791105BBA2009445BF /* PBXTextBookmark */ = 6BCF33791105BBA2009445BF /* PBXTextBookmark */; + 6BCF337A1105BBA2009445BF /* PBXTextBookmark */ = 6BCF337A1105BBA2009445BF /* PBXTextBookmark */; + 6BCF337B1105BBA2009445BF /* PBXTextBookmark */ = 6BCF337B1105BBA2009445BF /* PBXTextBookmark */; + 6BCF337C1105BBA2009445BF /* PBXTextBookmark */ = 6BCF337C1105BBA2009445BF /* PBXTextBookmark */; + 6BCF337D1105BBA2009445BF /* PBXTextBookmark */ = 6BCF337D1105BBA2009445BF /* PBXTextBookmark */; + 6BCF337E1105BBA2009445BF /* PBXTextBookmark */ = 6BCF337E1105BBA2009445BF /* PBXTextBookmark */; + 6BCF337F1105BBA2009445BF /* PBXTextBookmark */ = 6BCF337F1105BBA2009445BF /* PBXTextBookmark */; + 6BCF33801105BBA2009445BF /* PBXTextBookmark */ = 6BCF33801105BBA2009445BF /* PBXTextBookmark */; + 6BCF33811105BBA2009445BF /* PBXTextBookmark */ = 6BCF33811105BBA2009445BF /* PBXTextBookmark */; + 6BCF33821105BBA2009445BF /* PBXTextBookmark */ = 6BCF33821105BBA2009445BF /* PBXTextBookmark */; + 6BCF33831105BBA2009445BF /* PBXTextBookmark */ = 6BCF33831105BBA2009445BF /* PBXTextBookmark */; + 6BCF33861105BBC8009445BF /* PBXTextBookmark */ = 6BCF33861105BBC8009445BF /* PBXTextBookmark */; + 6BCF33871105BBC8009445BF /* PBXTextBookmark */ = 6BCF33871105BBC8009445BF /* PBXTextBookmark */; + 6BCF33881105BBC8009445BF /* PBXTextBookmark */ = 6BCF33881105BBC8009445BF /* PBXTextBookmark */; + 6BCF33891105BBC8009445BF /* PBXTextBookmark */ = 6BCF33891105BBC8009445BF /* PBXTextBookmark */; + 6BCF338C1105BCB7009445BF /* PBXTextBookmark */ = 6BCF338C1105BCB7009445BF /* PBXTextBookmark */; + 6BCF338D1105BCB7009445BF /* PBXTextBookmark */ = 6BCF338D1105BCB7009445BF /* PBXTextBookmark */; + 6BCF338E1105BCB7009445BF /* PBXTextBookmark */ = 6BCF338E1105BCB7009445BF /* PBXTextBookmark */; + 6BCF338F1105BCB7009445BF /* PBXTextBookmark */ = 6BCF338F1105BCB7009445BF /* PBXTextBookmark */; + 6BCF33901105BCB7009445BF /* PBXTextBookmark */ = 6BCF33901105BCB7009445BF /* PBXTextBookmark */; + 6BCF33941105BD0E009445BF /* PBXTextBookmark */ = 6BCF33941105BD0E009445BF /* PBXTextBookmark */; + 6BCF33951105BD0E009445BF /* PBXTextBookmark */ = 6BCF33951105BD0E009445BF /* PBXTextBookmark */; + 6BCF33961105BD0E009445BF /* PBXTextBookmark */ = 6BCF33961105BD0E009445BF /* PBXTextBookmark */; + 6BCF33971105BD0E009445BF /* PBXTextBookmark */ = 6BCF33971105BD0E009445BF /* PBXTextBookmark */; + 6BCF33981105BD0E009445BF /* PBXTextBookmark */ = 6BCF33981105BD0E009445BF /* PBXTextBookmark */; + 6BCF33991105BD0E009445BF /* PBXTextBookmark */ = 6BCF33991105BD0E009445BF /* PBXTextBookmark */; + 6BCF339A1105BD0E009445BF /* PBXTextBookmark */ = 6BCF339A1105BD0E009445BF /* PBXTextBookmark */; + 6BCF339B1105BD0E009445BF /* PBXTextBookmark */ = 6BCF339B1105BD0E009445BF /* PBXTextBookmark */; + 6BCF339C1105BD0E009445BF /* PBXTextBookmark */ = 6BCF339C1105BD0E009445BF /* PBXTextBookmark */; + 6BCF339D1105BD0E009445BF /* PBXTextBookmark */ = 6BCF339D1105BD0E009445BF /* PBXTextBookmark */; + 6BCF339E1105BD0E009445BF /* PBXTextBookmark */ = 6BCF339E1105BD0E009445BF /* PBXTextBookmark */; + 6BCF339F1105BD0E009445BF /* PBXTextBookmark */ = 6BCF339F1105BD0E009445BF /* PBXTextBookmark */; + 6BCF33A01105BD0E009445BF /* PBXTextBookmark */ = 6BCF33A01105BD0E009445BF /* PBXTextBookmark */; + 6BCF33A21105BD41009445BF /* PBXTextBookmark */ = 6BCF33A21105BD41009445BF /* PBXTextBookmark */; + 6BCF33A31105BD41009445BF /* PBXTextBookmark */ = 6BCF33A31105BD41009445BF /* PBXTextBookmark */; + 6BCF33A41105BD41009445BF /* PBXTextBookmark */ = 6BCF33A41105BD41009445BF /* PBXTextBookmark */; + 6BCF33A51105BD41009445BF /* PBXTextBookmark */ = 6BCF33A51105BD41009445BF /* PBXTextBookmark */; + 6BCF33A71105BDAD009445BF /* PBXTextBookmark */ = 6BCF33A71105BDAD009445BF /* PBXTextBookmark */; + 6BCF33A81105BDAD009445BF /* PBXTextBookmark */ = 6BCF33A81105BDAD009445BF /* PBXTextBookmark */; + 6BCF33A91105BDAD009445BF /* PBXTextBookmark */ = 6BCF33A91105BDAD009445BF /* PBXTextBookmark */; + 6BCF33AA1105BDAD009445BF /* PBXTextBookmark */ = 6BCF33AA1105BDAD009445BF /* PBXTextBookmark */; + 6BCF33AD1105BE51009445BF /* PBXTextBookmark */ = 6BCF33AD1105BE51009445BF /* PBXTextBookmark */; + 6BCF33AE1105BE51009445BF /* PBXTextBookmark */ = 6BCF33AE1105BE51009445BF /* PBXTextBookmark */; + 6BCF33AF1105BE51009445BF /* PBXTextBookmark */ = 6BCF33AF1105BE51009445BF /* PBXTextBookmark */; + 6BCF33B01105BE51009445BF /* PBXTextBookmark */ = 6BCF33B01105BE51009445BF /* PBXTextBookmark */; + 6BCF33B11105BE51009445BF /* PBXTextBookmark */ = 6BCF33B11105BE51009445BF /* PBXTextBookmark */; + 6BCF33B21105BE51009445BF /* PBXTextBookmark */ = 6BCF33B21105BE51009445BF /* PBXTextBookmark */; + 6BCF33B31105BE51009445BF /* PBXTextBookmark */ = 6BCF33B31105BE51009445BF /* PBXTextBookmark */; + 6BCF33B41105BE51009445BF /* PBXTextBookmark */ = 6BCF33B41105BE51009445BF /* PBXTextBookmark */; + 6BCF33B51105BE51009445BF /* PBXTextBookmark */ = 6BCF33B51105BE51009445BF /* PBXTextBookmark */; + 6BCF33B61105BE51009445BF /* PBXTextBookmark */ = 6BCF33B61105BE51009445BF /* PBXTextBookmark */; + 6BCF33B71105BE51009445BF /* PBXTextBookmark */ = 6BCF33B71105BE51009445BF /* PBXTextBookmark */; + 6BCF33BB1105BEE9009445BF /* PBXTextBookmark */ = 6BCF33BB1105BEE9009445BF /* PBXTextBookmark */; + 6BCF33BC1105BEE9009445BF /* PBXTextBookmark */ = 6BCF33BC1105BEE9009445BF /* PBXTextBookmark */; + 6BCF33BD1105BEE9009445BF /* PBXTextBookmark */ = 6BCF33BD1105BEE9009445BF /* PBXTextBookmark */; + 6BCF33BE1105BEE9009445BF /* PBXTextBookmark */ = 6BCF33BE1105BEE9009445BF /* PBXTextBookmark */; + 6BCF33C11105BF04009445BF /* PBXTextBookmark */ = 6BCF33C11105BF04009445BF /* PBXTextBookmark */; + 6BCF33C41105C466009445BF /* PBXTextBookmark */ = 6BCF33C41105C466009445BF /* PBXTextBookmark */; + 6BCF33C51105C466009445BF /* PBXTextBookmark */ = 6BCF33C51105C466009445BF /* PBXTextBookmark */; + 6BCF33C61105C466009445BF /* PBXTextBookmark */ = 6BCF33C61105C466009445BF /* PBXTextBookmark */; + 6BCF33C71105C466009445BF /* PBXTextBookmark */ = 6BCF33C71105C466009445BF /* PBXTextBookmark */; + 6BCF33C81105C466009445BF /* PBXTextBookmark */ = 6BCF33C81105C466009445BF /* PBXTextBookmark */; + 6BCF33C91105C466009445BF /* PBXTextBookmark */ = 6BCF33C91105C466009445BF /* PBXTextBookmark */; + 6BCF33CA1105C466009445BF /* PBXTextBookmark */ = 6BCF33CA1105C466009445BF /* PBXTextBookmark */; + 6BCF33CB1105C466009445BF /* PBXTextBookmark */ = 6BCF33CB1105C466009445BF /* PBXTextBookmark */; + 6BCF33CD1105C4A2009445BF /* PBXTextBookmark */ = 6BCF33CD1105C4A2009445BF /* PBXTextBookmark */; + 6BCF33CF1105C51B009445BF /* PBXTextBookmark */ = 6BCF33CF1105C51B009445BF /* PBXTextBookmark */; + 6BCF33D11105C5EF009445BF /* PBXTextBookmark */ = 6BCF33D11105C5EF009445BF /* PBXTextBookmark */; + 6BCF33D21105C5EF009445BF /* PBXTextBookmark */ = 6BCF33D21105C5EF009445BF /* PBXTextBookmark */; + 6BCF33D31105C5EF009445BF /* PBXTextBookmark */ = 6BCF33D31105C5EF009445BF /* PBXTextBookmark */; + 6BCF33D41105C5EF009445BF /* PBXTextBookmark */ = 6BCF33D41105C5EF009445BF /* PBXTextBookmark */; + 6BCF33D51105C607009445BF /* PBXTextBookmark */ = 6BCF33D51105C607009445BF /* PBXTextBookmark */; + 6BCF33D81105C610009445BF /* PBXTextBookmark */ = 6BCF33D81105C610009445BF /* PBXTextBookmark */; + 6BCF33DA1105C61C009445BF /* PBXTextBookmark */ = 6BCF33DA1105C61C009445BF /* PBXTextBookmark */; + 6BCF33DC1105C64F009445BF /* PBXTextBookmark */ = 6BCF33DC1105C64F009445BF /* PBXTextBookmark */; + 6BCF33DE1105C67D009445BF /* PBXTextBookmark */ = 6BCF33DE1105C67D009445BF /* PBXTextBookmark */; + 6BCF33DF1105C6D1009445BF /* PBXTextBookmark */ = 6BCF33DF1105C6D1009445BF /* PBXTextBookmark */; + 6BCF33E01105E5BB009445BF /* PBXTextBookmark */ = 6BCF33E01105E5BB009445BF /* PBXTextBookmark */; + 6BCF33E11105E5BB009445BF /* PBXTextBookmark */ = 6BCF33E11105E5BB009445BF /* PBXTextBookmark */; + 6BCF33E21105E5BB009445BF /* PBXTextBookmark */ = 6BCF33E21105E5BB009445BF /* PBXTextBookmark */; + 6BCF33E31105E5BB009445BF /* PBXTextBookmark */ = 6BCF33E31105E5BB009445BF /* PBXTextBookmark */; + 6BCF33E41105E5BB009445BF /* PBXTextBookmark */ = 6BCF33E41105E5BB009445BF /* PBXTextBookmark */; + 6BCF33E51105E5BB009445BF /* PBXTextBookmark */ = 6BCF33E51105E5BB009445BF /* PBXTextBookmark */; + 6BCF33E61105E5BB009445BF /* PBXTextBookmark */ = 6BCF33E61105E5BB009445BF /* PBXTextBookmark */; + 6BCF33E71105E5BB009445BF /* PBXTextBookmark */ = 6BCF33E71105E5BB009445BF /* PBXTextBookmark */; + 6BCF33E81105E5BB009445BF /* PBXTextBookmark */ = 6BCF33E81105E5BB009445BF /* PBXTextBookmark */; + 6BCF33E91105E5BB009445BF /* PBXTextBookmark */ = 6BCF33E91105E5BB009445BF /* PBXTextBookmark */; + 6BCF33EA1105E5BB009445BF /* PBXTextBookmark */ = 6BCF33EA1105E5BB009445BF /* PBXTextBookmark */; + 6BCF33EB1105E5BB009445BF /* PBXTextBookmark */ = 6BCF33EB1105E5BB009445BF /* PBXTextBookmark */; + 6BCF33EC1105E5BB009445BF /* PBXTextBookmark */ = 6BCF33EC1105E5BB009445BF /* PBXTextBookmark */; + 6BCF33ED1105E5BB009445BF /* PBXTextBookmark */ = 6BCF33ED1105E5BB009445BF /* PBXTextBookmark */; + 6BCF33EE1105E5BB009445BF /* PBXTextBookmark */ = 6BCF33EE1105E5BB009445BF /* PBXTextBookmark */; + 6BCF33F01105E621009445BF /* PBXTextBookmark */ = 6BCF33F01105E621009445BF /* PBXTextBookmark */; + 6BCF33F11105E621009445BF /* PBXTextBookmark */ = 6BCF33F11105E621009445BF /* PBXTextBookmark */; + 6BCF33F21105E621009445BF /* PBXTextBookmark */ = 6BCF33F21105E621009445BF /* PBXTextBookmark */; + 6BCF33F31105E621009445BF /* PBXTextBookmark */ = 6BCF33F31105E621009445BF /* PBXTextBookmark */; + 6BCF33F51105E71B009445BF /* PBXTextBookmark */ = 6BCF33F51105E71B009445BF /* PBXTextBookmark */; + 6BCF33F61105E71B009445BF /* PBXTextBookmark */ = 6BCF33F61105E71B009445BF /* PBXTextBookmark */; + 6BCF33F71105E71B009445BF /* PBXTextBookmark */ = 6BCF33F71105E71B009445BF /* PBXTextBookmark */; + 6BCF33F81105E71B009445BF /* PBXTextBookmark */ = 6BCF33F81105E71B009445BF /* PBXTextBookmark */; + 6BCF33F91105E71B009445BF /* PBXTextBookmark */ = 6BCF33F91105E71B009445BF /* PBXTextBookmark */; + 6BCF33FA1105E71B009445BF /* PBXTextBookmark */ = 6BCF33FA1105E71B009445BF /* PBXTextBookmark */; + 6BCF33FB1105E71B009445BF /* PBXTextBookmark */ = 6BCF33FB1105E71B009445BF /* PBXTextBookmark */; + 6BCF33FC1105E71B009445BF /* PBXTextBookmark */ = 6BCF33FC1105E71B009445BF /* PBXTextBookmark */; + 6BCF33FE1105E795009445BF /* PBXTextBookmark */ = 6BCF33FE1105E795009445BF /* PBXTextBookmark */; + 6BCF34001105E83D009445BF /* PBXTextBookmark */ = 6BCF34001105E83D009445BF /* PBXTextBookmark */; + 6BCF34021105E98C009445BF /* PBXTextBookmark */ = 6BCF34021105E98C009445BF /* PBXTextBookmark */; + 6BCF34031105E98C009445BF /* PBXTextBookmark */ = 6BCF34031105E98C009445BF /* PBXTextBookmark */; + 6BCF34041105E98C009445BF /* PBXTextBookmark */ = 6BCF34041105E98C009445BF /* PBXTextBookmark */; + 6BCF34051105E98C009445BF /* PBXTextBookmark */ = 6BCF34051105E98C009445BF /* PBXTextBookmark */; + 6BCF34061105E98C009445BF /* PBXTextBookmark */ = 6BCF34061105E98C009445BF /* PBXTextBookmark */; + 6BCF34071105E98C009445BF /* PBXTextBookmark */ = 6BCF34071105E98C009445BF /* PBXTextBookmark */; + 6BCF34081105E98C009445BF /* PBXTextBookmark */ = 6BCF34081105E98C009445BF /* PBXTextBookmark */; + 6BCF34091105E98C009445BF /* PBXTextBookmark */ = 6BCF34091105E98C009445BF /* PBXTextBookmark */; + 6BCF340A1105E98C009445BF /* PBXTextBookmark */ = 6BCF340A1105E98C009445BF /* PBXTextBookmark */; + 6BCF340B1105E98C009445BF /* PBXTextBookmark */ = 6BCF340B1105E98C009445BF /* PBXTextBookmark */; + 6BCF340C1105E98C009445BF /* PBXTextBookmark */ = 6BCF340C1105E98C009445BF /* PBXTextBookmark */; + 6BCF340D1105E98C009445BF /* PBXTextBookmark */ = 6BCF340D1105E98C009445BF /* PBXTextBookmark */; + 6BCF340E1105E98C009445BF /* PBXTextBookmark */ = 6BCF340E1105E98C009445BF /* PBXTextBookmark */; + 6BCF340F1105E98C009445BF /* PBXTextBookmark */ = 6BCF340F1105E98C009445BF /* PBXTextBookmark */; + 6BCF34101105E98C009445BF /* PBXTextBookmark */ = 6BCF34101105E98C009445BF /* PBXTextBookmark */; + 6BCF34111105E98C009445BF /* PBXTextBookmark */ = 6BCF34111105E98C009445BF /* PBXTextBookmark */; + 6BCF34121105E98C009445BF /* PBXTextBookmark */ = 6BCF34121105E98C009445BF /* PBXTextBookmark */; + 6BCF34131105E98C009445BF /* PBXTextBookmark */ = 6BCF34131105E98C009445BF /* PBXTextBookmark */; + 6BCF34141105E98C009445BF /* PBXTextBookmark */ = 6BCF34141105E98C009445BF /* PBXTextBookmark */; + 6BCF34151105E98C009445BF /* PBXTextBookmark */ = 6BCF34151105E98C009445BF /* PBXTextBookmark */; + 6BCF341A1105EC43009445BF /* PBXTextBookmark */ = 6BCF341A1105EC43009445BF /* PBXTextBookmark */; + 6BCF341B1105EC43009445BF /* PBXTextBookmark */ = 6BCF341B1105EC43009445BF /* PBXTextBookmark */; + 6BCF341C1105EC43009445BF /* PBXTextBookmark */ = 6BCF341C1105EC43009445BF /* PBXTextBookmark */; + 6BCF341D1105EC43009445BF /* PBXTextBookmark */ = 6BCF341D1105EC43009445BF /* PBXTextBookmark */; + 6BCF341E1105EC43009445BF /* PBXTextBookmark */ = 6BCF341E1105EC43009445BF /* PBXTextBookmark */; + 6BCF341F1105EC43009445BF /* PBXTextBookmark */ = 6BCF341F1105EC43009445BF /* PBXTextBookmark */; + 6BCF34201105EC43009445BF /* PBXTextBookmark */ = 6BCF34201105EC43009445BF /* PBXTextBookmark */; + 6BCF34211105EC43009445BF /* PBXTextBookmark */ = 6BCF34211105EC43009445BF /* PBXTextBookmark */; + 6BCF34221105EC43009445BF /* PBXTextBookmark */ = 6BCF34221105EC43009445BF /* PBXTextBookmark */; + 6BCF34231105EC43009445BF /* PBXTextBookmark */ = 6BCF34231105EC43009445BF /* PBXTextBookmark */; + 6BCF34241105EC43009445BF /* PBXTextBookmark */ = 6BCF34241105EC43009445BF /* PBXTextBookmark */; + 6BCF34251105EC43009445BF /* PBXTextBookmark */ = 6BCF34251105EC43009445BF /* PBXTextBookmark */; + 6BCF34261105EC43009445BF /* PBXTextBookmark */ = 6BCF34261105EC43009445BF /* PBXTextBookmark */; + 6BCF34271105EC43009445BF /* PBXTextBookmark */ = 6BCF34271105EC43009445BF /* PBXTextBookmark */; + 6BCF34281105EC43009445BF /* PBXTextBookmark */ = 6BCF34281105EC43009445BF /* PBXTextBookmark */; + 6BCF34291105EC43009445BF /* PBXTextBookmark */ = 6BCF34291105EC43009445BF /* PBXTextBookmark */; + 6BCF342A1105EC43009445BF /* PBXTextBookmark */ = 6BCF342A1105EC43009445BF /* PBXTextBookmark */; + 6BCF342B1105EC43009445BF /* PBXTextBookmark */ = 6BCF342B1105EC43009445BF /* PBXTextBookmark */; + 6BCF342C1105EC43009445BF /* PBXTextBookmark */ = 6BCF342C1105EC43009445BF /* PBXTextBookmark */; + 6BCF342D1105EC43009445BF /* PBXTextBookmark */ = 6BCF342D1105EC43009445BF /* PBXTextBookmark */; + 6BCF342E1105EC43009445BF /* PBXTextBookmark */ = 6BCF342E1105EC43009445BF /* PBXTextBookmark */; + 6BCF342F1105EC43009445BF /* PBXTextBookmark */ = 6BCF342F1105EC43009445BF /* PBXTextBookmark */; + 6BCF34301105EC43009445BF /* PBXTextBookmark */ = 6BCF34301105EC43009445BF /* PBXTextBookmark */; + 6BCF34311105EC43009445BF /* PBXTextBookmark */ = 6BCF34311105EC43009445BF /* PBXTextBookmark */; + 6BCF34321105EC43009445BF /* PBXTextBookmark */ = 6BCF34321105EC43009445BF /* PBXTextBookmark */; + 6BCF34331105EC43009445BF /* PBXTextBookmark */ = 6BCF34331105EC43009445BF /* PBXTextBookmark */; + 6BCF34341105EC43009445BF /* PBXTextBookmark */ = 6BCF34341105EC43009445BF /* PBXTextBookmark */; + 6BCF34351105EC43009445BF /* PBXTextBookmark */ = 6BCF34351105EC43009445BF /* PBXTextBookmark */; + 6BCF34381105ECAB009445BF /* PBXTextBookmark */ = 6BCF34381105ECAB009445BF /* PBXTextBookmark */; + 6BCF34391105ECAB009445BF /* PBXTextBookmark */ = 6BCF34391105ECAB009445BF /* PBXTextBookmark */; + 6BCF343A1105ECAB009445BF /* PBXTextBookmark */ = 6BCF343A1105ECAB009445BF /* PBXTextBookmark */; + 6BCF343B1105ECAB009445BF /* PBXTextBookmark */ = 6BCF343B1105ECAB009445BF /* PBXTextBookmark */; + 6BCF343C1105ECAB009445BF /* PBXTextBookmark */ = 6BCF343C1105ECAB009445BF /* PBXTextBookmark */; + 6BCF343D1105ECAB009445BF /* PBXTextBookmark */ = 6BCF343D1105ECAB009445BF /* PBXTextBookmark */; + 6BCF343E1105ECAB009445BF /* PBXTextBookmark */ = 6BCF343E1105ECAB009445BF /* PBXTextBookmark */; + 6BCF343F1105ECAB009445BF /* PBXTextBookmark */ = 6BCF343F1105ECAB009445BF /* PBXTextBookmark */; + 6BCF34401105ECAB009445BF /* PBXTextBookmark */ = 6BCF34401105ECAB009445BF /* PBXTextBookmark */; + 6BCF34411105ECAB009445BF /* PBXTextBookmark */ = 6BCF34411105ECAB009445BF /* PBXTextBookmark */; + 6BCF34441105ECEB009445BF /* PBXTextBookmark */ = 6BCF34441105ECEB009445BF /* PBXTextBookmark */; + 6BCF34451105ECEB009445BF /* PBXTextBookmark */ = 6BCF34451105ECEB009445BF /* PBXTextBookmark */; + 6BCF34461105ECEB009445BF /* PBXTextBookmark */ = 6BCF34461105ECEB009445BF /* PBXTextBookmark */; + 6BCF34471105ECEB009445BF /* PBXTextBookmark */ = 6BCF34471105ECEB009445BF /* PBXTextBookmark */; + 6BCF34481105ED03009445BF /* PBXTextBookmark */ = 6BCF34481105ED03009445BF /* PBXTextBookmark */; + 6BCF34491105ED03009445BF /* PBXTextBookmark */ = 6BCF34491105ED03009445BF /* PBXTextBookmark */; + 6BCF344A1105ED03009445BF /* PBXTextBookmark */ = 6BCF344A1105ED03009445BF /* PBXTextBookmark */; + 6BCF344B1105ED03009445BF /* PBXTextBookmark */ = 6BCF344B1105ED03009445BF /* PBXTextBookmark */; + 6BCF344F1105ED0C009445BF /* PBXTextBookmark */ = 6BCF344F1105ED0C009445BF /* PBXTextBookmark */; + 6BCF34511105EE74009445BF /* PBXTextBookmark */ = 6BCF34511105EE74009445BF /* PBXTextBookmark */; + 6BCF34521105EE74009445BF /* PBXTextBookmark */ = 6BCF34521105EE74009445BF /* PBXTextBookmark */; + 6BCF34531105EE74009445BF /* PBXTextBookmark */ = 6BCF34531105EE74009445BF /* PBXTextBookmark */; + 6BCF34541105EE74009445BF /* PBXTextBookmark */ = 6BCF34541105EE74009445BF /* PBXTextBookmark */; + 6BCF34561105EE81009445BF /* PBXTextBookmark */ = 6BCF34561105EE81009445BF /* PBXTextBookmark */; + 6BCF34571105EE81009445BF /* PBXTextBookmark */ = 6BCF34571105EE81009445BF /* PBXTextBookmark */; + 6BCF34581105EE81009445BF /* PBXTextBookmark */ = 6BCF34581105EE81009445BF /* PBXTextBookmark */; + 6BCF34591105EE81009445BF /* PBXTextBookmark */ = 6BCF34591105EE81009445BF /* PBXTextBookmark */; + 6BCF345A1105EE81009445BF /* PBXTextBookmark */ = 6BCF345A1105EE81009445BF /* PBXTextBookmark */; + 6BCF345C1105EE87009445BF /* PBXTextBookmark */ = 6BCF345C1105EE87009445BF /* PBXTextBookmark */; + 6BCF345D1105EEA7009445BF /* PBXTextBookmark */ = 6BCF345D1105EEA7009445BF /* PBXTextBookmark */; + 6BCF345E1105EEA7009445BF /* PBXTextBookmark */ = 6BCF345E1105EEA7009445BF /* PBXTextBookmark */; + 6BCF345F1105EEA7009445BF /* PBXTextBookmark */ = 6BCF345F1105EEA7009445BF /* PBXTextBookmark */; + 6BCF34601105EEA7009445BF /* PBXTextBookmark */ = 6BCF34601105EEA7009445BF /* PBXTextBookmark */; + 6BCF34631105EECD009445BF /* PBXTextBookmark */ = 6BCF34631105EECD009445BF /* PBXTextBookmark */; + 6BCF34641105EF1F009445BF /* PBXTextBookmark */ = 6BCF34641105EF1F009445BF /* PBXTextBookmark */; + 6BCF34651105EF1F009445BF /* PBXTextBookmark */ = 6BCF34651105EF1F009445BF /* PBXTextBookmark */; + 6BCF34661105EF1F009445BF /* PBXTextBookmark */ = 6BCF34661105EF1F009445BF /* PBXTextBookmark */; + 6BCF34671105EF1F009445BF /* PBXTextBookmark */ = 6BCF34671105EF1F009445BF /* PBXTextBookmark */; + 6BCF34691105EF2D009445BF /* PBXTextBookmark */ = 6BCF34691105EF2D009445BF /* PBXTextBookmark */; + 6BCF346A1105EF2D009445BF /* PBXTextBookmark */ = 6BCF346A1105EF2D009445BF /* PBXTextBookmark */; + 6BCF346B1105EF2D009445BF /* PBXTextBookmark */ = 6BCF346B1105EF2D009445BF /* PBXTextBookmark */; + 6BCF346C1105EF2D009445BF /* PBXTextBookmark */ = 6BCF346C1105EF2D009445BF /* PBXTextBookmark */; + 6BCF346D1105EF2D009445BF /* PBXTextBookmark */ = 6BCF346D1105EF2D009445BF /* PBXTextBookmark */; + 6BCF346F1105F422009445BF /* PBXTextBookmark */ = 6BCF346F1105F422009445BF /* PBXTextBookmark */; + 6BCF34711105F503009445BF /* PBXTextBookmark */ = 6BCF34711105F503009445BF /* PBXTextBookmark */; + 6BCF34721105F503009445BF /* PBXTextBookmark */ = 6BCF34721105F503009445BF /* PBXTextBookmark */; + 6BCF34731105F503009445BF /* PBXTextBookmark */ = 6BCF34731105F503009445BF /* PBXTextBookmark */; + 6BCF34741105F503009445BF /* PBXTextBookmark */ = 6BCF34741105F503009445BF /* PBXTextBookmark */; + 6BCF34751105F503009445BF /* PBXTextBookmark */ = 6BCF34751105F503009445BF /* PBXTextBookmark */; + 6BCF34761105F503009445BF /* PBXTextBookmark */ = 6BCF34761105F503009445BF /* PBXTextBookmark */; + 6BCF34771105F503009445BF /* PBXTextBookmark */ = 6BCF34771105F503009445BF /* PBXTextBookmark */; + 6BCF34781105F503009445BF /* PBXTextBookmark */ = 6BCF34781105F503009445BF /* PBXTextBookmark */; + 6BCF347A1105F519009445BF /* PBXTextBookmark */ = 6BCF347A1105F519009445BF /* PBXTextBookmark */; + 6BCF347B1105F519009445BF /* PBXTextBookmark */ = 6BCF347B1105F519009445BF /* PBXTextBookmark */; + 6BCF347C1105F519009445BF /* PBXTextBookmark */ = 6BCF347C1105F519009445BF /* PBXTextBookmark */; + 6BCF347D1105F519009445BF /* PBXTextBookmark */ = 6BCF347D1105F519009445BF /* PBXTextBookmark */; + 6BCF347E1105F519009445BF /* PBXTextBookmark */ = 6BCF347E1105F519009445BF /* PBXTextBookmark */; + 6BCF347F1105F519009445BF /* PBXTextBookmark */ = 6BCF347F1105F519009445BF /* PBXTextBookmark */; + 6BCF34821105F555009445BF /* PBXTextBookmark */ = 6BCF34821105F555009445BF /* PBXTextBookmark */; + 6BCF34831105F555009445BF /* PBXTextBookmark */ = 6BCF34831105F555009445BF /* PBXTextBookmark */; + 6BCF34841105F555009445BF /* PBXTextBookmark */ = 6BCF34841105F555009445BF /* PBXTextBookmark */; + 6BCF34851105F555009445BF /* PBXTextBookmark */ = 6BCF34851105F555009445BF /* PBXTextBookmark */; + 6BCF34861105F555009445BF /* PBXTextBookmark */ = 6BCF34861105F555009445BF /* PBXTextBookmark */; + 6BCF34871105F555009445BF /* PBXTextBookmark */ = 6BCF34871105F555009445BF /* PBXTextBookmark */; + 6BCF34891105F56D009445BF /* PBXTextBookmark */ = 6BCF34891105F56D009445BF /* PBXTextBookmark */; + 6BCF348B1105F577009445BF /* PBXTextBookmark */ = 6BCF348B1105F577009445BF /* PBXTextBookmark */; + 6BCF348D1105F58E009445BF /* PBXTextBookmark */ = 6BCF348D1105F58E009445BF /* PBXTextBookmark */; + 6BE7320210FE6CEF00C1B074 = 6BE7320210FE6CEF00C1B074 /* PBXTextBookmark */; + 6BE7320610FE6CEF00C1B074 = 6BE7320610FE6CEF00C1B074 /* PBXTextBookmark */; + 6BE7320E10FE6EBE00C1B074 = 6BE7320E10FE6EBE00C1B074 /* PBXTextBookmark */; }; sourceControlManager = 6B8632A90F78115100E2684A /* Source Control */; userBookmarkGroup = 6B8DE6F010A88F0500DF20FB /* PBXBookmarkGroup */; @@ -417,16 +771,16 @@ }; 6B1185FC10068B040018F96F /* DetourCommon.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 2976}}"; - sepNavSelRange = "{4394, 0}"; - sepNavVisRange = "{3841, 1034}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 3104}}"; + sepNavSelRange = "{4650, 102}"; + sepNavVisRange = "{4235, 1167}"; }; }; 6B1185FD10068B150018F96F /* DetourCommon.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 4016}}"; - sepNavSelRange = "{6065, 0}"; - sepNavVisRange = "{5543, 848}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 3776}}"; + sepNavSelRange = "{5890, 0}"; + sepNavVisRange = "{5542, 849}"; }; }; 6B137C6C0F7FCBBB00459200 /* imgui.cpp */ = { @@ -473,9 +827,9 @@ }; 6B137C7E0F7FCBFE00459200 /* Recast.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 8784}}"; - sepNavSelRange = "{1479, 0}"; - sepNavVisRange = "{937, 1467}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 9616}}"; + sepNavSelRange = "{10859, 0}"; + sepNavVisRange = "{10415, 627}"; }; }; 6B137C800F7FCBFE00459200 /* RecastLog.h */ = { @@ -517,23 +871,23 @@ }; 6B137C860F7FCC1100459200 /* RecastLog.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 1248}}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 1248}}"; sepNavSelRange = "{1420, 0}"; - sepNavVisRange = "{1157, 590}"; + sepNavVisRange = "{1155, 594}"; }; }; 6B137C870F7FCC1100459200 /* RecastMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 18416}}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 18560}}"; sepNavSelRange = "{29147, 0}"; - sepNavVisRange = "{28786, 714}"; + sepNavVisRange = "{28641, 931}"; }; }; 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 5200}}"; - sepNavSelRange = "{9335, 0}"; - sepNavVisRange = "{8661, 942}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 5680}}"; + sepNavSelRange = "{1154, 0}"; + sepNavVisRange = "{516, 1095}"; }; }; 6B137C890F7FCC1100459200 /* RecastRegion.cpp */ = { @@ -552,38 +906,38 @@ }; 6B25B6100FFA62AD004F1BC4 /* Sample.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 1696}}"; - sepNavSelRange = "{1394, 0}"; - sepNavVisRange = "{1187, 592}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 1728}}"; + sepNavSelRange = "{2950, 0}"; + sepNavVisRange = "{2347, 863}"; }; }; 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 3456}}"; - sepNavSelRange = "{1949, 0}"; - sepNavVisRange = "{1808, 332}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 3520}}"; + sepNavSelRange = "{1090, 0}"; + sepNavVisRange = "{784, 514}"; }; }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 10480}}"; - sepNavSelRange = "{5023, 0}"; - sepNavVisRange = "{4659, 587}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 10816}}"; + sepNavSelRange = "{4913, 0}"; + sepNavVisRange = "{2616, 658}"; }; }; 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 1248}}"; - sepNavSelRange = "{1478, 9}"; - sepNavVisRange = "{1224, 540}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 1216}}"; + sepNavSelRange = "{1532, 0}"; + sepNavVisRange = "{1100, 666}"; sepNavWindowFrame = "{{15, 78}, {1011, 695}}"; }; }; 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 13760}}"; - sepNavSelRange = "{1453, 0}"; - sepNavVisRange = "{1105, 509}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 14272}}"; + sepNavSelRange = "{6907, 0}"; + sepNavVisRange = "{6841, 723}"; }; }; 6B555DAE100B211D00247EA3 /* imguiRenderGL.h */ = { @@ -625,6 +979,536 @@ sepNavWindowFrame = "{{61, 36}, {1011, 695}}"; }; }; + 6B69733010FFB63B00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 367"; + rLen = 0; + rLoc = 5667; + rType = 0; + vrLen = 881; + vrLoc = 9733; + }; + 6B69733210FFB63B00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 373"; + rLen = 0; + rLoc = 5667; + rType = 0; + vrLen = 871; + vrLoc = 9574; + }; + 6B69733410FFB63B00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 382"; + rLen = 0; + rLoc = 5667; + rType = 0; + vrLen = 799; + vrLoc = 9600; + }; + 6B69733610FFB63B00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 376"; + rLen = 0; + rLoc = 5667; + rType = 0; + vrLen = 833; + vrLoc = 9698; + }; + 6B69733710FFB63B00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 510"; + rLen = 0; + rLoc = 14343; + rType = 0; + vrLen = 868; + vrLoc = 13419; + }; + 6B69733910FFB63B00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 466"; + rLen = 0; + rLoc = 12968; + rType = 0; + vrLen = 876; + vrLoc = 12189; + }; + 6B69734410FFB87300984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 376"; + rLen = 0; + rLoc = 5667; + rType = 0; + vrLen = 833; + vrLoc = 9698; + }; + 6B69735010FFBC1000984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 466"; + rLen = 148; + rLoc = 12820; + rType = 0; + vrLen = 921; + vrLoc = 12189; + }; + 6B69735210FFBC1000984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 345"; + rLen = 0; + rLoc = 8959; + rType = 0; + vrLen = 1109; + vrLoc = 8893; + }; + 6B69735310FFBC1000984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 28"; + rLen = 0; + rLoc = 1637; + rType = 0; + vrLen = 1599; + vrLoc = 0; + }; + 6B69735410FFBC1000984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 466"; + rLen = 11; + rLoc = 12787; + rType = 0; + vrLen = 988; + vrLoc = 12466; + }; + 6B69735610FFBC1000984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 370"; + rLen = 0; + rLoc = 5667; + rType = 0; + vrLen = 802; + vrLoc = 9655; + }; + 6B69735810FFBC1000984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 370"; + rLen = 0; + rLoc = 5667; + rType = 0; + vrLen = 815; + vrLoc = 9655; + }; + 6B69736210FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 373"; + rLen = 0; + rLoc = 5667; + rType = 0; + vrLen = 818; + vrLoc = 9701; + }; + 6B69736310FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 29"; + rLen = 0; + rLoc = 1637; + rType = 0; + vrLen = 1599; + vrLoc = 0; + }; + 6B69736510FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 81"; + rLen = 0; + rLoc = 2113; + rType = 0; + vrLen = 419; + vrLoc = 1754; + }; + 6B69736610FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 95"; + rLen = 228; + rLoc = 2892; + rType = 0; + vrLen = 931; + vrLoc = 2032; + }; + 6B69736710FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 49"; + rLen = 0; + rLoc = 1532; + rType = 0; + vrLen = 666; + vrLoc = 1100; + }; + 6B69736810FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 32"; + rLen = 0; + rLoc = 1158; + rType = 0; + vrLen = 709; + vrLoc = 1023; + }; + 6B69736A10FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 784"; + rLen = 0; + rLoc = 21706; + rType = 0; + vrLen = 1173; + vrLoc = 20236; + }; + 6B69736E10FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 185"; + rLen = 0; + rLoc = 4946; + rType = 0; + vrLen = 1069; + vrLoc = 4279; + }; + 6B69736F10FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 373"; + rLen = 0; + rLoc = 5667; + rType = 0; + vrLen = 818; + vrLoc = 9701; + }; + 6B69737010FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 787"; + rLen = 0; + rLoc = 21706; + rType = 0; + vrLen = 1231; + vrLoc = 20215; + }; + 6B69737110FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 46"; + rLen = 0; + rLoc = 1462; + rType = 0; + vrLen = 667; + vrLoc = 1099; + }; + 6B69737210FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 386"; + rLen = 0; + rLoc = 17124; + rType = 0; + vrLen = 1421; + vrLoc = 5152; + }; + 6B69737310FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 64"; + rLen = 15; + rLoc = 1998; + rType = 0; + vrLen = 734; + vrLoc = 1446; + }; + 6B69737410FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 81"; + rLen = 0; + rLoc = 2113; + rType = 0; + vrLen = 419; + vrLoc = 1754; + }; + 6B69737510FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 787"; + rLen = 0; + rLoc = 21706; + rType = 0; + vrLen = 1238; + vrLoc = 20215; + }; + 6B69737610FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 45"; + rLen = 0; + rLoc = 1401; + rType = 0; + vrLen = 709; + vrLoc = 1023; + }; + 6B69737710FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 95"; + rLen = 228; + rLoc = 2892; + rType = 0; + vrLen = 931; + vrLoc = 2032; + }; + 6B69737810FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 49"; + rLen = 0; + rLoc = 1532; + rType = 0; + vrLen = 666; + vrLoc = 1100; + }; + 6B69737910FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 279"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 960; + vrLoc = 6951; + }; + 6B69737A10FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 32"; + rLen = 0; + rLoc = 1158; + rType = 0; + vrLen = 709; + vrLoc = 1023; + }; + 6B69737B10FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 75"; + rLen = 0; + rLoc = 2262; + rType = 0; + vrLen = 592; + vrLoc = 1824; + }; + 6B69737C10FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 924"; + rLen = 0; + rLoc = 28114; + rType = 0; + vrLen = 690; + vrLoc = 27049; + }; + 6B69737D10FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 784"; + rLen = 0; + rLoc = 21706; + rType = 0; + vrLen = 1173; + vrLoc = 20236; + }; + 6B69737E10FFBDCA00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 925"; + rLen = 811; + rLoc = 27304; + rType = 0; + vrLen = 864; + vrLoc = 27049; + }; + 6B69738810FFBDFD00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 935"; + rLen = 0; + rLoc = 28142; + rType = 0; + vrLen = 875; + vrLoc = 27049; + }; + 6B69738A10FFBDFD00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 579"; + rLen = 0; + rLoc = 16552; + rType = 0; + vrLen = 713; + vrLoc = 15417; + }; + 6B69738C10FFBDFD00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 935"; + rLen = 0; + rLoc = 28142; + rType = 0; + vrLen = 875; + vrLoc = 27049; + }; + 6B69739310FFC43600984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 555"; + rLen = 0; + rLoc = 17103; + rType = 0; + vrLen = 1314; + vrLoc = 16479; + }; + 6B69739410FFC43600984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 260"; + rLen = 0; + rLoc = 9817; + rType = 0; + vrLen = 758; + vrLoc = 7723; + }; + 6B69739510FFC43600984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 69"; + rLen = 19; + rLoc = 2673; + rType = 0; + vrLen = 1188; + vrLoc = 2200; + }; + 6B69739610FFC43600984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 170"; + rLen = 0; + rLoc = 1741; + rType = 0; + vrLen = 1278; + vrLoc = 4223; + }; + 6B69739810FFC43600984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 555"; + rLen = 0; + rLoc = 17103; + rType = 0; + vrLen = 1314; + vrLoc = 16479; + }; + 6B69739910FFC43600984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 170"; + rLen = 0; + rLoc = 1741; + rType = 0; + vrLen = 1278; + vrLoc = 4223; + }; + 6B69739E10FFCA4500984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 291"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 922; + vrLoc = 7386; + }; + 6B69739F10FFCA4500984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FD10068B150018F96F /* DetourCommon.cpp */; + name = "DetourCommon.cpp: 231"; + rLen = 0; + rLoc = 5890; + rType = 0; + vrLen = 849; + vrLoc = 5542; + }; + 6B6973A010FFCA4500984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 569"; + rLen = 0; + rLoc = 16105; + rType = 0; + vrLen = 857; + vrLoc = 15275; + }; + 6B6973A110FFCA4500984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 291"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 922; + vrLoc = 7386; + }; + 6B6973A210FFCA4500984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FD10068B150018F96F /* DetourCommon.cpp */; + name = "DetourCommon.cpp: 231"; + rLen = 0; + rLoc = 5890; + rType = 0; + vrLen = 849; + vrLoc = 5542; + }; + 6B6973A310FFCA4500984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 569"; + rLen = 0; + rLoc = 16105; + rType = 0; + vrLen = 857; + vrLoc = 15275; + }; + 6B6973A511005A7B00984788 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 38"; + rLen = 0; + rLoc = 1376; + rType = 0; + vrLen = 824; + vrLoc = 1011; + }; 6B7FB74D1091EBDE001BA51A /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; @@ -723,30 +1607,30 @@ }; 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 31984}}"; - sepNavSelRange = "{11402, 0}"; - sepNavVisRange = "{10991, 933}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 31168}}"; + sepNavSelRange = "{11950, 0}"; + sepNavVisRange = "{11805, 604}"; }; }; 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 9136}}"; - sepNavSelRange = "{13693, 1}"; - sepNavVisRange = "{13419, 928}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 8816}}"; + sepNavSelRange = "{9818, 0}"; + sepNavVisRange = "{9142, 935}"; }; }; 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 6464}}"; - sepNavSelRange = "{3342, 7}"; - sepNavVisRange = "{2673, 1814}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 6592}}"; + sepNavSelRange = "{3715, 0}"; + sepNavVisRange = "{3161, 1442}"; }; }; 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 551}}"; - sepNavSelRange = "{740, 0}"; - sepNavVisRange = "{0, 1487}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 880}}"; + sepNavSelRange = "{1545, 0}"; + sepNavVisRange = "{1158, 588}"; }; }; 6B8DE89210B6A4B900DF20FB /* PBXTextBookmark */ = { @@ -754,7 +1638,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = detail; rLen = 0; - rLoc = 14445; + rLoc = 14806; rType = 0; vrLen = 1182; vrLoc = 9676; @@ -769,16 +1653,6 @@ vrLen = 968; vrLoc = 14592; }; - 6B9869F710DFFA98007D8D84 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B1185F61006896B0018F96F /* DetourNode.h */; - name = "DetourNode.h: 84"; - rLen = 0; - rLoc = 2089; - rType = 0; - vrLen = 465; - vrLoc = 1775; - }; 6B9869FC10DFFA98007D8D84 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B1185F61006896B0018F96F /* DetourNode.h */; @@ -811,23 +1685,23 @@ }; 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 10560}}"; - sepNavSelRange = "{10410, 0}"; - sepNavVisRange = "{10014, 1431}"; + sepNavIntBoundsRect = "{{0, 0}, {1160, 9504}}"; + sepNavSelRange = "{6896, 0}"; + sepNavVisRange = "{6098, 847}"; }; }; 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {950, 16352}}"; - sepNavSelRange = "{16734, 0}"; - sepNavVisRange = "{16383, 1089}"; + sepNavIntBoundsRect = "{{0, 0}, {908, 16160}}"; + sepNavSelRange = "{7990, 0}"; + sepNavVisRange = "{7191, 848}"; }; }; 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 1312}}"; - sepNavSelRange = "{1354, 5}"; - sepNavVisRange = "{1014, 760}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 1280}}"; + sepNavSelRange = "{1822, 0}"; + sepNavVisRange = "{1483, 656}"; }; }; 6BA1E88F10C7BFD3008007F6 /* Sample_SoloMeshTiled.h */ = { @@ -837,16 +1711,6 @@ sepNavVisRange = "{128, 1276}"; }; }; - 6BA1E8DB10C7CB62008007F6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B1185FD10068B150018F96F /* DetourCommon.cpp */; - name = "DetourCommon.cpp: 237"; - rLen = 0; - rLoc = 6054; - rType = 0; - vrLen = 1017; - vrLoc = 5374; - }; 6BA1E8E410C7D2FA008007F6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B1185F41006895B0018F96F /* DetourNode.cpp */; @@ -857,483 +1721,6 @@ vrLen = 564; vrLoc = 2323; }; - 6BAA5E5D10FADB1400701160 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 332"; - rLen = 0; - rLoc = 9024; - rType = 0; - vrLen = 1001; - vrLoc = 8537; - }; - 6BAA5E5E10FADB1400701160 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 322"; - rLen = 13; - rLoc = 9825; - rType = 0; - vrLen = 798; - vrLoc = 9199; - }; - 6BAA5E5F10FADB1400701160 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 158"; - rLen = 0; - rLoc = 4983; - rType = 0; - vrLen = 1050; - vrLoc = 3302; - }; - 6BAA5E6010FADB1400701160 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 332"; - rLen = 0; - rLoc = 9024; - rType = 0; - vrLen = 1001; - vrLoc = 8537; - }; - 6BAA5E6110FADB1400701160 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 158"; - rLen = 0; - rLoc = 4983; - rType = 0; - vrLen = 1056; - vrLoc = 3302; - }; - 6BAA5E6210FADB1400701160 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 322"; - rLen = 13; - rLoc = 9825; - rType = 0; - vrLen = 798; - vrLoc = 9199; - }; - 6BAA5E6310FADB1400701160 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 137"; - rLen = 0; - rLoc = 4389; - rType = 0; - vrLen = 829; - vrLoc = 3088; - }; - 6BB35FD010FBA81000A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 137"; - rLen = 0; - rLoc = 4389; - rType = 0; - vrLen = 829; - vrLoc = 3088; - }; - 6BB35FD610FBCED500A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B1185FD10068B150018F96F /* DetourCommon.cpp */; - name = "DetourCommon.cpp: 182"; - rLen = 0; - rLoc = 4630; - rType = 0; - vrLen = 670; - vrLoc = 4082; - }; - 6BB35FD710FBCED500A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1290"; - rLen = 0; - rLoc = 37237; - rType = 0; - vrLen = 873; - vrLoc = 31061; - }; - 6BB35FD810FBCED500A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 322"; - rLen = 13; - rLoc = 9825; - rType = 0; - vrLen = 798; - vrLoc = 9199; - }; - 6BB35FD910FBCED500A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 208"; - rLen = 21; - rLoc = 6571; - rType = 0; - vrLen = 976; - vrLoc = 4694; - }; - 6BB35FDA10FBCED500A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 208"; - rLen = 21; - rLoc = 6571; - rType = 0; - vrLen = 976; - vrLoc = 4694; - }; - 6BB35FDB10FBCED500A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1290"; - rLen = 0; - rLoc = 37237; - rType = 0; - vrLen = 873; - vrLoc = 31061; - }; - 6BB35FDC10FBCED500A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 322"; - rLen = 13; - rLoc = 9825; - rType = 0; - vrLen = 798; - vrLoc = 9199; - }; - 6BB35FDD10FBCED500A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 231"; - rLen = 0; - rLoc = 8183; - rType = 0; - vrLen = 616; - vrLoc = 5424; - }; - 6BB35FE410FBCF3700A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 210"; - rLen = 13; - rLoc = 6669; - rType = 0; - vrLen = 878; - vrLoc = 4965; - }; - 6BB35FE510FBCF3700A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - rLen = 1; - rLoc = 793; - rType = 1; - }; - 6BB35FE610FBCF3700A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 210"; - rLen = 13; - rLoc = 6669; - rType = 0; - vrLen = 878; - vrLoc = 4965; - }; - 6BB35FE710FBCF3700A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 788"; - rLen = 0; - rLoc = 21871; - rType = 0; - vrLen = 914; - vrLoc = 19097; - }; - 6BB35FEA10FBCFAB00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 771"; - rLen = 0; - rLoc = 21349; - rType = 0; - vrLen = 819; - vrLoc = 19521; - }; - 6BB35FED10FBD09300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B1185FD10068B150018F96F /* DetourCommon.cpp */; - name = "DetourCommon.cpp: 238"; - rLen = 0; - rLoc = 6065; - rType = 0; - vrLen = 848; - vrLoc = 5543; - }; - 6BB35FEE10FBD09300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1232"; - rLen = 0; - rLoc = 34789; - rType = 0; - vrLen = 719; - vrLoc = 30694; - }; - 6BB35FEF10FBD09300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 210"; - rLen = 13; - rLoc = 6669; - rType = 0; - vrLen = 855; - vrLoc = 4965; - }; - 6BB35FF010FBD09300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1232"; - rLen = 0; - rLoc = 34789; - rType = 0; - vrLen = 719; - vrLoc = 30694; - }; - 6BB35FF110FBD09300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 204"; - rLen = 0; - rLoc = 6495; - rType = 0; - vrLen = 940; - vrLoc = 4223; - }; - 6BB35FF910FBD0A000A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 204"; - rLen = 0; - rLoc = 6495; - rType = 0; - vrLen = 1019; - vrLoc = 3920; - }; - 6BB35FFC10FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FE9010F4A192006DA0A6 /* OffMeshLinkTool.cpp */; - name = "OffMeshLinkTool.cpp: 62"; - rLen = 5; - rLoc = 1591; - rType = 0; - vrLen = 739; - vrLoc = 1846; - }; - 6BB35FFD10FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; - name = "NavMeshTesterTool.h: 78"; - rLen = 0; - rLoc = 2327; - rType = 0; - vrLen = 847; - vrLoc = 1426; - }; - 6BB35FFE10FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 203"; - rLen = 0; - rLoc = 6165; - rType = 0; - vrLen = 964; - vrLoc = 4827; - }; - 6BB35FFF10FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 112"; - rLen = 0; - rLoc = 4733; - rType = 0; - vrLen = 1075; - vrLoc = 3994; - }; - 6BB3600010FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1185"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 779; - vrLoc = 29631; - }; - 6BB3600110FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 190"; - rLen = 0; - rLoc = 5703; - rType = 0; - vrLen = 912; - vrLoc = 4595; - }; - 6BB3600210FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1264"; - rLen = 0; - rLoc = 36109; - rType = 0; - vrLen = 934; - vrLoc = 31463; - }; - 6BB3600310FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 215"; - rLen = 21; - rLoc = 6571; - rType = 0; - vrLen = 964; - vrLoc = 4827; - }; - 6BB3600410FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 770"; - rLen = 0; - rLoc = 21306; - rType = 0; - vrLen = 984; - vrLoc = 19300; - }; - 6BB3600510FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FE9010F4A192006DA0A6 /* OffMeshLinkTool.cpp */; - name = "OffMeshLinkTool.cpp: 62"; - rLen = 5; - rLoc = 1591; - rType = 0; - vrLen = 739; - vrLoc = 1846; - }; - 6BB3600610FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; - name = "NavMeshTesterTool.h: 78"; - rLen = 0; - rLoc = 2327; - rType = 0; - vrLen = 847; - vrLoc = 1426; - }; - 6BB3600710FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 203"; - rLen = 0; - rLoc = 6165; - rType = 0; - vrLen = 964; - vrLoc = 4827; - }; - 6BB3600810FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 231"; - rLen = 62; - rLoc = 10539; - rType = 0; - vrLen = 1693; - vrLoc = 8712; - }; - 6BB3600910FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1106"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 891; - vrLoc = 27616; - }; - 6BB3600A10FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 113"; - rLen = 0; - rLoc = 4758; - rType = 0; - vrLen = 1075; - vrLoc = 3994; - }; - 6BB3600B10FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1185"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 779; - vrLoc = 29631; - }; - 6BB3600C10FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 112"; - rLen = 0; - rLoc = 4733; - rType = 0; - vrLen = 1075; - vrLoc = 3994; - }; - 6BB3600D10FE4EB600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1271"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 821; - vrLoc = 31728; - }; - 6BB3601310FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 235"; - rLen = 246; - rLoc = 10395; - rType = 0; - vrLen = 1676; - vrLoc = 8797; - }; - 6BB3601410FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; - name = "NavMeshTesterTool.h: 50"; - rLen = 0; - rLoc = 1503; - rType = 0; - vrLen = 728; - vrLoc = 1199; - }; - 6BB3601510FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 28"; - rLen = 10; - rLoc = 1208; - rType = 0; - vrLen = 1510; - vrLoc = 937; - }; 6BB3601610FE561F00A9B4B8 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; @@ -1344,324 +1731,6 @@ vrLen = 760; vrLoc = 1014; }; - 6BB3601710FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 344"; - rLen = 0; - rLoc = 10410; - rType = 0; - vrLen = 1431; - vrLoc = 10014; - }; - 6BB3601810FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1271"; - rLen = 0; - rLoc = 34763; - rType = 0; - vrLen = 820; - vrLoc = 32087; - }; - 6BB3601910FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - comments = "error: 'straightPathFlags' was not declared in this scope"; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - rLen = 1; - rLoc = 194; - rType = 1; - }; - 6BB3601A10FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1253"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 854; - vrLoc = 31595; - }; - 6BB3601B10FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 235"; - rLen = 246; - rLoc = 10395; - rType = 0; - vrLen = 1676; - vrLoc = 8797; - }; - 6BB3601C10FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 159"; - rLen = 0; - rLoc = 4811; - rType = 0; - vrLen = 1188; - vrLoc = 3372; - }; - 6BB3601D10FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; - name = "NavMeshTesterTool.h: 50"; - rLen = 0; - rLoc = 1503; - rType = 0; - vrLen = 728; - vrLoc = 1199; - }; - 6BB3601E10FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 253"; - rLen = 0; - rLoc = 8268; - rType = 0; - vrLen = 601; - vrLoc = 5968; - }; - 6BB3601F10FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 28"; - rLen = 10; - rLoc = 1208; - rType = 0; - vrLen = 1510; - vrLoc = 937; - }; - 6BB3602010FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; - name = "Sample_SoloMeshSimple.h: 40"; - rLen = 0; - rLoc = 1391; - rType = 0; - vrLen = 760; - vrLoc = 1014; - }; - 6BB3602110FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 469"; - rLen = 0; - rLoc = 14712; - rType = 0; - vrLen = 957; - vrLoc = 14151; - }; - 6BB3602210FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; - name = "Sample_SoloMeshSimple.h: 40"; - rLen = 0; - rLoc = 1391; - rType = 0; - vrLen = 760; - vrLoc = 1014; - }; - 6BB3602310FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 469"; - rLen = 0; - rLoc = 14712; - rType = 0; - vrLen = 957; - vrLoc = 14151; - }; - 6BB3602410FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; - name = "Sample_SoloMeshSimple.h: 38"; - rLen = 5; - rLoc = 1354; - rType = 0; - vrLen = 760; - vrLoc = 1014; - }; - 6BB3602510FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 344"; - rLen = 0; - rLoc = 10410; - rType = 0; - vrLen = 1431; - vrLoc = 10014; - }; - 6BB3602610FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 368"; - rLen = 0; - rLoc = 12138; - rType = 0; - vrLen = 1174; - vrLoc = 8822; - }; - 6BB3602710FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1271"; - rLen = 0; - rLoc = 34763; - rType = 0; - vrLen = 820; - vrLoc = 32087; - }; - 6BB3602810FE561F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 174"; - rLen = 0; - rLoc = 5344; - rType = 0; - vrLen = 1259; - vrLoc = 3649; - }; - 6BB3602A10FE569B00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 361"; - rLen = 0; - rLoc = 11562; - rType = 0; - vrLen = 1176; - vrLoc = 8868; - }; - 6BB3602B10FE569B00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; - name = "DetourNavMeshBuilder.cpp: 562"; - rLen = 0; - rLoc = 15325; - rType = 0; - vrLen = 901; - vrLoc = 14772; - }; - 6BB3602C10FE569B00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1271"; - rLen = 0; - rLoc = 34763; - rType = 0; - vrLen = 784; - vrLoc = 32087; - }; - 6BB3602D10FE569B00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 361"; - rLen = 0; - rLoc = 11562; - rType = 0; - vrLen = 1176; - vrLoc = 8868; - }; - 6BB3602E10FE569B00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; - name = "DetourNavMeshBuilder.cpp: 562"; - rLen = 0; - rLoc = 15325; - rType = 0; - vrLen = 901; - vrLoc = 14772; - }; - 6BB3602F10FE569B00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1188"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 791; - vrLoc = 28839; - }; - 6BB3603110FE56BB00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1188"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 829; - vrLoc = 28705; - }; - 6BB3603210FE56BB00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 361"; - rLen = 0; - rLoc = 11562; - rType = 0; - vrLen = 1176; - vrLoc = 8868; - }; - 6BB3603310FE56BB00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1188"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 829; - vrLoc = 28705; - }; - 6BB3603410FE56BB00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 348"; - rLen = 0; - rLoc = 10839; - rType = 0; - vrLen = 1098; - vrLoc = 8796; - }; - 6BB3603710FE56F600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 348"; - rLen = 0; - rLoc = 10839; - rType = 0; - vrLen = 1120; - vrLoc = 8796; - }; - 6BB3603810FE56F600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1188"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 796; - vrLoc = 28738; - }; - 6BB3603910FE56F600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 348"; - rLen = 0; - rLoc = 10839; - rType = 0; - vrLen = 1120; - vrLoc = 8796; - }; - 6BB3603A10FE56F600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1247"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 992; - vrLoc = 31272; - }; 6BB3603D10FE59E200A9B4B8 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; @@ -1672,136 +1741,6 @@ vrLen = 587; vrLoc = 4659; }; - 6BB3603E10FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 416"; - rLen = 0; - rLoc = 12384; - rType = 0; - vrLen = 787; - vrLoc = 11936; - }; - 6BB3603F10FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 372"; - rLen = 0; - rLoc = 12251; - rType = 0; - vrLen = 1148; - vrLoc = 9065; - }; - 6BB3604010FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 360"; - rLen = 48; - rLoc = 16473; - rType = 0; - vrLen = 1618; - vrLoc = 14581; - }; - 6BB3604110FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1358"; - rLen = 0; - rLoc = 37309; - rType = 0; - vrLen = 910; - vrLoc = 34002; - }; - 6BB3604210FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1247"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 1003; - vrLoc = 31272; - }; - 6BB3604310FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 413"; - rLen = 0; - rLoc = 12331; - rType = 0; - vrLen = 960; - vrLoc = 11757; - }; - 6BB3604410FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; - name = "main.cpp: 229"; - rLen = 0; - rLoc = 5023; - rType = 0; - vrLen = 587; - vrLoc = 4659; - }; - 6BB3604510FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 416"; - rLen = 0; - rLoc = 12384; - rType = 0; - vrLen = 787; - vrLoc = 11936; - }; - 6BB3604610FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 372"; - rLen = 0; - rLoc = 12251; - rType = 0; - vrLen = 1148; - vrLoc = 9065; - }; - 6BB3604710FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 359"; - rLen = 15; - rLoc = 16393; - rType = 0; - vrLen = 1685; - vrLoc = 14581; - }; - 6BB3604810FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1358"; - rLen = 0; - rLoc = 37309; - rType = 0; - vrLen = 910; - vrLoc = 34002; - }; - 6BB3604910FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 360"; - rLen = 48; - rLoc = 16473; - rType = 0; - vrLen = 1618; - vrLoc = 14581; - }; - 6BB3604A10FE59E200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1167"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 803; - vrLoc = 29285; - }; 6BB3605210FE5CBD00A9B4B8 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB7FE9010F4A192006DA0A6 /* OffMeshLinkTool.cpp */; @@ -1817,151 +1756,11 @@ fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; name = "InputGeom.cpp: 184"; rLen = 0; - rLoc = 4698; + rLoc = 5728; rType = 0; vrLen = 795; vrLoc = 4148; }; - 6BB3605410FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 411"; - rLen = 0; - rLoc = 12298; - rType = 0; - vrLen = 693; - vrLoc = 11880; - }; - 6BB3605510FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1251"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 753; - vrLoc = 32185; - }; - 6BB3605610FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 117"; - rLen = 0; - rLoc = 4979; - rType = 0; - vrLen = 823; - vrLoc = 4178; - }; - 6BB3605710FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 367"; - rLen = 0; - rLoc = 11977; - rType = 0; - vrLen = 1042; - vrLoc = 9164; - }; - 6BB3605810FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1193"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 1018; - vrLoc = 29945; - }; - 6BB3605910FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 116"; - rLen = 28; - rLoc = 4898; - rType = 0; - vrLen = 1136; - vrLoc = 4178; - }; - 6BB3605A10FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1272"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 798; - vrLoc = 32327; - }; - 6BB3605B10FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FE9010F4A192006DA0A6 /* OffMeshLinkTool.cpp */; - name = "OffMeshLinkTool.cpp: 62"; - rLen = 5; - rLoc = 1591; - rType = 0; - vrLen = 739; - vrLoc = 1846; - }; - 6BB3605C10FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; - name = "InputGeom.cpp: 184"; - rLen = 0; - rLoc = 4698; - rType = 0; - vrLen = 795; - vrLoc = 4148; - }; - 6BB3605D10FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 411"; - rLen = 0; - rLoc = 12298; - rType = 0; - vrLen = 693; - vrLoc = 11880; - }; - 6BB3605E10FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1251"; - rLen = 0; - rLoc = 29357; - rType = 0; - vrLen = 753; - vrLoc = 32185; - }; - 6BB3605F10FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 117"; - rLen = 0; - rLoc = 4979; - rType = 0; - vrLen = 823; - vrLoc = 4178; - }; - 6BB3606010FE5CBD00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 368"; - rLen = 0; - rLoc = 11554; - rType = 0; - vrLen = 979; - vrLoc = 9140; - }; - 6BB3606110FE5E8F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 244"; - rLen = 0; - rLoc = 8014; - rType = 0; - vrLen = 619; - vrLoc = 6155; - }; 6BB3606210FE5E8F00A9B4B8 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B1185F61006896B0018F96F /* DetourNode.h */; @@ -1972,304 +1771,6 @@ vrLen = 454; vrLoc = 1786; }; - 6BB3606310FE5E8F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 301"; - rLen = 446; - rLoc = 13586; - rType = 0; - vrLen = 1196; - vrLoc = 12595; - }; - 6BB3606410FE5E8F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 244"; - rLen = 0; - rLoc = 8014; - rType = 0; - vrLen = 619; - vrLoc = 6155; - }; - 6BB3606510FE5E8F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B1185F61006896B0018F96F /* DetourNode.h */; - name = "DetourNode.h: 84"; - rLen = 0; - rLoc = 2089; - rType = 0; - vrLen = 454; - vrLoc = 1786; - }; - 6BB3606610FE5E8F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 301"; - rLen = 446; - rLoc = 13586; - rType = 0; - vrLen = 1196; - vrLoc = 12595; - }; - 6BB3606710FE5E8F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 764"; - rLen = 0; - rLoc = 20093; - rType = 0; - vrLen = 886; - vrLoc = 19080; - }; - 6BB3606810FE604F00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 778"; - rLen = 0; - rLoc = 20505; - rType = 0; - vrLen = 946; - vrLoc = 19537; - }; - 6BB3606910FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 302"; - rLen = 27; - rLoc = 13927; - rType = 0; - vrLen = 1196; - vrLoc = 12595; - }; - 6BB3606A10FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 772"; - rLen = 0; - rLoc = 20093; - rType = 0; - vrLen = 850; - vrLoc = 19791; - }; - 6BB3606B10FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 245"; - rLen = 0; - rLoc = 8013; - rType = 0; - vrLen = 641; - vrLoc = 6190; - }; - 6BB3606C10FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 752"; - rLen = 36; - rLoc = 19177; - rType = 0; - vrLen = 914; - vrLoc = 18884; - }; - 6BB3606D10FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 302"; - rLen = 0; - rLoc = 13991; - rType = 0; - vrLen = 1219; - vrLoc = 12595; - }; - 6BB3606E10FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 788"; - rLen = 0; - rLoc = 20505; - rType = 0; - vrLen = 802; - vrLoc = 20078; - }; - 6BB3606F10FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 244"; - rLen = 0; - rLoc = 7318; - rType = 0; - vrLen = 604; - vrLoc = 6190; - }; - 6BB3607010FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 302"; - rLen = 27; - rLoc = 13927; - rType = 0; - vrLen = 1196; - vrLoc = 12595; - }; - 6BB3607110FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 777"; - rLen = 0; - rLoc = 20621; - rType = 0; - vrLen = 983; - vrLoc = 19537; - }; - 6BB3607210FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 245"; - rLen = 0; - rLoc = 8013; - rType = 0; - vrLen = 641; - vrLoc = 6190; - }; - 6BB3607310FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 772"; - rLen = 0; - rLoc = 20093; - rType = 0; - vrLen = 850; - vrLoc = 19791; - }; - 6BB3607410FE638300A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 242"; - rLen = 0; - rLoc = 7311; - rType = 0; - vrLen = 641; - vrLoc = 6190; - }; - 6BB3607510FE662B00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 256"; - rLen = 0; - rLoc = 7318; - rType = 0; - vrLen = 730; - vrLoc = 6395; - }; - 6BB3607B10FE670200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 752"; - rLen = 0; - rLoc = 19232; - rType = 0; - vrLen = 1104; - vrLoc = 19098; - }; - 6BB3607C10FE670200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 306"; - rLen = 0; - rLoc = 13865; - rType = 0; - vrLen = 1260; - vrLoc = 12595; - }; - 6BB3607D10FE670200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - comments = "error: 'i' was not declared in this scope"; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - rLen = 0; - rLoc = 217; - rType = 1; - }; - 6BB3607E10FE670200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 263"; - rLen = 0; - rLoc = 7318; - rType = 0; - vrLen = 598; - vrLoc = 6736; - }; - 6BB3607F10FE670200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 302"; - rLen = 0; - rLoc = 13960; - rType = 0; - vrLen = 1196; - vrLoc = 12595; - }; - 6BB3608010FE670200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 752"; - rLen = 0; - rLoc = 19232; - rType = 0; - vrLen = 1104; - vrLoc = 19098; - }; - 6BB3608110FE670200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 306"; - rLen = 0; - rLoc = 13865; - rType = 0; - vrLen = 1260; - vrLoc = 12595; - }; - 6BB3608210FE670200A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 204"; - rLen = 0; - rLoc = 5978; - rType = 0; - vrLen = 854; - vrLoc = 5040; - }; - 6BB3608510FE675100A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 203"; - rLen = 0; - rLoc = 5977; - rType = 0; - vrLen = 763; - vrLoc = 6073; - }; - 6BB3608710FE676600A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 203"; - rLen = 0; - rLoc = 5977; - rType = 0; - vrLen = 795; - vrLoc = 6305; - }; - 6BB3608B10FE677B00A9B4B8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 246"; - rLen = 0; - rLoc = 7318; - rType = 0; - vrLen = 787; - vrLoc = 6313; - }; 6BB4965F10C8F2AE00BC0805 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B555DF6100B273500247EA3 /* stb_truetype.h */; @@ -2280,106 +1781,16 @@ vrLen = 857; vrLoc = 26962; }; - 6BB7000610F4F03D006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; - name = "Sample.cpp: 81"; - rLen = 0; - rLoc = 1949; - rType = 0; - vrLen = 332; - vrLoc = 1808; - }; - 6BB7001110F4F17C006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; - name = "main.cpp: 573"; - rLen = 0; - rLoc = 13052; - rType = 0; - vrLen = 705; - vrLoc = 12684; - }; - 6BB7001210F4F17C006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; - name = "Sample_SoloMeshSimple.h: 40"; - rLen = 0; - rLoc = 1391; - rType = 0; - vrLen = 589; - vrLoc = 1061; - }; - 6BB7002C10F4F257006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; - name = "Sample_TileMesh.cpp: 43"; - rLen = 0; - rLoc = 1453; - rType = 0; - vrLen = 509; - vrLoc = 1105; - }; 6BB7003710F4F39B006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; name = "DebugDraw.h: 105"; rLen = 11; - rLoc = 4056; + rLoc = 4137; rType = 0; vrLen = 1847; vrLoc = 2643; }; - 6BB7003810F4F39B006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; - name = "DebugDraw.cpp: 82"; - rLen = 0; - rLoc = 2838; - rType = 0; - vrLen = 947; - vrLoc = 2280; - }; - 6BB7003A10F4F39B006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; - name = "InputGeom.cpp: 185"; - rLen = 0; - rLoc = 4759; - rType = 0; - vrLen = 667; - vrLoc = 4276; - }; - 6BB7004C10F4F532006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 408"; - rLen = 0; - rLoc = 12142; - rType = 0; - vrLen = 949; - vrLoc = 11755; - }; - 6BB7004F10F4F532006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FE9010F4A192006DA0A6 /* OffMeshLinkTool.cpp */; - name = "OffMeshLinkTool.cpp: 62"; - rLen = 5; - rLoc = 1591; - rType = 0; - vrLen = 743; - vrLoc = 1846; - }; - 6BB7007210FA2B13006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; - name = "DetourNavMeshBuilder.h: 14"; - rLen = 0; - rLoc = 740; - rType = 0; - vrLen = 1487; - vrLoc = 0; - }; 6BB7007510FA2B13006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; @@ -2390,37 +1801,17 @@ vrLen = 1487; vrLoc = 0; }; - 6BB7007C10FA2E34006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 653"; - rLen = 3; - rLoc = 16950; - rType = 0; - vrLen = 1018; - vrLoc = 16194; - }; 6BB7008C10FA3475006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 569"; rLen = 0; - rLoc = 15567; + rLoc = 16438; rType = 0; vrLen = 893; vrLoc = 14757; }; - 6BB7008E10FA3475006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 71"; - rLen = 0; - rLoc = 2619; - rType = 0; - vrLen = 1470; - vrLoc = 2431; - }; - 6BB700A210FA36C3006DA0A6 /* DetourNavMesh.cpp:362 */ = { + 6BB700A210FA36C3006DA0A6 /* DetourNavMesh.cpp:207 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -2432,9 +1823,9 @@ functionName = "dtNavMesh::buildIntLinks(dtMeshTile* tile)"; hitCount = 0; ignoreCount = 0; - lineNumber = 362; + lineNumber = 207; location = Recast; - modificationTime = 285108048.691404; + modificationTime = 285601420.83391; state = 1; }; 6BB700BF10FA3AB1006DA0A6 /* PBXTextBookmark */ = { @@ -2447,16 +1838,6 @@ vrLen = 1034; vrLoc = 3841; }; - 6BB700C010FA3AB1006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 71"; - rLen = 0; - rLoc = 2619; - rType = 0; - vrLen = 1211; - vrLoc = 2431; - }; 6BB700C310FA3AB1006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; @@ -2467,7 +1848,7 @@ vrLen = 1034; vrLoc = 3841; }; - 6BB700DA10FA3D0C006DA0A6 /* DetourNavMesh.cpp:507 */ = { + 6BB700DA10FA3D0C006DA0A6 /* DetourNavMesh.cpp:207 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -2479,36 +1860,9 @@ functionName = "dtNavMesh::addTileAt(int x, int y, unsigned char* data, int dataSize, bool ownsData)"; hitCount = 0; ignoreCount = 0; - lineNumber = 507; + lineNumber = 207; location = Recast; - modificationTime = 285108048.691583; - state = 1; - }; - 6BB700F510FA3E31006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; - name = "DetourNavMeshBuilder.cpp: 563"; - rLen = 0; - rLoc = 15354; - rType = 0; - vrLen = 864; - vrLoc = 14809; - }; - 6BB700FD10FA3E9F006DA0A6 /* DetourNavMesh.cpp:396 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - functionName = "dtNavMesh::buildIntLinks(dtMeshTile* tile)"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 396; - location = Recast; - modificationTime = 285108048.692331; + modificationTime = 285601420.834099; state = 1; }; 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = { @@ -2527,50 +1881,40 @@ }; 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 1360}}"; - sepNavSelRange = "{1217, 0}"; - sepNavVisRange = "{1023, 711}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 1344}}"; + sepNavSelRange = "{1158, 0}"; + sepNavVisRange = "{1023, 709}"; }; }; 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 9120}}"; - sepNavSelRange = "{7071, 0}"; - sepNavVisRange = "{6951, 1024}"; + sepNavIntBoundsRect = "{{0, 0}, {929, 9564}}"; + sepNavSelRange = "{8032, 0}"; + sepNavVisRange = "{7651, 752}"; }; }; 6BB7FD6310F3564B006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; name = "NavMeshTesterTool.h: 1"; - rLen = 1444; + rLen = 1464; rLoc = 919; rType = 0; vrLen = 570; vrLoc = 0; }; - 6BB7FD6910F3564B006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 1"; - rLen = 382; - rLoc = 919; - rType = 0; - vrLen = 690; - vrLoc = 0; - }; 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 928}}"; - sepNavSelRange = "{1960, 0}"; - sepNavVisRange = "{1128, 861}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 992}}"; + sepNavSelRange = "{1344, 0}"; + sepNavVisRange = "{1065, 762}"; }; }; 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 2896}}"; - sepNavSelRange = "{4698, 0}"; - sepNavVisRange = "{4148, 795}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 3184}}"; + sepNavSelRange = "{5057, 0}"; + sepNavVisRange = "{4939, 830}"; }; }; 6BB7FDC010F37703006DA0A6 /* PBXTextBookmark */ = { @@ -2668,7 +2012,7 @@ fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; name = "Sample.cpp: 120"; rLen = 0; - rLoc = 2650; + rLoc = 2814; rType = 0; vrLen = 714; vrLoc = 2109; @@ -2720,43 +2064,35 @@ rLen = 56; rLoc = 1965; rType = 0; - vrLen = 740; + vrLen = 713; vrLoc = 1495; }; - 6BB7FE7810F38224006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; - name = "Sample_TileMesh.cpp: 154"; - rLen = 0; - rLoc = 1339; - rType = 0; - vrLen = 484; - vrLoc = 3475; - }; 6BB7FE8F10F4A192006DA0A6 /* OffMeshLinkTool.h */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.h; + name = OffMeshLinkTool.h; + path = /Users/memon/Code/recastnavigation/RecastDemo/Include/OffMeshLinkTool.h; + sourceTree = ""; uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 736}}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 736}}"; sepNavSelRange = "{1301, 0}"; - sepNavVisRange = "{919, 603}"; + sepNavVisRange = "{971, 551}"; }; }; 6BB7FE9010F4A192006DA0A6 /* OffMeshLinkTool.cpp */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.cpp.cpp; + name = OffMeshLinkTool.cpp; + path = /Users/memon/Code/recastnavigation/RecastDemo/Source/OffMeshLinkTool.cpp; + sourceTree = ""; uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {891, 2304}}"; sepNavSelRange = "{1591, 5}"; sepNavVisRange = "{1846, 739}"; }; }; - 6BB7FEA910F4B5E1006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; - name = "Sample.h: 38"; - rLen = 0; - rLoc = 1394; - rType = 0; - vrLen = 592; - vrLoc = 1187; - }; 6BB7FEAD10F4B5E1006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB7FE8F10F4A192006DA0A6 /* OffMeshLinkTool.h */; @@ -2792,7 +2128,7 @@ fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; name = "RecastDebugDraw.cpp: 465"; rLen = 128; - rLoc = 12388; + rLoc = 8552; rType = 0; vrLen = 949; vrLoc = 11908; @@ -2802,21 +2138,11 @@ fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; name = "InputGeom.h: 54"; rLen = 0; - rLoc = 1960; + rLoc = 2365; rType = 0; vrLen = 861; vrLoc = 1128; }; - 6BB7FF0210F4D699006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 161"; - rLen = 0; - rLoc = 6090; - rType = 0; - vrLen = 1467; - vrLoc = 5471; - }; 6BB7FF0310F4D699006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; @@ -2827,16 +2153,6 @@ vrLen = 714; vrLoc = 28786; }; - 6BB7FF1210F4D699006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; - name = "Sample_SoloMeshSimple.cpp: 561"; - rLen = 0; - rLoc = 17264; - rType = 0; - vrLen = 1027; - vrLoc = 16699; - }; 6BB7FF2410F4D699006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; @@ -2847,16 +2163,6 @@ vrLen = 915; vrLoc = 27462; }; - 6BB7FF6C10F4E8E2006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; - name = "NavMeshTesterTool.h: 78"; - rLen = 0; - rLoc = 2327; - rType = 0; - vrLen = 816; - vrLoc = 1457; - }; 6BB7FF6D10F4E8E2006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB93C7910CFE1D500F74F2B /* RecastDebugDraw.h */; @@ -2872,27 +2178,17 @@ fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; name = "DetourDebugDraw.h: 26"; rLen = 0; - rLoc = 1287; + rLoc = 1377; rType = 0; vrLen = 1322; vrLoc = 0; }; - 6BB7FF7310F4E8E2006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; - name = "Sample_TileMesh.h: 47"; - rLen = 9; - rLoc = 1478; - rType = 0; - vrLen = 540; - vrLoc = 1224; - }; 6BB7FF7910F4E8E2006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; name = "DebugDraw.h: 100"; rLen = 0; - rLoc = 4191; + rLoc = 4272; rType = 0; vrLen = 1640; vrLoc = 2342; @@ -2902,7 +2198,7 @@ fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; name = "DebugDraw.cpp: 186"; rLen = 0; - rLoc = 6644; + rLoc = 6693; rType = 0; vrLen = 722; vrLoc = 5201; @@ -2912,53 +2208,33 @@ fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; name = "DetourDebugDraw.h: 26"; rLen = 0; - rLoc = 1287; + rLoc = 1377; rType = 0; vrLen = 1322; vrLoc = 0; }; - 6BB7FF9710F4E8E2006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 379"; - rLen = 0; - rLoc = 12384; - rType = 0; - vrLen = 835; - vrLoc = 10928; - }; - 6BB7FFBE10F4E9A8006DA0A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; - name = "Sample_SoloMeshTiled.cpp: 586"; - rLen = 0; - rLoc = 16734; - rType = 0; - vrLen = 1089; - vrLoc = 16383; - }; 6BB7FFD610F4EC73006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; name = "RecastDebugDraw.cpp: 246"; rLen = 0; - rLoc = 6932; + rLoc = 3093; rType = 0; vrLen = 780; vrLoc = 6488; }; 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 1920}}"; - sepNavSelRange = "{4056, 11}"; - sepNavVisRange = "{2643, 1847}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 2144}}"; + sepNavSelRange = "{1153, 0}"; + sepNavVisRange = "{1092, 815}"; }; }; 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 525}}"; - sepNavSelRange = "{1287, 0}"; - sepNavVisRange = "{0, 1322}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 544}}"; + sepNavSelRange = "{1024, 70}"; + sepNavVisRange = "{441, 944}"; }; }; 6BB93C7910CFE1D500F74F2B /* RecastDebugDraw.h */ = { @@ -2970,23 +2246,23 @@ }; 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 4528}}"; - sepNavSelRange = "{2838, 0}"; - sepNavVisRange = "{2280, 947}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 5536}}"; + sepNavSelRange = "{3013, 0}"; + sepNavVisRange = "{2397, 1036}"; }; }; 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 6880}}"; - sepNavSelRange = "{12298, 0}"; - sepNavVisRange = "{11880, 693}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 7520}}"; + sepNavSelRange = "{13530, 0}"; + sepNavVisRange = "{13117, 777}"; }; }; 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {922, 13248}}"; - sepNavSelRange = "{6932, 0}"; - sepNavVisRange = "{6488, 780}"; + sepNavIntBoundsRect = "{{0, 0}, {901, 10828}}"; + sepNavSelRange = "{9857, 0}"; + sepNavVisRange = "{9277, 616}"; }; }; 6BB93CF410CFEC4500F74F2B /* RecastDump.h */ = { @@ -3047,7 +2323,7 @@ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; name = "Sample.h: 13"; rLen = 0; - rLoc = 1298; + rLoc = 1335; rType = 0; vrLen = 783; vrLoc = 664; @@ -3126,138 +2402,4998 @@ ignoreCount = 0; lineNumber = 282; location = Recast; - modificationTime = 285108048.691153; + modificationTime = 285601421.741965; state = 1; }; - 6BE731E610FE67F500C1B074 /* PBXTextBookmark */ = { + 6BCF31F41104C9F0009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 246"; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 74"; rLen = 0; - rLoc = 7318; + rLoc = 2412; rType = 0; - vrLen = 765; - vrLoc = 6115; + vrLen = 805; + vrLoc = 1993; }; - 6BE731F210FE682600C1B074 /* PBXTextBookmark */ = { + 6BCF31F51104C9F0009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 238"; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 200"; rLen = 0; - rLoc = 7229; + rLoc = 5467; rType = 0; - vrLen = 893; - vrLoc = 5894; + vrLen = 1091; + vrLoc = 4993; }; - 6BE731F510FE685300C1B074 /* PBXTextBookmark */ = { + 6BCF31F61104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 448"; + rLen = 0; + rLoc = 14070; + rType = 0; + vrLen = 968; + vrLoc = 13200; + }; + 6BCF31F71104C9F0009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 252"; + name = "NavMeshTesterTool.cpp: 367"; rLen = 0; - rLoc = 7318; + rLoc = 4702; + rType = 0; + vrLen = 573; + vrLoc = 9620; + }; + 6BCF31F81104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 293"; + rLen = 0; + rLoc = 6645; + rType = 0; + vrLen = 669; + vrLoc = 6192; + }; + 6BCF31F91104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 40"; + rLen = 13; + rLoc = 1428; + rType = 0; + vrLen = 774; + vrLoc = 981; + }; + 6BCF31FA1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 583"; + rLen = 0; + rLoc = 16758; + rType = 0; + vrLen = 896; + vrLoc = 16422; + }; + 6BCF31FB1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 38"; + rLen = 0; + rLoc = 1418; + rType = 0; + vrLen = 1151; + vrLoc = 1134; + }; + 6BCF31FC1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 38"; + rLen = 0; + rLoc = 1376; + rType = 0; + vrLen = 824; + vrLoc = 1011; + }; + 6BCF31FD1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 74"; + rLen = 0; + rLoc = 2412; + rType = 0; + vrLen = 805; + vrLoc = 1993; + }; + 6BCF31FE1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 100"; + rLen = 0; + rLoc = 4065; + rType = 0; + vrLen = 1645; + vrLoc = 3325; + }; + 6BCF31FF1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 261"; + rLen = 0; + rLoc = 7006; + rType = 0; + vrLen = 633; + vrLoc = 6432; + }; + 6BCF32001104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 119"; + rLen = 0; + rLoc = 5067; + rType = 0; + vrLen = 1496; + vrLoc = 3778; + }; + 6BCF32011104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 215"; + rLen = 0; + rLoc = 5858; + rType = 0; + vrLen = 815; + vrLoc = 5350; + }; + 6BCF32021104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 119"; + rLen = 0; + rLoc = 5067; + rType = 0; + vrLen = 1409; + vrLoc = 3865; + }; + 6BCF32031104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 219"; + rLen = 0; + rLoc = 6064; + rType = 0; + vrLen = 771; + vrLoc = 5584; + }; + 6BCF32041104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 119"; + rLen = 0; + rLoc = 5067; + rType = 0; + vrLen = 1409; + vrLoc = 3865; + }; + 6BCF32051104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 226"; + rLen = 0; + rLoc = 6273; rType = 0; vrLen = 817; - vrLoc = 6350; + vrLoc = 5584; }; - 6BE731F810FE69E000C1B074 /* PBXTextBookmark */ = { + 6BCF32061104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 42"; + rLen = 0; + rLoc = 1777; + rType = 0; + vrLen = 1116; + vrLoc = 1004; + }; + 6BCF32071104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 364"; + rLen = 0; + rLoc = 9847; + rType = 0; + vrLen = 762; + vrLoc = 9653; + }; + 6BCF32081104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 105"; + rLen = 0; + rLoc = 4514; + rType = 0; + vrLen = 1891; + vrLoc = 3052; + }; + 6BCF32091104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 526"; + rLen = 0; + rLoc = 10769; + rType = 0; + vrLen = 1013; + vrLoc = 13761; + }; + 6BCF320A1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 104"; + rLen = 0; + rLoc = 4407; + rType = 0; + vrLen = 1800; + vrLoc = 3143; + }; + 6BCF320B1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 510"; + rLen = 0; + rLoc = 10769; + rType = 0; + vrLen = 1332; + vrLoc = 13267; + }; + 6BCF320C1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 104"; + rLen = 0; + rLoc = 4405; + rType = 0; + vrLen = 1800; + vrLoc = 3143; + }; + 6BCF320D1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1889"; + rLen = 0; + rLoc = 50904; + rType = 0; + vrLen = 1130; + vrLoc = 49878; + }; + 6BCF320E1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 92"; + rLen = 0; + rLoc = 3651; + rType = 0; + vrLen = 1167; + vrLoc = 2472; + }; + 6BCF320F1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 462"; + rLen = 0; + rLoc = 12633; + rType = 0; + vrLen = 1152; + vrLoc = 12031; + }; + 6BCF32101104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 60"; + rLen = 0; + rLoc = 1741; + rType = 0; + vrLen = 487; + vrLoc = 1573; + }; + 6BCF32111104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 28"; + rLen = 0; + rLoc = 1164; + rType = 0; + vrLen = 1007; + vrLoc = 837; + }; + 6BCF32121104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 200"; + rLen = 0; + rLoc = 5467; + rType = 0; + vrLen = 1091; + vrLoc = 4993; + }; + 6BCF32131104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 541"; + rLen = 0; + rLoc = 15178; + rType = 0; + vrLen = 1003; + vrLoc = 14208; + }; + 6BCF32141104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 85"; + rLen = 0; + rLoc = 1741; + rType = 0; + vrLen = 557; + vrLoc = 1973; + }; + 6BCF32151104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 38"; + rLen = 0; + rLoc = 1418; + rType = 0; + vrLen = 1151; + vrLoc = 1134; + }; + 6BCF32161104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 448"; + rLen = 0; + rLoc = 14070; + rType = 0; + vrLen = 968; + vrLoc = 13200; + }; + 6BCF32171104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 45"; + rLen = 0; + rLoc = 1570; + rType = 0; + vrLen = 783; + vrLoc = 1065; + }; + 6BCF32181104C9F0009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 267"; + name = "NavMeshTesterTool.cpp: 367"; rLen = 0; - rLoc = 7318; + rLoc = 4702; + rType = 0; + vrLen = 573; + vrLoc = 9620; + }; + 6BCF32191104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 293"; + rLen = 0; + rLoc = 6645; + rType = 0; + vrLen = 669; + vrLoc = 6192; + }; + 6BCF321A1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 59"; + rLen = 29; + rLoc = 1637; + rType = 0; + vrLen = 993; + vrLoc = 1241; + }; + 6BCF321B1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 344"; + rLen = 0; + rLoc = 8959; + rType = 0; + vrLen = 843; + vrLoc = 8849; + }; + 6BCF321C1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 59"; + rLen = 29; + rLoc = 1637; + rType = 0; + vrLen = 815; + vrLoc = 981; + }; + 6BCF321D1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 583"; + rLen = 0; + rLoc = 16758; + rType = 0; + vrLen = 907; + vrLoc = 16408; + }; + 6BCF321E1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 40"; + rLen = 13; + rLoc = 1428; + rType = 0; + vrLen = 774; + vrLoc = 981; + }; + 6BCF321F1104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 583"; + rLen = 0; + rLoc = 16758; + rType = 0; + vrLen = 896; + vrLoc = 16422; + }; + 6BCF32201104C9F0009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 74"; + rLen = 0; + rLoc = 2790; + rType = 0; + vrLen = 1233; + vrLoc = 2441; + }; + 6BCF322B1104CA22009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 86"; + rLen = 0; + rLoc = 3160; + rType = 0; + vrLen = 1233; + vrLoc = 2441; + }; + 6BCF322C1104CA22009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 930"; + rLen = 0; + rLoc = 28142; + rType = 0; + vrLen = 940; + vrLoc = 27006; + }; + 6BCF322D1104CA22009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 583"; + rLen = 0; + rLoc = 16758; + rType = 0; + vrLen = 1036; + vrLoc = 16326; + }; + 6BCF322E1104CA22009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 86"; + rLen = 0; + rLoc = 3160; + rType = 0; + vrLen = 1233; + vrLoc = 2441; + }; + 6BCF322F1104CA22009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 930"; + rLen = 0; + rLoc = 28142; + rType = 0; + vrLen = 940; + vrLoc = 27006; + }; + 6BCF32301104CA22009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 478"; + rLen = 0; + rLoc = 13328; + rType = 0; + vrLen = 1056; + vrLoc = 13403; + }; + 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {891, 752}}"; + sepNavSelRange = "{1164, 7}"; + sepNavVisRange = "{837, 742}"; + }; + }; + 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {891, 2384}}"; + sepNavSelRange = "{2199, 0}"; + sepNavVisRange = "{2904, 721}"; + }; + }; + 6BCF32391104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 476"; + rLen = 0; + rLoc = 13249; + rType = 0; + vrLen = 870; + vrLoc = 13403; + }; + 6BCF323A1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 50"; + rLen = 0; + rLoc = 1608; + rType = 0; + vrLen = 888; + vrLoc = 1298; + }; + 6BCF323B1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 128"; + rLen = 0; + rLoc = 3239; + rType = 0; + vrLen = 701; + vrLoc = 2667; + }; + 6BCF323C1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 555"; + rLen = 0; + rLoc = 16805; + rType = 0; + vrLen = 908; + vrLoc = 15392; + }; + 6BCF323D1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 790"; + rLen = 1; + rLoc = 21111; + rType = 0; + vrLen = 1183; + vrLoc = 20122; + }; + 6BCF323E1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 45"; + rLen = 0; + rLoc = 1578; + rType = 0; + vrLen = 640; + vrLoc = 918; + }; + 6BCF323F1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 953"; + rLen = 0; + rLoc = 28219; + rType = 0; + vrLen = 923; + vrLoc = 24784; + }; + 6BCF32401104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 571"; + rLen = 0; + rLoc = 17854; + rType = 0; + vrLen = 982; + vrLoc = 17129; + }; + 6BCF32411104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 326"; + rLen = 0; + rLoc = 14463; + rType = 0; + vrLen = 1214; + vrLoc = 13618; + }; + 6BCF32421104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 200"; + rLen = 0; + rLoc = 5467; + rType = 0; + vrLen = 976; + vrLoc = 5046; + }; + 6BCF32431104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 476"; + rLen = 0; + rLoc = 13249; + rType = 0; + vrLen = 870; + vrLoc = 13403; + }; + 6BCF32441104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 808"; + rLen = 0; + rLoc = 21708; + rType = 0; + vrLen = 677; + vrLoc = 21177; + }; + 6BCF32451104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 554"; + rLen = 941; + rLoc = 17104; + rType = 0; + vrLen = 788; + vrLoc = 17379; + }; + 6BCF32461104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 952"; + rLen = 0; + rLoc = 28662; + rType = 0; + vrLen = 930; + vrLoc = 27882; + }; + 6BCF32471104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 784"; + rLen = 825; + rLoc = 20881; + rType = 0; + vrLen = 953; + vrLoc = 20254; + }; + 6BCF32481104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 948"; + rLen = 0; + rLoc = 28111; + rType = 0; + vrLen = 692; + vrLoc = 27658; + }; + 6BCF32491104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 567"; + rLen = 0; + rLoc = 17594; + rType = 0; + vrLen = 814; + vrLoc = 17258; + }; + 6BCF324A1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 20"; + rLen = 0; + rLoc = 927; + rType = 0; + vrLen = 1062; + vrLoc = 59; + }; + 6BCF324B1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 128"; + rLen = 0; + rLoc = 3239; + rType = 0; + vrLen = 701; + vrLoc = 2667; + }; + 6BCF324C1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 28"; + rLen = 0; + rLoc = 1118; + rType = 0; + vrLen = 640; + vrLoc = 918; + }; + 6BCF324D1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 555"; + rLen = 0; + rLoc = 16805; + rType = 0; + vrLen = 908; + vrLoc = 15392; + }; + 6BCF324E1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 790"; + rLen = 1; + rLoc = 21111; + rType = 0; + vrLen = 1183; + vrLoc = 20122; + }; + 6BCF324F1104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 45"; + rLen = 0; + rLoc = 1578; + rType = 0; + vrLen = 640; + vrLoc = 918; + }; + 6BCF32501104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 953"; + rLen = 0; + rLoc = 28219; + rType = 0; + vrLen = 923; + vrLoc = 24784; + }; + 6BCF32511104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 571"; + rLen = 0; + rLoc = 17854; + rType = 0; + vrLen = 982; + vrLoc = 17129; + }; + 6BCF32521104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 326"; + rLen = 0; + rLoc = 14463; + rType = 0; + vrLen = 1214; + vrLoc = 13618; + }; + 6BCF32531104CDB5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 358"; + rLen = 0; + rLoc = 9708; + rType = 0; + vrLen = 829; + vrLoc = 9550; + }; + 6BCF325D1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 358"; + rLen = 0; + rLoc = 9708; + rType = 0; + vrLen = 829; + vrLoc = 9550; + }; + 6BCF325E1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 224"; + rLen = 0; + rLoc = 4913; + rType = 0; + vrLen = 658; + vrLoc = 2616; + }; + 6BCF325F1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 61"; + rLen = 0; + rLoc = 1822; + rType = 0; + vrLen = 656; + vrLoc = 1483; + }; + 6BCF32601104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 80"; + rLen = 0; + rLoc = 2311; + rType = 0; + vrLen = 559; + vrLoc = 1295; + }; + 6BCF32611104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 35"; + rLen = 0; + rLoc = 1237; + rType = 0; + vrLen = 646; + vrLoc = 918; + }; + 6BCF32621104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 52"; + rLen = 0; + rLoc = 1891; + rType = 0; + vrLen = 1151; + vrLoc = 1236; + }; + 6BCF32631104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 99"; + rLen = 0; + rLoc = 2795; + rType = 0; + vrLen = 505; + vrLoc = 2598; + }; + 6BCF32641104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 314"; + rLen = 22; + rLoc = 7195; + rType = 0; + vrLen = 569; + vrLoc = 6750; + }; + 6BCF32651104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 569"; + rLen = 0; + rLoc = 17792; + rType = 0; + vrLen = 786; + vrLoc = 17096; + }; + 6BCF32661104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 241"; + rLen = 0; + rLoc = 7983; + rType = 0; + vrLen = 728; + vrLoc = 7191; + }; + 6BCF32671104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'class InputGeom' has no member named 'deleteOffMeshLink'"; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + rLen = 1; + rLoc = 104; + rType = 1; + }; + 6BCF32681104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 358"; + rLen = 0; + rLoc = 9708; + rType = 0; + vrLen = 829; + vrLoc = 9550; + }; + 6BCF32691104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 224"; + rLen = 0; + rLoc = 4913; + rType = 0; + vrLen = 658; + vrLoc = 2616; + }; + 6BCF326A1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 61"; + rLen = 0; + rLoc = 1822; + rType = 0; + vrLen = 656; + vrLoc = 1483; + }; + 6BCF326B1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 91"; + rLen = 0; + rLoc = 2263; + rType = 0; + vrLen = 603; + vrLoc = 2002; + }; + 6BCF326C1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 80"; + rLen = 0; + rLoc = 2311; + rType = 0; + vrLen = 559; + vrLoc = 1295; + }; + 6BCF326D1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 839"; + rLen = 0; + rLoc = 25269; + rType = 0; + vrLen = 919; + vrLoc = 24794; + }; + 6BCF326E1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 785"; + rLen = 0; + rLoc = 20940; + rType = 0; + vrLen = 1164; + vrLoc = 20147; + }; + 6BCF326F1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 35"; + rLen = 0; + rLoc = 1237; + rType = 0; + vrLen = 646; + vrLoc = 918; + }; + 6BCF32701104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 36"; + rLen = 17; + rLoc = 1349; + rType = 0; + vrLen = 883; + vrLoc = 960; + }; + 6BCF32711104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 162"; + rLen = 36; + rLoc = 4287; + rType = 0; + vrLen = 617; + vrLoc = 4037; + }; + 6BCF32721104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 55"; + rLen = 0; + rLoc = 2149; + rType = 0; + vrLen = 1142; + vrLoc = 1236; + }; + 6BCF32731104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 184"; + rLen = 0; + rLoc = 4962; + rType = 0; + vrLen = 878; + vrLoc = 4407; + }; + 6BCF32741104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 58"; + rLen = 22; + rLoc = 2298; + rType = 0; + vrLen = 1142; + vrLoc = 1236; + }; + 6BCF32751104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 101"; + rLen = 0; + rLoc = 2882; + rType = 0; + vrLen = 628; + vrLoc = 2536; + }; + 6BCF32761104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 52"; + rLen = 0; + rLoc = 1891; + rType = 0; + vrLen = 1151; + vrLoc = 1236; + }; + 6BCF32771104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 99"; + rLen = 0; + rLoc = 2795; + rType = 0; + vrLen = 505; + vrLoc = 2598; + }; + 6BCF32781104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 314"; + rLen = 22; + rLoc = 7195; + rType = 0; + vrLen = 569; + vrLoc = 6750; + }; + 6BCF32791104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 569"; + rLen = 0; + rLoc = 17792; + rType = 0; + vrLen = 786; + vrLoc = 17096; + }; + 6BCF327A1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 241"; + rLen = 0; + rLoc = 7983; + rType = 0; + vrLen = 728; + vrLoc = 7191; + }; + 6BCF327B1104CFE7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 92"; + rLen = 0; + rLoc = 2501; + rType = 0; + vrLen = 421; + vrLoc = 2172; + }; + 6BCF32801104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 92"; + rLen = 0; + rLoc = 2501; + rType = 0; + vrLen = 428; + vrLoc = 2172; + }; + 6BCF32811104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 208"; + rLen = 0; + rLoc = 8522; + rType = 0; + vrLen = 1536; + vrLoc = 7836; + }; + 6BCF32821104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 378"; + rLen = 0; + rLoc = 10348; + rType = 0; + vrLen = 672; + vrLoc = 9887; + }; + 6BCF32831104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 176"; + rLen = 0; + rLoc = 1741; + rType = 0; + vrLen = 864; + vrLoc = 4750; + }; + 6BCF32841104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: no matching function for call to 'dtNavMesh::findNearestPoly(float [3], float [3])'"; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + rLen = 0; + rLoc = 182; + rType = 1; + }; + 6BCF32851104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 92"; + rLen = 0; + rLoc = 2501; + rType = 0; + vrLen = 428; + vrLoc = 2172; + }; + 6BCF32861104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 95"; + rLen = 0; + rLoc = 3651; + rType = 0; + vrLen = 1816; + vrLoc = 3246; + }; + 6BCF32871104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 849"; + rLen = 0; + rLoc = 10769; + rType = 0; + vrLen = 708; + vrLoc = 22303; + }; + 6BCF32881104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 208"; + rLen = 0; + rLoc = 8522; + rType = 0; + vrLen = 1536; + vrLoc = 7836; + }; + 6BCF32891104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 378"; + rLen = 0; + rLoc = 10348; + rType = 0; + vrLen = 672; + vrLoc = 9887; + }; + 6BCF328A1104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 176"; + rLen = 0; + rLoc = 1741; + rType = 0; + vrLen = 864; + vrLoc = 4750; + }; + 6BCF328B1104D114009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 173"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 398; + vrLoc = 4294; + }; + 6BCF328E1104D179009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 172"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 686; + vrLoc = 4104; + }; + 6BCF328F1104D179009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 176"; + rLen = 0; + rLoc = 1741; + rType = 0; + vrLen = 1103; + vrLoc = 4704; + }; + 6BCF32901104D179009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 172"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 686; + vrLoc = 4104; + }; + 6BCF32911104D179009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 443"; + rLen = 0; + rLoc = 13647; + rType = 0; + vrLen = 947; + vrLoc = 12855; + }; + 6BCF32941104D1B2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 428"; + rLen = 0; + rLoc = 13645; + rType = 0; + vrLen = 1006; + vrLoc = 12796; + }; + 6BCF32951104D1B2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 378"; + rLen = 0; + rLoc = 10348; + rType = 0; + vrLen = 785; + vrLoc = 9848; + }; + 6BCF32961104D1B2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 428"; + rLen = 0; + rLoc = 13645; + rType = 0; + vrLen = 1006; + vrLoc = 12796; + }; + 6BCF32971104D1B2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 377"; + rLen = 0; + rLoc = 10347; + rType = 0; + vrLen = 785; + vrLoc = 9848; + }; + 6BCF329F1104D31E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 366"; + rLen = 0; + rLoc = 9925; + rType = 0; + vrLen = 841; + vrLoc = 9709; + }; + 6BCF32A01104D31E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 200"; + rLen = 0; + rLoc = 8186; + rType = 0; + vrLen = 1410; + vrLoc = 7842; + }; + 6BCF32A11104D31E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 430"; + rLen = 0; + rLoc = 13647; + rType = 0; + vrLen = 952; + vrLoc = 12873; + }; + 6BCF32A21104D31E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 490"; + rLen = 0; + rLoc = 13927; + rType = 0; + vrLen = 747; + vrLoc = 13784; + }; + 6BCF32A31104D31E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 374"; + rLen = 0; + rLoc = 10177; + rType = 0; + vrLen = 850; + vrLoc = 9709; + }; + 6BCF32A41104D31E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 490"; + rLen = 0; + rLoc = 13927; + rType = 0; + vrLen = 747; + vrLoc = 13784; + }; + 6BCF32A51104D31E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 366"; + rLen = 0; + rLoc = 9925; + rType = 0; + vrLen = 841; + vrLoc = 9709; + }; + 6BCF32A61104D31E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 200"; + rLen = 0; + rLoc = 8186; + rType = 0; + vrLen = 1410; + vrLoc = 7842; + }; + 6BCF32A71104D31E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 430"; + rLen = 0; + rLoc = 13647; + rType = 0; + vrLen = 952; + vrLoc = 12873; + }; + 6BCF32A81104D31E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 502"; + rLen = 0; + rLoc = 14203; + rType = 0; + vrLen = 1032; + vrLoc = 15797; + }; + 6BCF32AF1104D3E5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 102"; + rLen = 0; + rLoc = 2749; + rType = 0; + vrLen = 721; + vrLoc = 2180; + }; + 6BCF32B01104D3E5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 368"; + rLen = 65; + rLoc = 9931; + rType = 0; + vrLen = 846; + vrLoc = 9708; + }; + 6BCF32B11104D3E5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 95"; + rLen = 0; + rLoc = 2870; + rType = 0; + vrLen = 619; + vrLoc = 2526; + }; + 6BCF32B21104D3E5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 439"; + rLen = 0; + rLoc = 13647; + rType = 0; + vrLen = 1001; + vrLoc = 12664; + }; + 6BCF32B31104D3E5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 102"; + rLen = 0; + rLoc = 2749; + rType = 0; + vrLen = 721; + vrLoc = 2180; + }; + 6BCF32B41104D3E5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 368"; + rLen = 65; + rLoc = 9931; + rType = 0; + vrLen = 846; + vrLoc = 9708; + }; + 6BCF32B51104D3E5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 95"; + rLen = 0; + rLoc = 2870; + rType = 0; + vrLen = 619; + vrLoc = 2526; + }; + 6BCF32B61104D3E5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 17"; + rLen = 0; + rLoc = 917; + rType = 0; + vrLen = 1229; + vrLoc = 0; + }; + 6BCF32BA1104D405009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 7"; + rLen = 0; + rLoc = 303; + rType = 0; + vrLen = 1259; + vrLoc = 0; + }; + 6BCF32C11104D678009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 37"; + rLen = 0; + rLoc = 1318; + rType = 0; + vrLen = 780; + vrLoc = 784; + }; + 6BCF32C21104D678009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 122"; + rLen = 0; + rLoc = 3038; + rType = 0; + vrLen = 784; + vrLoc = 2543; + }; + 6BCF32C31104D678009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 65"; + rLen = 0; + rLoc = 2025; + rType = 0; + vrLen = 606; + vrLoc = 1763; + }; + 6BCF32C41104D678009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 65"; + rLen = 0; + rLoc = 2025; + rType = 0; + vrLen = 610; + vrLoc = 1763; + }; + 6BCF32C51104D678009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 37"; + rLen = 0; + rLoc = 1318; + rType = 0; + vrLen = 780; + vrLoc = 784; + }; + 6BCF32C61104D678009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 122"; + rLen = 0; + rLoc = 3038; + rType = 0; + vrLen = 784; + vrLoc = 2543; + }; + 6BCF32C71104D678009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 178"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1035; + vrLoc = 4403; + }; + 6BCF32C91104D6F4009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 59"; + rLen = 0; + rLoc = 2206; + rType = 0; + vrLen = 705; + vrLoc = 1767; + }; + 6BCF32CA1104D6F4009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 190"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1137; + vrLoc = 4932; + }; + 6BCF32CB1104D6F4009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + rLen = 1; + rLoc = 168; + rType = 1; + }; + 6BCF32CC1104D6F4009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 190"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1137; + vrLoc = 4932; + }; + 6BCF32CD1104D6F4009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 174"; + rLen = 0; + rLoc = 5568; + rType = 0; + vrLen = 1041; + vrLoc = 4780; + }; + 6BCF32D11104D728009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 174"; + rLen = 0; + rLoc = 5568; + rType = 0; + vrLen = 1113; + vrLoc = 4780; + }; + 6BCF32D21104D728009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 102"; + rLen = 0; + rLoc = 2749; + rType = 0; + vrLen = 719; + vrLoc = 2182; + }; + 6BCF32D31104D728009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 190"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1103; + vrLoc = 4966; + }; + 6BCF32D41104D728009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 174"; + rLen = 0; + rLoc = 5568; + rType = 0; + vrLen = 1113; + vrLoc = 4780; + }; + 6BCF32D51104D728009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 102"; + rLen = 0; + rLoc = 2749; + rType = 0; + vrLen = 719; + vrLoc = 2182; + }; + 6BCF32D61104D728009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 169"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1104; + vrLoc = 4539; + }; + 6BCF32D81104D760009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 178"; + rLen = 0; + rLoc = 5712; + rType = 0; + vrLen = 1005; + vrLoc = 5260; + }; + 6BCF32D91104D760009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 179"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1127; + vrLoc = 4539; + }; + 6BCF32DA1104D760009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 178"; + rLen = 0; + rLoc = 5712; + rType = 0; + vrLen = 1005; + vrLoc = 5260; + }; + 6BCF32DB1104D760009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 169"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1057; + vrLoc = 4546; + }; + 6BCF32DD1104D79B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 105"; + rLen = 11; + rLoc = 4137; + rType = 0; + vrLen = 1677; + vrLoc = 2812; + }; + 6BCF32DE1104D79B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 188"; + rLen = 0; + rLoc = 6013; + rType = 0; + vrLen = 1005; + vrLoc = 5260; + }; + 6BCF32DF1104D79B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 180"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1103; + vrLoc = 4546; + }; + 6BCF32E01104D79B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 188"; + rLen = 0; + rLoc = 6013; + rType = 0; + vrLen = 1005; + vrLoc = 5260; + }; + 6BCF32E11104D79B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 105"; + rLen = 11; + rLoc = 4137; + rType = 0; + vrLen = 1677; + vrLoc = 2812; + }; + 6BCF32E21104D79B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 188"; + rLen = 0; + rLoc = 6013; + rType = 0; + vrLen = 1005; + vrLoc = 5260; + }; + 6BCF32E31104D79B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 170"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1057; + vrLoc = 4546; + }; + 6BCF32E51104D7A9009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 177"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1241; + vrLoc = 4546; + }; + 6BCF32E71104D7F5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 174"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1244; + vrLoc = 4546; + }; + 6BCF32E81104D7F5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 123"; + rLen = 0; + rLoc = 3103; + rType = 0; + vrLen = 781; + vrLoc = 2543; + }; + 6BCF32E91104D7F5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 54"; + rLen = 16; + rLoc = 2046; + rType = 0; + vrLen = 1257; + vrLoc = 1130; + }; + 6BCF32EA1104D7F5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 169"; + rLen = 0; + rLoc = 4572; + rType = 0; + vrLen = 840; + vrLoc = 4076; + }; + 6BCF32EB1104D7F5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 174"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1244; + vrLoc = 4546; + }; + 6BCF32EC1104D7F5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 123"; + rLen = 0; + rLoc = 3103; + rType = 0; + vrLen = 781; + vrLoc = 2543; + }; + 6BCF32ED1104D7F5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 169"; + rLen = 0; + rLoc = 4572; + rType = 0; + vrLen = 840; + vrLoc = 4076; + }; + 6BCF32EE1104D7F5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 54"; + rLen = 16; + rLoc = 2046; + rType = 0; + vrLen = 1257; + vrLoc = 1130; + }; + 6BCF32EF1104D7F5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 191"; + rLen = 0; + rLoc = 5728; + rType = 0; + vrLen = 1058; + vrLoc = 4299; + }; + 6BCF32F11104D811009445BF /* Sample_SoloMeshSimple.cpp:569 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + functionName = "Sample_SoloMeshSimple::handleBuild()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 569; + location = Recast; + modificationTime = 285601420.834297; + state = 1; + }; + 6BCF32F31104D815009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 191"; + rLen = 0; + rLoc = 5728; + rType = 0; + vrLen = 1058; + vrLoc = 4299; + }; + 6BCF32F41104D815009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 569"; + rLen = 0; + rLoc = 17792; + rType = 0; + vrLen = 1207; + vrLoc = 16917; + }; + 6BCF32F51104D815009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 191"; + rLen = 0; + rLoc = 5728; + rType = 0; + vrLen = 1058; + vrLoc = 4299; + }; + 6BCF32F61104D815009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 567"; + rLen = 0; + rLoc = 17673; + rType = 0; + vrLen = 1122; + vrLoc = 17026; + }; + 6BCF32F71104D827009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 567"; + rLen = 0; + rLoc = 17673; + rType = 0; + vrLen = 1122; + vrLoc = 17026; + }; + 6BCF32FA1104D84C009445BF /* DetourNavMeshBuilder.cpp:572 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + functionName = "dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, int* outDataSize)"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 572; + location = Recast; + modificationTime = 285601420.834494; + state = 1; + }; + 6BCF32FE1104D891009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 568"; + rLen = 0; + rLoc = 17693; + rType = 0; + vrLen = 1119; + vrLoc = 17058; + }; + 6BCF32FF1104D891009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 578"; + rLen = 0; + rLoc = 16783; + rType = 0; + vrLen = 952; + vrLoc = 15939; + }; + 6BCF33001104D891009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 368"; + rLen = 0; + rLoc = 9931; + rType = 0; + vrLen = 888; + vrLoc = 4088; + }; + 6BCF33011104D891009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 174"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1244; + vrLoc = 4546; + }; + 6BCF33021104D891009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 568"; + rLen = 0; + rLoc = 17693; + rType = 0; + vrLen = 1119; + vrLoc = 17058; + }; + 6BCF33031104D891009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 572"; + rLen = 0; + rLoc = 16679; + rType = 0; + vrLen = 948; + vrLoc = 15943; + }; + 6BCF33041104D891009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 371"; + rLen = 0; + rLoc = 10063; + rType = 0; + vrLen = 837; + vrLoc = 9708; + }; + 6BCF33051104D891009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 578"; + rLen = 0; + rLoc = 16783; + rType = 0; + vrLen = 952; + vrLoc = 15939; + }; + 6BCF33061104D891009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 368"; + rLen = 0; + rLoc = 9931; + rType = 0; + vrLen = 888; + vrLoc = 4088; + }; + 6BCF33071104D891009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 169"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1219; + vrLoc = 4546; + }; + 6BCF330A11059D07009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 443"; + rLen = 0; + rLoc = 13647; + rType = 0; + vrLen = 1078; + vrLoc = 13141; + }; + 6BCF330B11059D07009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 368"; + rLen = 0; + rLoc = 9931; + rType = 0; + vrLen = 869; + vrLoc = 4107; + }; + 6BCF330C11059D07009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 443"; + rLen = 0; + rLoc = 13647; + rType = 0; + vrLen = 1078; + vrLoc = 13141; + }; + 6BCF330D11059D07009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 377"; + rLen = 0; + rLoc = 10347; + rType = 0; + vrLen = 808; + vrLoc = 9750; + }; + 6BCF331011059D21009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 373"; + rLen = 0; + rLoc = 10122; + rType = 0; + vrLen = 808; + vrLoc = 9750; + }; + 6BCF331411059D39009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 373"; + rLen = 0; + rLoc = 10122; + rType = 0; + vrLen = 808; + vrLoc = 9750; + }; + 6BCF331511059D39009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 578"; + rLen = 0; + rLoc = 16783; + rType = 0; + vrLen = 952; + vrLoc = 15939; + }; + 6BCF331611059D39009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 373"; + rLen = 0; + rLoc = 10122; + rType = 0; + vrLen = 808; + vrLoc = 9750; + }; + 6BCF331711059D39009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 447"; + rLen = 0; + rLoc = 12551; + rType = 0; + vrLen = 1259; + vrLoc = 11970; + }; + 6BCF331811059E23009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */; + name = "DetourNavMeshBuilder.h: 45"; + rLen = 0; + rLoc = 1545; rType = 0; vrLen = 588; - vrLoc = 7105; + vrLoc = 1158; }; - 6BE731F910FE6ABD00C1B074 /* PBXTextBookmark */ = { + 6BCF331911059E23009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 250"; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 27"; rLen = 0; - rLoc = 7228; + rLoc = 1154; rType = 0; - vrLen = 807; - vrLoc = 6832; + vrLen = 1095; + vrLoc = 516; }; - 6BE731FA10FE6ABD00C1B074 /* PBXTextBookmark */ = { + 6BCF331A11059E23009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 174"; + rLen = 102; + rLoc = 4650; + rType = 0; + vrLen = 1167; + vrLoc = 4235; + }; + 6BCF331B11059E23009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 458"; + rLen = 0; + rLoc = 13063; + rType = 0; + vrLen = 1042; + vrLoc = 15063; + }; + 6BCF331C11059E23009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 458"; + rLen = 0; + rLoc = 13063; + rType = 0; + vrLen = 1042; + vrLoc = 15063; + }; + 6BCF331D11059E23009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 60"; + rLen = 0; + rLoc = 2230; + rType = 0; + vrLen = 1123; + vrLoc = 4235; + }; + 6BCF331E11059E23009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 27"; + rLen = 0; + rLoc = 1154; + rType = 0; + vrLen = 1095; + vrLoc = 516; + }; + 6BCF331F11059E23009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 174"; + rLen = 102; + rLoc = 4650; + rType = 0; + vrLen = 1167; + vrLoc = 4235; + }; + 6BCF332011059E23009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 356"; + rLen = 0; + rLoc = 9384; + rType = 0; + vrLen = 935; + vrLoc = 9142; + }; + 6BCF332111059E80009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 366"; + rLen = 0; + rLoc = 9818; + rType = 0; + vrLen = 935; + vrLoc = 9142; + }; + 6BCF332411059EA9009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 366"; + rLen = 0; + rLoc = 9818; + rType = 0; + vrLen = 935; + vrLoc = 9142; + }; + 6BCF332511059EA9009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 752"; + name = "DetourNavMesh.cpp: 373"; rLen = 0; - rLoc = 19232; + rLoc = 10122; + rType = 0; + vrLen = 804; + vrLoc = 9750; + }; + 6BCF332611059EA9009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 366"; + rLen = 0; + rLoc = 9818; + rType = 0; + vrLen = 935; + vrLoc = 9142; + }; + 6BCF332711059EA9009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 377"; + rLen = 0; + rLoc = 10347; + rType = 0; + vrLen = 854; + vrLoc = 9750; + }; + 6BCF332A1105A59B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 377"; + rLen = 0; + rLoc = 10347; + rType = 0; + vrLen = 882; + vrLoc = 9750; + }; + 6BCF332B1105A59B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 443"; + rLen = 0; + rLoc = 13647; + rType = 0; + vrLen = 1062; + vrLoc = 13153; + }; + 6BCF332C1105A59B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 377"; + rLen = 0; + rLoc = 10347; + rType = 0; + vrLen = 882; + vrLoc = 9750; + }; + 6BCF332D1105A59B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 172"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1048; + vrLoc = 4440; + }; + 6BCF33331105B2B5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 183"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1049; + vrLoc = 4539; + }; + 6BCF33341105B2B5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 94"; + rLen = 0; + rLoc = 3687; + rType = 0; + vrLen = 1460; + vrLoc = 3107; + }; + 6BCF33351105B2B5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 314"; + rLen = 0; + rLoc = 10859; + rType = 0; + vrLen = 627; + vrLoc = 10415; + }; + 6BCF33361105B2B5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 275"; + rLen = 0; + rLoc = 8053; + rType = 0; + vrLen = 739; + vrLoc = 7605; + }; + 6BCF33371105B2B5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 183"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1049; + vrLoc = 4539; + }; + 6BCF33381105B2B5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 94"; + rLen = 0; + rLoc = 3687; + rType = 0; + vrLen = 1460; + vrLoc = 3107; + }; + 6BCF33391105B2B5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 314"; + rLen = 0; + rLoc = 10859; + rType = 0; + vrLen = 627; + vrLoc = 10415; + }; + 6BCF333A1105B2B5009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 260"; + rLen = 0; + rLoc = 7659; + rType = 0; + vrLen = 584; + vrLoc = 7290; + }; + 6BCF333C1105B2E2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 317"; + rLen = 0; + rLoc = 9485; + rType = 0; + vrLen = 765; + vrLoc = 8713; + }; + 6BCF333E1105B301009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 316"; + rLen = 0; + rLoc = 9451; + rType = 0; + vrLen = 772; + vrLoc = 8846; + }; + 6BCF33401105B318009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 316"; + rLen = 0; + rLoc = 9451; + rType = 0; + vrLen = 705; + vrLoc = 8942; + }; + 6BCF33421105B335009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 317"; + rLen = 0; + rLoc = 9485; + rType = 0; + vrLen = 784; + vrLoc = 8753; + }; + 6BCF33441105B3D2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 283"; + rLen = 0; + rLoc = 8250; + rType = 0; + vrLen = 818; + vrLoc = 7599; + }; + 6BCF33461105B440009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 318"; + rLen = 0; + rLoc = 9442; + rType = 0; + vrLen = 814; + vrLoc = 8997; + }; + 6BCF334A1105B7BD009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 325"; + rLen = 0; + rLoc = 9496; + rType = 0; + vrLen = 801; + vrLoc = 9126; + }; + 6BCF334C1105B85A009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 320"; + rLen = 0; + rLoc = 9445; + rType = 0; + vrLen = 874; + vrLoc = 8864; + }; + 6BCF334E1105B8AA009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 323"; + rLen = 0; + rLoc = 9640; + rType = 0; + vrLen = 721; + vrLoc = 9209; + }; + 6BCF33511105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 322"; + rLen = 0; + rLoc = 9589; + rType = 0; + vrLen = 746; + vrLoc = 9209; + }; + 6BCF33521105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 106"; + rLen = 126; + rLoc = 4221; + rType = 0; + vrLen = 1464; + vrLoc = 3173; + }; + 6BCF33531105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: at this point in file"; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + rLen = 1; + rLoc = 365; + rType = 1; + }; + 6BCF33541105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 322"; + rLen = 0; + rLoc = 9589; + rType = 0; + vrLen = 746; + vrLoc = 9209; + }; + 6BCF33551105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 326"; + rLen = 0; + rLoc = 8551; + rType = 0; + vrLen = 876; + vrLoc = 7809; + }; + 6BCF33561105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 94"; + rLen = 0; + rLoc = 3687; + rType = 0; + vrLen = 1374; + vrLoc = 3264; + }; + 6BCF33571105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 21"; + rLen = 0; + rLoc = 985; + rType = 0; + vrLen = 1303; + vrLoc = 0; + }; + 6BCF33581105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 106"; + rLen = 126; + rLoc = 4221; + rType = 0; + vrLen = 1465; + vrLoc = 3173; + }; + 6BCF33591105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 366"; + rLen = 94; + rLoc = 9773; + rType = 0; + vrLen = 811; + vrLoc = 9049; + }; + 6BCF335A1105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 106"; + rLen = 126; + rLoc = 4221; + rType = 0; + vrLen = 1464; + vrLoc = 3173; + }; + 6BCF335B1105B986009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 366"; + rLen = 0; + rLoc = 9858; + rType = 0; + vrLen = 811; + vrLoc = 9049; + }; + 6BCF33651105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 86"; + rLen = 0; + rLoc = 3013; + rType = 0; + vrLen = 1036; + vrLoc = 2397; + }; + 6BCF33661105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 108"; + rLen = 58; + rLoc = 4289; + rType = 0; + vrLen = 1071; + vrLoc = 3667; + }; + 6BCF33671105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 366"; + rLen = 0; + rLoc = 9857; + rType = 0; + vrLen = 669; + vrLoc = 9277; + }; + 6BCF33681105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 52"; + rLen = 0; + rLoc = 1843; + rType = 0; + vrLen = 1043; + vrLoc = 1344; + }; + 6BCF33691105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 164"; + rLen = 0; + rLoc = 4385; + rType = 0; + vrLen = 896; + vrLoc = 4547; + }; + 6BCF336A1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 31"; + rLen = 7; + rLoc = 1164; + rType = 0; + vrLen = 742; + vrLoc = 837; + }; + 6BCF336B1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 83"; + rLen = 62; + rLoc = 2588; + rType = 0; + vrLen = 670; + vrLoc = 2182; + }; + 6BCF336C1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 449"; + rLen = 0; + rLoc = 13813; + rType = 0; + vrLen = 908; + vrLoc = 13218; + }; + 6BCF336D1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: expected `)' before 'm_bidir'"; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + rLen = 1; + rLoc = 63; + rType = 1; + }; + 6BCF336E1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 366"; + rLen = 0; + rLoc = 9858; + rType = 0; + vrLen = 764; + vrLoc = 9253; + }; + 6BCF336F1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 322"; + rLen = 0; + rLoc = 9589; + rType = 0; + vrLen = 746; + vrLoc = 9209; + }; + 6BCF33701105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 105"; + rLen = 11; + rLoc = 4137; + rType = 0; + vrLen = 1550; + vrLoc = 3129; + }; + 6BCF33711105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 82"; + rLen = 0; + rLoc = 2877; + rType = 0; + vrLen = 1009; + vrLoc = 2481; + }; + 6BCF33721105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 106"; + rLen = 0; + rLoc = 4288; + rType = 0; + vrLen = 1550; + vrLoc = 3129; + }; + 6BCF33731105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 319"; + rLen = 0; + rLoc = 9495; + rType = 0; + vrLen = 976; + vrLoc = 8443; + }; + 6BCF33741105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 83"; + rLen = 0; + rLoc = 3051; + rType = 0; + vrLen = 1663; + vrLoc = 2643; + }; + 6BCF33751105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; + name = "DebugDraw.cpp: 86"; + rLen = 0; + rLoc = 3013; + rType = 0; + vrLen = 1036; + vrLoc = 2397; + }; + 6BCF33761105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 108"; + rLen = 58; + rLoc = 4289; + rType = 0; + vrLen = 1123; + vrLoc = 3615; + }; + 6BCF33771105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 184"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 904; + vrLoc = 4581; + }; + 6BCF33781105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 108"; + rLen = 58; + rLoc = 4289; + rType = 0; + vrLen = 1071; + vrLoc = 3667; + }; + 6BCF33791105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 448"; + rLen = 0; + rLoc = 13807; + rType = 0; + vrLen = 825; + vrLoc = 13311; + }; + 6BCF337A1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 366"; + rLen = 0; + rLoc = 9857; + rType = 0; + vrLen = 669; + vrLoc = 9277; + }; + 6BCF337B1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 513"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 900; + vrLoc = 14112; + }; + 6BCF337C1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 164"; + rLen = 0; + rLoc = 4385; + rType = 0; + vrLen = 624; + vrLoc = 4076; + }; + 6BCF337D1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 52"; + rLen = 0; + rLoc = 1843; + rType = 0; + vrLen = 1043; + vrLoc = 1344; + }; + 6BCF337E1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 164"; + rLen = 0; + rLoc = 4385; + rType = 0; + vrLen = 896; + vrLoc = 4547; + }; + 6BCF337F1105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 36"; + rLen = 0; + rLoc = 1268; + rType = 0; + vrLen = 581; + vrLoc = 983; + }; + 6BCF33801105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */; + name = "OffMeshConnectionTool.h: 31"; + rLen = 7; + rLoc = 1164; + rType = 0; + vrLen = 742; + vrLoc = 837; + }; + 6BCF33811105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 116"; + rLen = 0; + rLoc = 2877; + rType = 0; + vrLen = 657; + vrLoc = 2637; + }; + 6BCF33821105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 449"; + rLen = 0; + rLoc = 13813; + rType = 0; + vrLen = 908; + vrLoc = 13218; + }; + 6BCF33831105BBA2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 63"; + rLen = 0; + rLoc = 1770; + rType = 0; + vrLen = 504; + vrLoc = 1437; + }; + 6BCF33861105BBC8009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 60"; + rLen = 0; + rLoc = 1670; + rType = 0; + vrLen = 506; + vrLoc = 1437; + }; + 6BCF33871105BBC8009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 164"; + rLen = 0; + rLoc = 4385; + rType = 0; + vrLen = 1142; + vrLoc = 4301; + }; + 6BCF33881105BBC8009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 60"; + rLen = 0; + rLoc = 1670; + rType = 0; + vrLen = 506; + vrLoc = 1437; + }; + 6BCF33891105BBC8009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 190"; + rLen = 0; + rLoc = 5728; + rType = 0; + vrLen = 1050; + vrLoc = 4360; + }; + 6BCF338C1105BCB7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 58"; + rLen = 14; + rLoc = 2343; + rType = 0; + vrLen = 1236; + vrLoc = 1128; + }; + 6BCF338D1105BCB7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 184"; + rLen = 22; + rLoc = 4958; + rType = 0; + vrLen = 1050; + vrLoc = 4360; + }; + 6BCF338E1105BCB7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 184"; + rLen = 22; + rLoc = 4958; + rType = 0; + vrLen = 1050; + vrLoc = 4360; + }; + 6BCF338F1105BCB7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 58"; + rLen = 14; + rLoc = 2343; + rType = 0; + vrLen = 1236; + vrLoc = 1128; + }; + 6BCF33901105BCB7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 195"; + rLen = 0; + rLoc = 5728; + rType = 0; + vrLen = 952; + vrLoc = 4547; + }; + 6BCF33941105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 184"; + rLen = 22; + rLoc = 4958; + rType = 0; + vrLen = 681; + vrLoc = 4547; + }; + 6BCF33951105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 314"; + rLen = 0; + rLoc = 7221; + rType = 0; + vrLen = 684; + vrLoc = 6767; + }; + 6BCF33961105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 241"; + rLen = 0; + rLoc = 7987; + rType = 0; + vrLen = 743; + vrLoc = 7172; + }; + 6BCF33971105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 195"; + rLen = 0; + rLoc = 6177; + rType = 0; + vrLen = 789; + vrLoc = 6096; + }; + 6BCF33981105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 58"; + rLen = 0; + rLoc = 2365; + rType = 0; + vrLen = 1016; + vrLoc = 1378; + }; + 6BCF33991105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 's' was not declared in this scope"; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + rLen = 1; + rLoc = 130; + rType = 1; + }; + 6BCF339A1105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 184"; + rLen = 22; + rLoc = 4958; + rType = 0; + vrLen = 681; + vrLoc = 4547; + }; + 6BCF339B1105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 132"; + rLen = 0; + rLoc = 3235; + rType = 0; + vrLen = 665; + vrLoc = 2864; + }; + 6BCF339C1105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 314"; + rLen = 0; + rLoc = 7221; + rType = 0; + vrLen = 684; + vrLoc = 6767; + }; + 6BCF339D1105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 241"; + rLen = 0; + rLoc = 7987; + rType = 0; + vrLen = 743; + vrLoc = 7172; + }; + 6BCF339E1105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 195"; + rLen = 0; + rLoc = 6177; + rType = 0; + vrLen = 789; + vrLoc = 6096; + }; + 6BCF339F1105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 58"; + rLen = 0; + rLoc = 2365; + rType = 0; + vrLen = 1016; + vrLoc = 1378; + }; + 6BCF33A01105BD0E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 133"; + rLen = 0; + rLoc = 3235; + rType = 0; + vrLen = 705; + vrLoc = 2864; + }; + 6BCF33A21105BD41009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 140"; + rLen = 0; + rLoc = 3387; + rType = 0; + vrLen = 717; + vrLoc = 2857; + }; + 6BCF33A31105BD41009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 184"; + rLen = 22; + rLoc = 4958; + rType = 0; + vrLen = 826; + vrLoc = 4526; + }; + 6BCF33A41105BD41009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 140"; + rLen = 0; + rLoc = 3387; + rType = 0; + vrLen = 717; + vrLoc = 2857; + }; + 6BCF33A51105BD41009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 189"; + rLen = 0; + rLoc = 5182; + rType = 0; + vrLen = 985; + vrLoc = 4700; + }; + 6BCF33A71105BDAD009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 184"; + rLen = 22; + rLoc = 4958; + rType = 0; + vrLen = 967; + vrLoc = 4700; + }; + 6BCF33A81105BDAD009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + rLen = 22; + rLoc = 3203; + rType = 0; + }; + 6BCF33A91105BDAD009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 184"; + rLen = 22; + rLoc = 4958; + rType = 0; + vrLen = 967; + vrLoc = 4700; + }; + 6BCF33AA1105BDAD009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 137"; + rLen = 0; + rLoc = 3238; + rType = 0; + vrLen = 667; + vrLoc = 2865; + }; + 6BCF33AD1105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 134"; + rLen = 0; + rLoc = 3238; + rType = 0; + vrLen = 623; + vrLoc = 2857; + }; + 6BCF33AE1105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 188"; + rLen = 0; + rLoc = 5153; + rType = 0; + vrLen = 816; + vrLoc = 4913; + }; + 6BCF33AF1105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 33"; + rLen = 0; + rLoc = 1153; + rType = 0; + vrLen = 815; + vrLoc = 1092; + }; + 6BCF33B01105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 27"; + rLen = 0; + rLoc = 1095; + rType = 0; + vrLen = 549; + vrLoc = 965; + }; + 6BCF33B11105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 79"; + rLen = 0; + rLoc = 2111; + rType = 0; + vrLen = 279; + vrLoc = 1754; + }; + 6BCF33B21105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 134"; + rLen = 0; + rLoc = 3238; + rType = 0; + vrLen = 623; + vrLoc = 2857; + }; + 6BCF33B31105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 188"; + rLen = 0; + rLoc = 5153; + rType = 0; + vrLen = 816; + vrLoc = 4913; + }; + 6BCF33B41105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */; + name = "DebugDraw.h: 33"; + rLen = 0; + rLoc = 1153; + rType = 0; + vrLen = 815; + vrLoc = 1092; + }; + 6BCF33B51105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 79"; + rLen = 0; + rLoc = 2111; + rType = 0; + vrLen = 279; + vrLoc = 1754; + }; + 6BCF33B61105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 27"; + rLen = 0; + rLoc = 1095; + rType = 0; + vrLen = 549; + vrLoc = 965; + }; + 6BCF33B71105BE51009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 37"; + rLen = 0; + rLoc = 1256; + rType = 0; + vrLen = 397; + vrLoc = 1134; + }; + 6BCF33BB1105BEE9009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 37"; + rLen = 0; + rLoc = 1256; + rType = 0; + vrLen = 508; + vrLoc = 1002; + }; + 6BCF33BC1105BEE9009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 449"; + rLen = 0; + rLoc = 13813; + rType = 0; + vrLen = 842; + vrLoc = 13284; + }; + 6BCF33BD1105BEE9009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 37"; + rLen = 0; + rLoc = 1256; + rType = 0; + vrLen = 508; + vrLoc = 1002; + }; + 6BCF33BE1105BEE9009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 286"; + rLen = 0; + rLoc = 9116; + rType = 0; + vrLen = 679; + vrLoc = 8367; + }; + 6BCF33C11105BF04009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 185"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 984; + vrLoc = 4440; + }; + 6BCF33C41105C466009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 165"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 986; + vrLoc = 4440; + }; + 6BCF33C51105C466009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 83"; + rLen = 62; + rLoc = 2588; + rType = 0; + vrLen = 627; + vrLoc = 2182; + }; + 6BCF33C61105C466009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 139"; + rLen = 0; + rLoc = 3351; + rType = 0; + vrLen = 743; + vrLoc = 2829; + }; + 6BCF33C71105C466009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 188"; + rLen = 0; + rLoc = 5153; + rType = 0; + vrLen = 990; + vrLoc = 4741; + }; + 6BCF33C81105C466009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 165"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 986; + vrLoc = 4440; + }; + 6BCF33C91105C466009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 83"; + rLen = 62; + rLoc = 2588; + rType = 0; + vrLen = 627; + vrLoc = 2182; + }; + 6BCF33CA1105C466009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 139"; + rLen = 0; + rLoc = 3351; + rType = 0; + vrLen = 743; + vrLoc = 2829; + }; + 6BCF33CB1105C466009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 201"; + rLen = 0; + rLoc = 5155; + rType = 0; + vrLen = 1022; + vrLoc = 5128; + }; + 6BCF33CD1105C4A2009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 203"; + rLen = 0; + rLoc = 5728; + rType = 0; + vrLen = 827; + vrLoc = 4913; + }; + 6BCF33CF1105C51B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 203"; + rLen = 0; + rLoc = 5607; + rType = 0; + vrLen = 828; + vrLoc = 4915; + }; + 6BCF33D11105C5EF009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 203"; + rLen = 0; + rLoc = 5607; + rType = 0; + vrLen = 828; + vrLoc = 4915; + }; + 6BCF33D21105C5EF009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 83"; + rLen = 62; + rLoc = 2588; + rType = 0; + vrLen = 627; + vrLoc = 2182; + }; + 6BCF33D31105C5EF009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 203"; + rLen = 0; + rLoc = 5607; + rType = 0; + vrLen = 828; + vrLoc = 4915; + }; + 6BCF33D41105C5EF009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 523"; + rLen = 0; + rLoc = 15787; + rType = 0; + vrLen = 783; + vrLoc = 14412; + }; + 6BCF33D51105C607009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 513"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 783; + vrLoc = 14412; + }; + 6BCF33D81105C610009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 513"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 843; + vrLoc = 14331; + }; + 6BCF33DA1105C61C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 514"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 843; + vrLoc = 14331; + }; + 6BCF33DC1105C64F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 514"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 841; + vrLoc = 14331; + }; + 6BCF33DE1105C67D009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 525"; + rLen = 0; + rLoc = 15786; + rType = 0; + vrLen = 808; + vrLoc = 14327; + }; + 6BCF33DF1105C6D1009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 526"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 855; + vrLoc = 14327; + }; + 6BCF33E01105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 759"; + rLen = 0; + rLoc = 19885; + rType = 0; + vrLen = 885; + vrLoc = 19619; + }; + 6BCF33E11105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 321"; + rLen = 0; + rLoc = 14239; + rType = 0; + vrLen = 998; + vrLoc = 13802; + }; + 6BCF33E21105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 36"; + rLen = 0; + rLoc = 1344; + rType = 0; + vrLen = 762; + vrLoc = 1065; + }; + 6BCF33E31105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 202"; + rLen = 0; + rLoc = 4942; + rType = 0; + vrLen = 811; + vrLoc = 5038; + }; + 6BCF33E41105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 58"; + rLen = 0; + rLoc = 2343; + rType = 0; + vrLen = 1185; + vrLoc = 1236; + }; + 6BCF33E51105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 192"; + rLen = 0; + rLoc = 5236; + rType = 0; + vrLen = 855; + vrLoc = 4941; + }; + 6BCF33E61105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 59"; + rLen = 0; + rLoc = 2292; + rType = 0; + vrLen = 1233; + vrLoc = 1286; + }; + 6BCF33E71105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 188"; + rLen = 0; + rLoc = 4998; + rType = 0; + vrLen = 891; + vrLoc = 4645; + }; + 6BCF33E81105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 35"; + rLen = 16; + rLoc = 1301; + rType = 0; + vrLen = 1233; + vrLoc = 1286; + }; + 6BCF33E91105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 202"; + rLen = 0; + rLoc = 4942; + rType = 0; + vrLen = 811; + vrLoc = 5038; + }; + 6BCF33EA1105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 323"; + rLen = 33; + rLoc = 14282; + rType = 0; + vrLen = 1225; + vrLoc = 13685; + }; + 6BCF33EB1105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 759"; + rLen = 0; + rLoc = 19885; + rType = 0; + vrLen = 885; + vrLoc = 19619; + }; + 6BCF33EC1105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 321"; + rLen = 0; + rLoc = 14239; + rType = 0; + vrLen = 998; + vrLoc = 13802; + }; + 6BCF33ED1105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */; + name = "InputGeom.h: 36"; + rLen = 0; + rLoc = 1344; + rType = 0; + vrLen = 762; + vrLoc = 1065; + }; + 6BCF33EE1105E5BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 188"; + rLen = 0; + rLoc = 5153; + rType = 0; + vrLen = 802; + vrLoc = 4942; + }; + 6BCF33F01105E621009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 194"; + rLen = 0; + rLoc = 5276; + rType = 0; + vrLen = 732; + vrLoc = 5012; + }; + 6BCF33F11105E621009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 759"; + rLen = 0; + rLoc = 19885; + rType = 0; + vrLen = 885; + vrLoc = 19619; + }; + 6BCF33F21105E621009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 194"; + rLen = 0; + rLoc = 5276; + rType = 0; + vrLen = 732; + vrLoc = 5012; + }; + 6BCF33F31105E621009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 387"; + rLen = 0; + rLoc = 10577; + rType = 0; + vrLen = 761; + vrLoc = 9890; + }; + 6BCF33F51105E71B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 448"; + rLen = 0; + rLoc = 12137; + rType = 0; + vrLen = 735; + vrLoc = 11704; + }; + 6BCF33F61105E71B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; + name = "DetourDebugDraw.h: 26"; + rLen = 0; + rLoc = 1377; + rType = 0; + vrLen = 1322; + vrLoc = 0; + }; + 6BCF33F71105E71B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 97"; + rLen = 13; + rLoc = 3704; + rType = 0; + vrLen = 1855; + vrLoc = 2916; + }; + 6BCF33F81105E71B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 186"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1246; + vrLoc = 4444; + }; + 6BCF33F91105E71B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 448"; + rLen = 0; + rLoc = 12137; + rType = 0; + vrLen = 735; + vrLoc = 11704; + }; + 6BCF33FA1105E71B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; + name = "DetourDebugDraw.h: 26"; + rLen = 0; + rLoc = 1377; + rType = 0; + vrLen = 1322; + vrLoc = 0; + }; + 6BCF33FB1105E71B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 97"; + rLen = 13; + rLoc = 3704; + rType = 0; + vrLen = 1855; + vrLoc = 2916; + }; + 6BCF33FC1105E71B009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 194"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1129; + vrLoc = 4230; + }; + 6BCF33FE1105E795009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 190"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1318; + vrLoc = 4604; + }; + 6BCF34001105E83D009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 187"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1284; + vrLoc = 4604; + }; + 6BCF34021105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 185"; + rLen = 0; + rLoc = 4298; rType = 0; vrLen = 1230; - vrLoc = 19095; + vrLoc = 4689; }; - 6BE731FB10FE6ABD00C1B074 /* PBXTextBookmark */ = { + 6BCF34031105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; + name = "RecastLog.cpp: 47"; + rLen = 0; + rLoc = 1420; + rType = 0; + vrLen = 594; + vrLoc = 1155; + }; + 6BCF34041105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 1145"; + rLen = 0; + rLoc = 29147; + rType = 0; + vrLen = 931; + vrLoc = 28641; + }; + 6BCF34051105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 75"; + rLen = 0; + rLoc = 2216; + rType = 0; + vrLen = 576; + vrLoc = 1791; + }; + 6BCF34061105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 84"; + rLen = 18; + rLoc = 2053; + rType = 0; + vrLen = 456; + vrLoc = 1692; + }; + 6BCF34071105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; + name = "DetourDebugDraw.h: 24"; + rLen = 18; + rLoc = 1103; + rType = 0; + vrLen = 1217; + vrLoc = 128; + }; + 6BCF34081105E98C009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 250"; + name = "NavMeshTesterTool.cpp: 397"; rLen = 0; - rLoc = 7228; + rLoc = 4702; rType = 0; - vrLen = 807; - vrLoc = 6832; + vrLen = 747; + vrLoc = 10424; }; - 6BE731FC10FE6ABD00C1B074 /* PBXTextBookmark */ = { + 6BCF34091105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 335"; + rLen = 20; + rLoc = 8013; + rType = 0; + vrLen = 858; + vrLoc = 7562; + }; + 6BCF340A1105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + rLen = 18; + rLoc = 8833; + rType = 0; + }; + 6BCF340B1105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 185"; + rLen = 0; + rLoc = 4298; + rType = 0; + vrLen = 1230; + vrLoc = 4689; + }; + 6BCF340C1105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; + name = "RecastLog.cpp: 47"; + rLen = 0; + rLoc = 1420; + rType = 0; + vrLen = 594; + vrLoc = 1155; + }; + 6BCF340D1105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 1145"; + rLen = 0; + rLoc = 29147; + rType = 0; + vrLen = 931; + vrLoc = 28641; + }; + 6BCF340E1105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 75"; + rLen = 0; + rLoc = 2216; + rType = 0; + vrLen = 609; + vrLoc = 1791; + }; + 6BCF340F1105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 85"; + rLen = 0; + rLoc = 2111; + rType = 0; + vrLen = 495; + vrLoc = 1692; + }; + 6BCF34101105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 75"; + rLen = 0; + rLoc = 2216; + rType = 0; + vrLen = 576; + vrLoc = 1791; + }; + 6BCF34111105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 84"; + rLen = 18; + rLoc = 2053; + rType = 0; + vrLen = 456; + vrLoc = 1692; + }; + 6BCF34121105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; + name = "DetourDebugDraw.h: 24"; + rLen = 18; + rLoc = 1103; + rType = 0; + vrLen = 1217; + vrLoc = 128; + }; + 6BCF34131105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 397"; + rLen = 0; + rLoc = 4702; + rType = 0; + vrLen = 747; + vrLoc = 10424; + }; + 6BCF34141105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 335"; + rLen = 20; + rLoc = 8013; + rType = 0; + vrLen = 858; + vrLoc = 7562; + }; + 6BCF34151105E98C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 267"; + rLen = 0; + rLoc = 8888; + rType = 0; + vrLen = 786; + vrLoc = 8227; + }; + 6BCF341A1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; + name = "DetourDebugDraw.h: 26"; + rLen = 70; + rLoc = 1024; + rType = 0; + vrLen = 944; + vrLoc = 441; + }; + 6BCF341B1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 101"; + rLen = 0; + rLoc = 3120; + rType = 0; + vrLen = 905; + vrLoc = 2280; + }; + 6BCF341C1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 133"; + rLen = 1; + rLoc = 3420; + rType = 0; + vrLen = 469; + vrLoc = 3131; + }; + 6BCF341D1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 39"; + rLen = 0; + rLoc = 1349; + rType = 0; + vrLen = 485; + vrLoc = 1208; + }; + 6BCF341E1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 640"; + rLen = 0; + rLoc = 21624; + rType = 0; + vrLen = 2231; + vrLoc = 19370; + }; + 6BCF341F1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1014"; + rLen = 50; + rLoc = 31976; + rType = 0; + vrLen = 2386; + vrLoc = 29565; + }; + 6BCF34201105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 410"; + rLen = 0; + rLoc = 9845; + rType = 0; + vrLen = 468; + vrLoc = 9555; + }; + 6BCF34211105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 26"; + rLen = 0; + rLoc = 1090; + rType = 0; + vrLen = 514; + vrLoc = 784; + }; + 6BCF34221105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'drawClosedList' was not declared in this scope"; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + rLen = 1; + rLoc = 308; + rType = 1; + }; + 6BCF34231105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 267"; + rLen = 18; + rLoc = 8868; + rType = 0; + vrLen = 786; + vrLoc = 8227; + }; + 6BCF34241105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 335"; + rLen = 0; + rLoc = 8033; + rType = 0; + vrLen = 858; + vrLoc = 7562; + }; + 6BCF34251105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 267"; + rLen = 18; + rLoc = 8833; + rType = 0; + vrLen = 786; + vrLoc = 8227; + }; + 6BCF34261105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 225"; + rLen = 0; + rLoc = 7453; + rType = 0; + vrLen = 892; + vrLoc = 6820; + }; + 6BCF34271105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 298"; + rLen = 19; + rLoc = 9187; + rType = 0; + vrLen = 581; + vrLoc = 8701; + }; + 6BCF34281105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */; + name = "DetourDebugDraw.h: 26"; + rLen = 70; + rLoc = 1024; + rType = 0; + vrLen = 944; + vrLoc = 441; + }; + 6BCF34291105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 101"; + rLen = 0; + rLoc = 3120; + rType = 0; + vrLen = 872; + vrLoc = 2313; + }; + 6BCF342A1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 84"; + rLen = 48; + rLoc = 2052; + rType = 0; + vrLen = 361; + vrLoc = 1749; + }; + 6BCF342B1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 101"; + rLen = 0; + rLoc = 3120; + rType = 0; + vrLen = 905; + vrLoc = 2280; + }; + 6BCF342C1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 84"; + rLen = 25; + rLoc = 2072; + rType = 0; + vrLen = 332; + vrLoc = 1976; + }; + 6BCF342D1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 133"; + rLen = 1; + rLoc = 3420; + rType = 0; + vrLen = 469; + vrLoc = 3131; + }; + 6BCF342E1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 39"; + rLen = 0; + rLoc = 1349; + rType = 0; + vrLen = 485; + vrLoc = 1208; + }; + 6BCF342F1105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 640"; + rLen = 52; + rLoc = 21623; + rType = 0; + vrLen = 2238; + vrLoc = 19373; + }; + 6BCF34301105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1017"; + rLen = 0; + rLoc = 32063; + rType = 0; + vrLen = 2085; + vrLoc = 29869; + }; + 6BCF34311105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 640"; + rLen = 0; + rLoc = 21624; + rType = 0; + vrLen = 2231; + vrLoc = 19370; + }; + 6BCF34321105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1014"; + rLen = 50; + rLoc = 31976; + rType = 0; + vrLen = 2386; + vrLoc = 29565; + }; + 6BCF34331105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 410"; + rLen = 0; + rLoc = 9845; + rType = 0; + vrLen = 468; + vrLoc = 9555; + }; + 6BCF34341105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; + name = "Sample.cpp: 26"; + rLen = 0; + rLoc = 1090; + rType = 0; + vrLen = 514; + vrLoc = 784; + }; + 6BCF34351105EC43009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 308"; + rLen = 0; + rLoc = 9357; + rType = 0; + vrLen = 662; + vrLoc = 9077; + }; + 6BCF34381105ECAB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 309"; + rLen = 0; + rLoc = 9396; + rType = 0; + vrLen = 662; + vrLoc = 9077; + }; + 6BCF34391105ECAB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 134"; + rLen = 22; + rLoc = 3203; + rType = 0; + vrLen = 480; + vrLoc = 2892; + }; + 6BCF343A1105ECAB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 244"; + rLen = 0; + rLoc = 7990; + rType = 0; + vrLen = 848; + vrLoc = 7191; + }; + 6BCF343B1105ECAB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 210"; + rLen = 0; + rLoc = 6896; + rType = 0; + vrLen = 847; + vrLoc = 6098; + }; + 6BCF343C1105ECAB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + rLen = 22; + rLoc = 7195; + rType = 0; + }; + 6BCF343D1105ECAB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 309"; + rLen = 0; + rLoc = 9396; + rType = 0; + vrLen = 662; + vrLoc = 9077; + }; + 6BCF343E1105ECAB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 134"; + rLen = 22; + rLoc = 3203; + rType = 0; + vrLen = 480; + vrLoc = 2892; + }; + 6BCF343F1105ECAB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 244"; + rLen = 0; + rLoc = 7990; + rType = 0; + vrLen = 848; + vrLoc = 7191; + }; + 6BCF34401105ECAB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 210"; + rLen = 0; + rLoc = 6896; + rType = 0; + vrLen = 847; + vrLoc = 6098; + }; + 6BCF34411105ECAB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 314"; + rLen = 0; + rLoc = 7124; + rType = 0; + vrLen = 760; + vrLoc = 6804; + }; + 6BCF34441105ECEB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 309"; + rLen = 0; + rLoc = 6907; + rType = 0; + vrLen = 723; + vrLoc = 6841; + }; + 6BCF34451105ECEB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 194"; + rLen = 0; + rLoc = 5276; + rType = 0; + vrLen = 720; + vrLoc = 5012; + }; + 6BCF34461105ECEB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 309"; + rLen = 0; + rLoc = 6907; + rType = 0; + vrLen = 723; + vrLoc = 6841; + }; + 6BCF34471105ECEB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 765; + vrLoc = 4767; + }; + 6BCF34481105ED03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 765; + vrLoc = 4767; + }; + 6BCF34491105ED03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + rLen = 0; + rLoc = 99; + rType = 1; + }; + 6BCF344A1105ED03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 765; + vrLoc = 4767; + }; + 6BCF344B1105ED03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 102"; + rLen = 0; + rLoc = 3149; + rType = 0; + vrLen = 871; + vrLoc = 2313; + }; + 6BCF344F1105ED0C009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 102"; + rLen = 0; + rLoc = 3149; + rType = 0; + vrLen = 897; + vrLoc = 2313; + }; + 6BCF34511105EE74009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 102"; + rLen = 0; + rLoc = 3149; + rType = 0; + vrLen = 868; + vrLoc = 2315; + }; + 6BCF34521105EE74009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + rLen = 0; + rLoc = 50; + rType = 1; + }; + 6BCF34531105EE74009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 102"; + rLen = 0; + rLoc = 3149; + rType = 0; + vrLen = 868; + vrLoc = 2315; + }; + 6BCF34541105EE74009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 50"; + rLen = 0; + rLoc = 1490; + rType = 0; + vrLen = 575; + vrLoc = 2897; + }; + 6BCF34561105EE81009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 102"; + rLen = 0; + rLoc = 3149; + rType = 0; + vrLen = 863; + vrLoc = 2347; + }; + 6BCF34571105EE81009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 126"; + rLen = 0; + rLoc = 2977; + rType = 0; + vrLen = 623; + vrLoc = 2892; + }; + 6BCF34581105EE81009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 765; + vrLoc = 4767; + }; + 6BCF34591105EE81009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 126"; + rLen = 0; + rLoc = 2977; + rType = 0; + vrLen = 623; + vrLoc = 2892; + }; + 6BCF345A1105EE81009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5057; + rType = 0; + vrLen = 791; + vrLoc = 4819; + }; + 6BCF345C1105EE87009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 790; + vrLoc = 4819; + }; + 6BCF345D1105EEA7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 790; + vrLoc = 4819; + }; + 6BCF345E1105EEA7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + rLen = 0; + rLoc = 99; + rType = 1; + }; + 6BCF345F1105EEA7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 790; + vrLoc = 4819; + }; + 6BCF34601105EEA7009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 97"; + rLen = 0; + rLoc = 2950; + rType = 0; + vrLen = 834; + vrLoc = 2376; + }; + 6BCF34631105EECD009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 97"; + rLen = 0; + rLoc = 2950; + rType = 0; + vrLen = 863; + vrLoc = 2347; + }; + 6BCF34641105EF1F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 97"; + rLen = 0; + rLoc = 2950; + rType = 0; + vrLen = 801; + vrLoc = 2409; + }; + 6BCF34651105EF1F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + rLen = 0; + rLoc = 50; + rType = 1; + }; + 6BCF34661105EF1F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 97"; + rLen = 0; + rLoc = 2950; + rType = 0; + vrLen = 801; + vrLoc = 2409; + }; + 6BCF34671105EF1F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 53"; + rLen = 0; + rLoc = 1561; + rType = 0; + vrLen = 508; + vrLoc = 1994; + }; + 6BCF34691105EF2D009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 97"; + rLen = 0; + rLoc = 2950; + rType = 0; + vrLen = 863; + vrLoc = 2347; + }; + 6BCF346A1105EF2D009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 53"; + rLen = 0; + rLoc = 1561; + rType = 0; + vrLen = 649; + vrLoc = 1924; + }; + 6BCF346B1105EF2D009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 790; + vrLoc = 4819; + }; + 6BCF346C1105EF2D009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 53"; + rLen = 0; + rLoc = 1561; + rType = 0; + vrLen = 649; + vrLoc = 1924; + }; + 6BCF346D1105EF2D009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 787; + vrLoc = 4819; + }; + 6BCF346F1105F422009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 786; + vrLoc = 4819; + }; + 6BCF34711105F503009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 789; + vrLoc = 4819; + }; + 6BCF34721105F503009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 251"; + rLen = 0; + rLoc = 6513; + rType = 0; + vrLen = 876; + vrLoc = 6395; + }; + 6BCF34731105F503009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 778"; + name = "DetourNavMesh.cpp: 441"; rLen = 0; - rLoc = 20170; + rLoc = 11950; rType = 0; - vrLen = 888; - vrLoc = 19848; + vrLen = 604; + vrLoc = 11805; }; - 6BE731FD10FE6BDC00C1B074 /* PBXTextBookmark */ = { + 6BCF34741105F503009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 242"; - rLen = 21; - rLoc = 10751; + name = "DetourNavMesh.h: 97"; + rLen = 13; + rLoc = 3704; rType = 0; - vrLen = 1649; - vrLoc = 9279; + vrLen = 1442; + vrLoc = 3161; }; - 6BE731FE10FE6BDC00C1B074 /* PBXTextBookmark */ = { + 6BCF34751105F503009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; + rType = 0; + vrLen = 789; + vrLoc = 4819; + }; + 6BCF34761105F503009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 251"; + rLen = 0; + rLoc = 6513; + rType = 0; + vrLen = 876; + vrLoc = 6395; + }; + 6BCF34771105F503009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 778"; + name = "DetourNavMesh.cpp: 441"; rLen = 0; - rLoc = 20170; + rLoc = 11950; rType = 0; - vrLen = 888; - vrLoc = 19848; + vrLen = 604; + vrLoc = 11805; }; - 6BE731FF10FE6BDC00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 778"; - rLen = 0; - rLoc = 20170; - rType = 0; - vrLen = 888; - vrLoc = 19848; - }; - 6BE7320010FE6BDC00C1B074 /* PBXTextBookmark */ = { + 6BCF34781105F503009445BF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 242"; - rLen = 21; - rLoc = 10751; - rType = 0; - vrLen = 1649; - vrLoc = 9279; - }; - 6BE7320110FE6BDC00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1377"; + name = "DetourNavMesh.h: 97"; rLen = 0; - rLoc = 35793; + rLoc = 3715; + rType = 0; + vrLen = 1442; + vrLoc = 3161; + }; + 6BCF347A1105F519009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 97"; + rLen = 0; + rLoc = 3715; + rType = 0; + vrLen = 1442; + vrLoc = 3161; + }; + 6BCF347B1105F519009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 301"; + rLen = 0; + rLoc = 8032; + rType = 0; + vrLen = 736; + vrLoc = 7651; + }; + 6BCF347C1105F519009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "warning: unused variable 'va'"; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + rLen = 1; + rLoc = 445; + rType = 1; + }; + 6BCF347D1105F519009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 97"; + rLen = 0; + rLoc = 3715; + rType = 0; + vrLen = 1442; + vrLoc = 3161; + }; + 6BCF347E1105F519009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 301"; + rLen = 0; + rLoc = 8032; + rType = 0; + vrLen = 736; + vrLoc = 7651; + }; + 6BCF347F1105F519009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 446"; + rLen = 0; + rLoc = 13611; + rType = 0; + vrLen = 587; + vrLoc = 13308; + }; + 6BCF34821105F555009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 443"; + rLen = 0; + rLoc = 13530; + rType = 0; + vrLen = 777; + vrLoc = 13117; + }; + 6BCF34831105F555009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 89"; + rLen = 0; + rLoc = 2199; + rType = 0; + vrLen = 721; + vrLoc = 2904; + }; + 6BCF34841105F555009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5046; rType = 0; vrLen = 1004; - vrLoc = 35364; + vrLoc = 4726; + }; + 6BCF34851105F555009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 443"; + rLen = 0; + rLoc = 13530; + rType = 0; + vrLen = 777; + vrLoc = 13117; + }; + 6BCF34861105F555009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; + name = "OffMeshConnectionTool.cpp: 89"; + rLen = 0; + rLoc = 2199; + rType = 0; + vrLen = 721; + vrLoc = 2904; + }; + 6BCF34871105F555009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5057; + rType = 0; + vrLen = 830; + vrLoc = 4939; + }; + 6BCF34891105F56D009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5049; + rType = 0; + vrLen = 830; + vrLoc = 4939; + }; + 6BCF348B1105F577009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5057; + rType = 0; + vrLen = 827; + vrLoc = 4939; + }; + 6BCF348D1105F58E009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; + name = "InputGeom.cpp: 186"; + rLen = 0; + rLoc = 5057; + rType = 0; + vrLen = 830; + vrLoc = 4939; }; 6BE7320210FE6CEF00C1B074 /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -3269,264 +7405,26 @@ vrLen = 1467; vrLoc = 937; }; - 6BE7320310FE6CEF00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1374"; - rLen = 0; - rLoc = 35666; - rType = 0; - vrLen = 1029; - vrLoc = 35339; - }; - 6BE7320410FE6CEF00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 244"; - rLen = 0; - rLoc = 10889; - rType = 0; - vrLen = 1748; - vrLoc = 9243; - }; - 6BE7320510FE6CEF00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 131"; - rLen = 0; - rLoc = 3291; - rType = 0; - vrLen = 1165; - vrLoc = 2960; - }; 6BE7320610FE6CEF00C1B074 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 1374"; rLen = 0; - rLoc = 35666; + rLoc = 5667; rType = 0; vrLen = 1029; vrLoc = 35339; }; - 6BE7320710FE6CEF00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 244"; - rLen = 0; - rLoc = 10889; - rType = 0; - vrLen = 1748; - vrLoc = 9243; - }; - 6BE7320810FE6CEF00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 148"; - rLen = 0; - rLoc = 3818; - rType = 0; - vrLen = 1211; - vrLoc = 3088; - }; - 6BE7320C10FE6EBE00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; - name = "NavMeshTesterTool.h: 36"; - rLen = 0; - rLoc = 1217; - rType = 0; - vrLen = 711; - vrLoc = 1023; - }; - 6BE7320D10FE6EBE00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 172"; - rLen = 0; - rLoc = 4372; - rType = 0; - vrLen = 704; - vrLoc = 3989; - }; 6BE7320E10FE6EBE00C1B074 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 172"; rLen = 0; - rLoc = 4372; + rLoc = 4702; rType = 0; vrLen = 726; vrLoc = 3989; }; - 6BE7320F10FE6EBE00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; - name = "NavMeshTesterTool.h: 36"; - rLen = 0; - rLoc = 1217; - rType = 0; - vrLen = 711; - vrLoc = 1023; - }; - 6BE7321010FE6EBE00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 249"; - rLen = 0; - rLoc = 5895; - rType = 0; - vrLen = 1128; - vrLoc = 6251; - }; - 6BE7321110FE6F1000C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 213"; - rLen = 0; - rLoc = 5517; - rType = 0; - vrLen = 977; - vrLoc = 6787; - }; - 6BE7321210FE70FE00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 261"; - rLen = 0; - rLoc = 7071; - rType = 0; - vrLen = 1024; - vrLoc = 6951; - }; - 6BE7321310FE70FE00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 244"; - rLen = 0; - rLoc = 10889; - rType = 0; - vrLen = 1712; - vrLoc = 9279; - }; - 6BE7321410FE70FE00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; - name = "NavMeshTesterTool.cpp: 261"; - rLen = 0; - rLoc = 7071; - rType = 0; - vrLen = 1024; - vrLoc = 6951; - }; - 6BE7321510FE70FE00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 231"; - rLen = 0; - rLoc = 9825; - rType = 0; - vrLen = 1876; - vrLoc = 9284; - }; - 6BE7321710FE712A00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 238"; - rLen = 0; - rLoc = 10205; - rType = 0; - vrLen = 1874; - vrLoc = 9284; - }; - 6BE7321810FE712A00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 238"; - rLen = 0; - rLoc = 10205; - rType = 0; - vrLen = 1874; - vrLoc = 9284; - }; - 6BE7321910FE712A00C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 1337"; - rLen = 0; - rLoc = 34556; - rType = 0; - vrLen = 785; - vrLoc = 34471; - }; - 6BE7321D10FE72B300C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 89"; - rLen = 7; - rLoc = 3342; - rType = 0; - vrLen = 1814; - vrLoc = 2673; - }; - 6BE7321E10FE72B300C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; - name = "DetourNavMeshBuilder.cpp: 507"; - rLen = 1; - rLoc = 13693; - rType = 0; - vrLen = 928; - vrLoc = 13419; - }; - 6BE7321F10FE72B300C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - comments = "error: cannot convert 'dtOffMeshLink' to 'dtOffMeshLink*' in initialization"; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - rLen = 1; - rLoc = 393; - rType = 1; - }; - 6BE7322010FE72B300C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 454"; - rLen = 0; - rLoc = 11931; - rType = 0; - vrLen = 813; - vrLoc = 11629; - }; - 6BE7322110FE72B300C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; - name = "DetourNavMesh.h: 89"; - rLen = 7; - rLoc = 3342; - rType = 0; - vrLen = 1814; - vrLoc = 2673; - }; - 6BE7322210FE72B300C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; - name = "DetourNavMeshBuilder.cpp: 507"; - rLen = 1; - rLoc = 13693; - rType = 0; - vrLen = 928; - vrLoc = 13419; - }; - 6BE7322310FE72B300C1B074 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; - name = "DetourNavMesh.cpp: 430"; - rLen = 0; - rLoc = 11402; - rType = 0; - vrLen = 933; - vrLoc = 10991; - }; 8D1107260486CEB800E47090 /* Recast */ = { activeExec = 0; executables = ( diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index e291954..0c8a3e3 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -281,14 +281,13 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 14 - 12 + 60 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 98}, {282, 643}} + {{0, 584}, {282, 643}} PBXTopSmartGroupGIDs @@ -323,7 +322,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - DetourNavMesh.cpp + InputGeom.cpp PBXSplitModuleInNavigatorKey Split0 @@ -331,15 +330,14 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - DetourNavMesh.cpp + InputGeom.cpp _historyCapacity 0 bookmark - 6BE7322310FE72B300C1B074 + 6BCF348D1105F58E009445BF history 6B57D358108C66B200DDD053 - 6B7FB74D1091EBDE001BA51A 6B8DE70D10B01BBF00DF20FB 6B8DE76D10B0243500DF20FB 6B8DE84910B0584400DF20FB @@ -357,35 +355,38 @@ 6BB7FDC110F37703006DA0A6 6BB7FE1010F37CF7006DA0A6 6BB7FE3B10F3817A006DA0A6 - 6BB7FEA910F4B5E1006DA0A6 - 6BB7FEAD10F4B5E1006DA0A6 - 6BB7FEDE10F4B779006DA0A6 - 6BB7FF0310F4D699006DA0A6 6BB7FF6D10F4E8E2006DA0A6 - 6BB7FF6E10F4E8E2006DA0A6 - 6BB7FF7310F4E8E2006DA0A6 - 6BB7FFBE10F4E9A8006DA0A6 - 6BB7FFD610F4EC73006DA0A6 - 6BB7000610F4F03D006DA0A6 - 6BB7002C10F4F257006DA0A6 - 6BB7003710F4F39B006DA0A6 - 6BB7003810F4F39B006DA0A6 - 6BB7007210FA2B13006DA0A6 - 6BB700BF10FA3AB1006DA0A6 - 6BB35FED10FBD09300A9B4B8 - 6BB3601610FE561F00A9B4B8 - 6BB3601710FE561F00A9B4B8 - 6BB3603D10FE59E200A9B4B8 6BB3605210FE5CBD00A9B4B8 - 6BB3605310FE5CBD00A9B4B8 - 6BB3605410FE5CBD00A9B4B8 6BB3606210FE5E8F00A9B4B8 - 6BE7320210FE6CEF00C1B074 - 6BE7320C10FE6EBE00C1B074 - 6BE7321210FE70FE00C1B074 - 6BE7321D10FE72B300C1B074 - 6BE7321E10FE72B300C1B074 - 6BE7321F10FE72B300C1B074 + 6B69736710FFBDCA00984788 + 6B69736810FFBDCA00984788 + 6B69739F10FFCA4500984788 + 6BCF325E1104CFE7009445BF + 6BCF325F1104CFE7009445BF + 6BCF331811059E23009445BF + 6BCF331911059E23009445BF + 6BCF331A11059E23009445BF + 6BCF332411059EA9009445BF + 6BCF33351105B2B5009445BF + 6BCF33651105BBA2009445BF + 6BCF33671105BBA2009445BF + 6BCF336A1105BBA2009445BF + 6BCF33AF1105BE51009445BF + 6BCF33E21105E5BB009445BF + 6BCF34031105E98C009445BF + 6BCF34041105E98C009445BF + 6BCF341A1105EC43009445BF + 6BCF34211105EC43009445BF + 6BCF343A1105ECAB009445BF + 6BCF343B1105ECAB009445BF + 6BCF34441105ECEB009445BF + 6BCF34691105EF2D009445BF + 6BCF34731105F503009445BF + 6BCF347A1105F519009445BF + 6BCF347B1105F519009445BF + 6BCF34821105F555009445BF + 6BCF34831105F555009445BF + 6BCF34841105F555009445BF prevStack @@ -407,29 +408,193 @@ 6BB7FE2210F37CF7006DA0A6 6BB7FE2310F37CF7006DA0A6 6BB7FE5410F3817A006DA0A6 - 6BB7FE7810F38224006DA0A6 6BB7FEB810F4B5E1006DA0A6 - 6BB7FEB910F4B5E1006DA0A6 6BB7FECF10F4B5E1006DA0A6 - 6BB7FF1210F4D699006DA0A6 6BB7FF2410F4D699006DA0A6 - 6BB7FF7910F4E8E2006DA0A6 - 6BB7FF8910F4E8E2006DA0A6 6BB7FF9610F4E8E2006DA0A6 - 6BB7FF9710F4E8E2006DA0A6 - 6BB7007510FA2B13006DA0A6 - 6BB7008C10FA3475006DA0A6 - 6BB7008E10FA3475006DA0A6 6BB700C310FA3AB1006DA0A6 - 6BE7320010FE6BDC00C1B074 6BE7320610FE6CEF00C1B074 - 6BE7320E10FE6EBE00C1B074 - 6BE7320F10FE6EBE00C1B074 - 6BE7321410FE70FE00C1B074 - 6BE7321810FE712A00C1B074 - 6BE7322010FE72B300C1B074 - 6BE7322110FE72B300C1B074 - 6BE7322210FE72B300C1B074 + 6B69737210FFBDCA00984788 + 6B69739810FFC43600984788 + 6B6973A210FFCA4500984788 + 6BCF31FD1104C9F0009445BF + 6BCF31FE1104C9F0009445BF + 6BCF31FF1104C9F0009445BF + 6BCF32001104C9F0009445BF + 6BCF32011104C9F0009445BF + 6BCF32021104C9F0009445BF + 6BCF32031104C9F0009445BF + 6BCF32041104C9F0009445BF + 6BCF32051104C9F0009445BF + 6BCF32061104C9F0009445BF + 6BCF32071104C9F0009445BF + 6BCF32081104C9F0009445BF + 6BCF32091104C9F0009445BF + 6BCF320A1104C9F0009445BF + 6BCF320B1104C9F0009445BF + 6BCF320C1104C9F0009445BF + 6BCF320D1104C9F0009445BF + 6BCF320E1104C9F0009445BF + 6BCF32111104C9F0009445BF + 6BCF32121104C9F0009445BF + 6BCF32151104C9F0009445BF + 6BCF322E1104CA22009445BF + 6BCF322F1104CA22009445BF + 6BCF32441104CDB5009445BF + 6BCF32451104CDB5009445BF + 6BCF32461104CDB5009445BF + 6BCF32471104CDB5009445BF + 6BCF32481104CDB5009445BF + 6BCF32491104CDB5009445BF + 6BCF324A1104CDB5009445BF + 6BCF324C1104CDB5009445BF + 6BCF324E1104CDB5009445BF + 6BCF324F1104CDB5009445BF + 6BCF32501104CDB5009445BF + 6BCF32511104CDB5009445BF + 6BCF32521104CDB5009445BF + 6BCF32681104CFE7009445BF + 6BCF32691104CFE7009445BF + 6BCF326A1104CFE7009445BF + 6BCF326B1104CFE7009445BF + 6BCF326C1104CFE7009445BF + 6BCF326D1104CFE7009445BF + 6BCF326E1104CFE7009445BF + 6BCF326F1104CFE7009445BF + 6BCF32701104CFE7009445BF + 6BCF32711104CFE7009445BF + 6BCF32721104CFE7009445BF + 6BCF32731104CFE7009445BF + 6BCF32741104CFE7009445BF + 6BCF32751104CFE7009445BF + 6BCF32761104CFE7009445BF + 6BCF32771104CFE7009445BF + 6BCF32781104CFE7009445BF + 6BCF32791104CFE7009445BF + 6BCF327A1104CFE7009445BF + 6BCF32861104D114009445BF + 6BCF32871104D114009445BF + 6BCF32881104D114009445BF + 6BCF32891104D114009445BF + 6BCF32A31104D31E009445BF + 6BCF32A51104D31E009445BF + 6BCF32A61104D31E009445BF + 6BCF32B41104D3E5009445BF + 6BCF32C51104D678009445BF + 6BCF32ED1104D7F5009445BF + 6BCF32EE1104D7F5009445BF + 6BCF32F51104D815009445BF + 6BCF33021104D891009445BF + 6BCF33041104D891009445BF + 6BCF33061104D891009445BF + 6BCF331611059D39009445BF + 6BCF331C11059E23009445BF + 6BCF331D11059E23009445BF + 6BCF331E11059E23009445BF + 6BCF331F11059E23009445BF + 6BCF332611059EA9009445BF + 6BCF332C1105A59B009445BF + 6BCF33381105B2B5009445BF + 6BCF33541105B986009445BF + 6BCF33551105B986009445BF + 6BCF33561105B986009445BF + 6BCF33571105B986009445BF + 6BCF33581105B986009445BF + 6BCF33591105B986009445BF + 6BCF335A1105B986009445BF + 6BCF336E1105BBA2009445BF + 6BCF336F1105BBA2009445BF + 6BCF33701105BBA2009445BF + 6BCF33711105BBA2009445BF + 6BCF33721105BBA2009445BF + 6BCF33731105BBA2009445BF + 6BCF33741105BBA2009445BF + 6BCF33751105BBA2009445BF + 6BCF33761105BBA2009445BF + 6BCF33781105BBA2009445BF + 6BCF337A1105BBA2009445BF + 6BCF337C1105BBA2009445BF + 6BCF337D1105BBA2009445BF + 6BCF337E1105BBA2009445BF + 6BCF337F1105BBA2009445BF + 6BCF33801105BBA2009445BF + 6BCF33811105BBA2009445BF + 6BCF33881105BBC8009445BF + 6BCF338E1105BCB7009445BF + 6BCF338F1105BCB7009445BF + 6BCF339A1105BD0E009445BF + 6BCF339B1105BD0E009445BF + 6BCF339C1105BD0E009445BF + 6BCF339D1105BD0E009445BF + 6BCF339E1105BD0E009445BF + 6BCF339F1105BD0E009445BF + 6BCF33A41105BD41009445BF + 6BCF33A91105BDAD009445BF + 6BCF33B21105BE51009445BF + 6BCF33B31105BE51009445BF + 6BCF33B41105BE51009445BF + 6BCF33B51105BE51009445BF + 6BCF33B61105BE51009445BF + 6BCF33BD1105BEE9009445BF + 6BCF33CA1105C466009445BF + 6BCF33D31105C5EF009445BF + 6BCF33E41105E5BB009445BF + 6BCF33E51105E5BB009445BF + 6BCF33E61105E5BB009445BF + 6BCF33E71105E5BB009445BF + 6BCF33E81105E5BB009445BF + 6BCF33E91105E5BB009445BF + 6BCF33EA1105E5BB009445BF + 6BCF33EB1105E5BB009445BF + 6BCF33EC1105E5BB009445BF + 6BCF33ED1105E5BB009445BF + 6BCF33F21105E621009445BF + 6BCF33F91105E71B009445BF + 6BCF33FA1105E71B009445BF + 6BCF340B1105E98C009445BF + 6BCF340C1105E98C009445BF + 6BCF340D1105E98C009445BF + 6BCF340E1105E98C009445BF + 6BCF340F1105E98C009445BF + 6BCF34101105E98C009445BF + 6BCF34111105E98C009445BF + 6BCF34121105E98C009445BF + 6BCF34131105E98C009445BF + 6BCF34141105E98C009445BF + 6BCF34231105EC43009445BF + 6BCF34241105EC43009445BF + 6BCF34251105EC43009445BF + 6BCF34261105EC43009445BF + 6BCF34271105EC43009445BF + 6BCF34281105EC43009445BF + 6BCF34291105EC43009445BF + 6BCF342A1105EC43009445BF + 6BCF342B1105EC43009445BF + 6BCF342C1105EC43009445BF + 6BCF342D1105EC43009445BF + 6BCF342E1105EC43009445BF + 6BCF342F1105EC43009445BF + 6BCF34301105EC43009445BF + 6BCF34311105EC43009445BF + 6BCF34321105EC43009445BF + 6BCF34331105EC43009445BF + 6BCF34341105EC43009445BF + 6BCF343D1105ECAB009445BF + 6BCF343E1105ECAB009445BF + 6BCF343F1105ECAB009445BF + 6BCF34401105ECAB009445BF + 6BCF34461105ECEB009445BF + 6BCF344A1105ED03009445BF + 6BCF34591105EE81009445BF + 6BCF345F1105EEA7009445BF + 6BCF346C1105EF2D009445BF + 6BCF34751105F503009445BF + 6BCF34761105F503009445BF + 6BCF34771105F503009445BF + 6BCF347D1105F519009445BF + 6BCF347E1105F519009445BF + 6BCF34851105F555009445BF + 6BCF34861105F555009445BF SplitCount @@ -443,18 +608,18 @@ GeometryConfiguration Frame - {{0, 0}, {952, 572}} + {{0, 0}, {952, 501}} RubberWindowFrame 11 76 1256 702 0 0 1280 778 Module PBXNavigatorGroup Proportion - 572pt + 501pt Proportion - 84pt + 155pt Tabs @@ -468,7 +633,7 @@ GeometryConfiguration Frame - {{10, 27}, {952, 57}} + {{10, 27}, {952, 90}} Module XCDetailModule @@ -484,7 +649,7 @@ GeometryConfiguration Frame - {{10, 27}, {952, 63}} + {{10, 27}, {952, 212}} Module PBXProjectFindModule @@ -522,7 +687,7 @@ GeometryConfiguration Frame - {{10, 27}, {952, 57}} + {{10, 27}, {952, 128}} RubberWindowFrame 11 76 1256 702 0 0 1280 778 @@ -552,11 +717,11 @@ TableOfContents - 6BE731E710FE67F500C1B074 + 6BCF32211104C9F0009445BF 1CA23ED40692098700951B8B - 6BE731E810FE67F500C1B074 + 6BCF32221104C9F0009445BF 6B8632A30F78115100E2684A - 6BE731E910FE67F500C1B074 + 6BCF32231104C9F0009445BF 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -705,14 +870,14 @@ TableOfContents - 6BE731EA10FE67F500C1B074 + 6BCF32241104C9F0009445BF 1CCC7628064C1048000F2A68 1CCC7629064C1048000F2A68 - 6BE731EB10FE67F500C1B074 - 6BE731EC10FE67F500C1B074 - 6BE731ED10FE67F500C1B074 - 6BE731EE10FE67F500C1B074 - 6BE731EF10FE67F500C1B074 + 6BCF32251104C9F0009445BF + 6BCF32261104C9F0009445BF + 6BCF32271104C9F0009445BF + 6BCF32281104C9F0009445BF + 6BCF32291104C9F0009445BF ToolbarConfigUserDefaultsMinorVersion 2 @@ -744,6 +909,8 @@ 5 WindowOrderList + 6BCF32991104D1B2009445BF + 6BCF329A1104D1B2009445BF /Users/memon/Code/recastnavigation/RecastDemo/Build/Xcode/Recast.xcodeproj WindowString diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj index 7b3f21c..e3c1913 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj @@ -36,11 +36,11 @@ 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 */; }; - 6BB7FE9110F4A192006DA0A6 /* OffMeshLinkTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB7FE9010F4A192006DA0A6 /* OffMeshLinkTool.cpp */; }; 6BB93C7D10CFE1D500F74F2B /* DebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB93C7A10CFE1D500F74F2B /* DebugDraw.cpp */; }; 6BB93C7E10CFE1D500F74F2B /* DetourDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; }; 6BB93C7F10CFE1D500F74F2B /* RecastDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */; }; 6BB93CF610CFEC4500F74F2B /* RecastDump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */; }; + 6BCF32361104CD05009445BF /* OffMeshConnectionTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */; }; 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; /* End PBXBuildFile section */ @@ -100,8 +100,6 @@ 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NavMeshTesterTool.cpp; path = ../../Source/NavMeshTesterTool.cpp; sourceTree = SOURCE_ROOT; }; 6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InputGeom.h; path = ../../Include/InputGeom.h; sourceTree = SOURCE_ROOT; }; 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InputGeom.cpp; path = ../../Source/InputGeom.cpp; sourceTree = SOURCE_ROOT; }; - 6BB7FE8F10F4A192006DA0A6 /* OffMeshLinkTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OffMeshLinkTool.h; path = ../../Include/OffMeshLinkTool.h; sourceTree = SOURCE_ROOT; }; - 6BB7FE9010F4A192006DA0A6 /* OffMeshLinkTool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OffMeshLinkTool.cpp; path = ../../Source/OffMeshLinkTool.cpp; sourceTree = SOURCE_ROOT; }; 6BB93C7710CFE1D500F74F2B /* DebugDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DebugDraw.h; path = ../../../DebugUtils/Include/DebugDraw.h; sourceTree = SOURCE_ROOT; }; 6BB93C7810CFE1D500F74F2B /* DetourDebugDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetourDebugDraw.h; path = ../../../DebugUtils/Include/DetourDebugDraw.h; sourceTree = SOURCE_ROOT; }; 6BB93C7910CFE1D500F74F2B /* RecastDebugDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastDebugDraw.h; path = ../../../DebugUtils/Include/RecastDebugDraw.h; sourceTree = SOURCE_ROOT; }; @@ -110,6 +108,8 @@ 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastDebugDraw.cpp; path = ../../../DebugUtils/Source/RecastDebugDraw.cpp; sourceTree = SOURCE_ROOT; }; 6BB93CF410CFEC4500F74F2B /* RecastDump.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastDump.h; path = ../../../DebugUtils/Include/RecastDump.h; sourceTree = SOURCE_ROOT; }; 6BB93CF510CFEC4500F74F2B /* RecastDump.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastDump.cpp; path = ../../../DebugUtils/Source/RecastDump.cpp; sourceTree = SOURCE_ROOT; }; + 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OffMeshConnectionTool.h; path = ../../Include/OffMeshConnectionTool.h; sourceTree = SOURCE_ROOT; }; + 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OffMeshConnectionTool.cpp; path = ../../Source/OffMeshConnectionTool.cpp; sourceTree = SOURCE_ROOT; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8D1107320486CEB800E47090 /* Recast.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Recast.app; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -259,8 +259,8 @@ 6BB7FE8E10F4A175006DA0A6 /* Tools */ = { isa = PBXGroup; children = ( - 6BB7FE8F10F4A192006DA0A6 /* OffMeshLinkTool.h */, - 6BB7FE9010F4A192006DA0A6 /* OffMeshLinkTool.cpp */, + 6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */, + 6BCF32351104CD05009445BF /* OffMeshConnectionTool.cpp */, 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */, 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */, ); @@ -382,7 +382,7 @@ 6BB93CF610CFEC4500F74F2B /* RecastDump.cpp in Sources */, 6BB7FC0B10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp in Sources */, 6BB7FDA510F36F0E006DA0A6 /* InputGeom.cpp in Sources */, - 6BB7FE9110F4A192006DA0A6 /* OffMeshLinkTool.cpp in Sources */, + 6BCF32361104CD05009445BF /* OffMeshConnectionTool.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/RecastDemo/Include/InputGeom.h b/RecastDemo/Include/InputGeom.h index 05708ae..34dcbdb 100644 --- a/RecastDemo/Include/InputGeom.h +++ b/RecastDemo/Include/InputGeom.h @@ -28,10 +28,12 @@ class InputGeom rcMeshLoaderObj* m_mesh; float m_meshBMin[3], m_meshBMax[3]; - static const int MAX_LINKS = 256; + static const int MAX_OFFMESH_CONNECTIONS = 256; - float m_linkVerts[MAX_LINKS*3*2]; - int m_nlinks; + float m_offMeshConVerts[MAX_OFFMESH_CONNECTIONS*3*2]; + float m_offMeshConRads[MAX_OFFMESH_CONNECTIONS]; + unsigned char m_offMeshConDirs[MAX_OFFMESH_CONNECTIONS]; + int m_offMeshConCount; public: InputGeom(); @@ -47,11 +49,13 @@ public: bool raycastMesh(float* src, float* dst, float& tmin); // Extra links - int getOffMeshLinkCount() const { return m_nlinks; } - const float* getOffMeshLinkVertices() const { return m_linkVerts; } - void addOffMeshLink(const float* spos, const float* epos); - void deleteOffMeshLink(int i); - void drawLinks(struct duDebugDraw* dd, const float s); + int getOffMeshConnectionCount() const { return m_offMeshConCount; } + const float* getOffMeshConnectionVerts() const { return m_offMeshConVerts; } + const float* getOffMeshConnectionRads() const { return m_offMeshConRads; } + const unsigned char* getOffMeshConnectionDirs() const { return m_offMeshConDirs; } + void addOffMeshConnection(const float* spos, const float* epos, const float rad, unsigned char bidir); + void deleteOffMeshConnection(int i); + void drawOffMeshConnections(struct duDebugDraw* dd, bool hilight = false); }; #endif // INPUTGEOM_H diff --git a/RecastDemo/Include/NavMeshTesterTool.h b/RecastDemo/Include/NavMeshTesterTool.h index f806066..8093894 100644 --- a/RecastDemo/Include/NavMeshTesterTool.h +++ b/RecastDemo/Include/NavMeshTesterTool.h @@ -29,7 +29,8 @@ class NavMeshTesterTool : public SampleTool dtNavMesh* m_navMesh; float m_agentRadius; float m_agentHeight; - + float m_agentClimb; + enum ToolMode { TOOLMODE_PATHFIND, diff --git a/RecastDemo/Include/OffMeshLinkTool.h b/RecastDemo/Include/OffMeshConnectionTool.h similarity index 82% rename from RecastDemo/Include/OffMeshLinkTool.h rename to RecastDemo/Include/OffMeshConnectionTool.h index 3441815..774ad93 100644 --- a/RecastDemo/Include/OffMeshLinkTool.h +++ b/RecastDemo/Include/OffMeshConnectionTool.h @@ -16,24 +16,25 @@ // 3. This notice may not be removed or altered from any source distribution. // -#ifndef OFFMESHLINKTOOL_H -#define OFFMESHLINKTOOL_H +#ifndef OFFMESHCONNECTIONTOOL_H +#define OFFMESHCONNECTIONTOOL_H #include "Sample.h" // Tool to create extra links for InputGeom -class OffMeshLinkTool : public SampleTool +class OffMeshConnectionTool : public SampleTool { Sample* m_sample; float m_hitPos[3]; bool m_hitPosSet; + bool m_bidir; public: - OffMeshLinkTool(); - ~OffMeshLinkTool(); + OffMeshConnectionTool(); + ~OffMeshConnectionTool(); - virtual int type() { return TOOL_OFFMESH_LINK; } + virtual int type() { return TOOL_OFFMESH_CONNECTION; } virtual void init(Sample* sample); virtual void reset(); virtual void handleMenu(); @@ -42,4 +43,4 @@ public: virtual void handleRenderOverlay(double* proj, double* model, int* view); }; -#endif // OFFMESHLINKTOOL_H +#endif // OFFMESHCONNECTIONTOOL_H diff --git a/RecastDemo/Include/Sample.h b/RecastDemo/Include/Sample.h index 2d602c6..d19e0f8 100644 --- a/RecastDemo/Include/Sample.h +++ b/RecastDemo/Include/Sample.h @@ -24,6 +24,7 @@ struct DebugDrawGL : public duDebugDraw { + virtual void depthMask(bool state); virtual void begin(duDebugDrawPrimitives prim, float size = 1.0f); virtual void vertex(const float* pos, unsigned int color); virtual void vertex(const float x, const float y, const float z, unsigned int color); @@ -35,7 +36,7 @@ enum SampleToolType TOOL_NONE = 0, TOOL_TILE_EDIT, TOOL_NAVMESH_TESTER, - TOOL_OFFMESH_LINK, + TOOL_OFFMESH_CONNECTION, }; struct SampleTool @@ -56,6 +57,7 @@ class Sample protected: class InputGeom* m_geom; dtNavMesh* m_navMesh; + unsigned char m_navMeshDrawFlags; float m_cellSize; float m_cellHeight; @@ -92,6 +94,10 @@ public: virtual class dtNavMesh* getNavMesh() { return m_navMesh; } virtual float getAgentRadius() { return m_agentRadius; } virtual float getAgentHeight() { return m_agentHeight; } + virtual float getAgentClimb() { return m_agentMaxClimb; } + + inline unsigned char getNavMeshDrawFlags() const { return m_navMeshDrawFlags; } + inline void setNavMeshDrawFlags(unsigned char flags) { m_navMeshDrawFlags = flags; } void resetCommonSettings(); void handleCommonSettings(); diff --git a/RecastDemo/Source/InputGeom.cpp b/RecastDemo/Source/InputGeom.cpp index c4e3737..adc38b0 100644 --- a/RecastDemo/Source/InputGeom.cpp +++ b/RecastDemo/Source/InputGeom.cpp @@ -25,7 +25,7 @@ #include "MeshLoaderObj.h" #include "DebugDraw.h" #include "RecastDebugDraw.h" - +#include "DetourNavMesh.h" static bool intersectSegmentTriangle(const float* sp, const float* sq, const float* a, const float* b, const float* c, @@ -72,7 +72,7 @@ static bool intersectSegmentTriangle(const float* sp, const float* sq, InputGeom::InputGeom() : m_chunkyMesh(0), m_mesh(0), - m_nlinks(0) + m_offMeshConCount(0) { } @@ -90,8 +90,8 @@ bool InputGeom::loadMesh(const char* filepath) m_chunkyMesh = 0; delete m_mesh; m_mesh = 0; - m_nlinks = 0; } + m_offMeshConCount = 0; m_mesh = new rcMeshLoaderObj; if (!m_mesh) @@ -159,31 +159,52 @@ bool InputGeom::raycastMesh(float* src, float* dst, float& tmin) return hit; } -void InputGeom::addOffMeshLink(const float* spos, const float* epos) +void InputGeom::addOffMeshConnection(const float* spos, const float* epos, const float rad, unsigned char bidir) { - if (m_nlinks >= MAX_LINKS) return; - float* v = &m_linkVerts[m_nlinks*3*2]; - m_nlinks++; + if (m_offMeshConCount >= MAX_OFFMESH_CONNECTIONS) return; + float* v = &m_offMeshConVerts[m_offMeshConCount*3*2]; + m_offMeshConRads[m_offMeshConCount] = rad; + m_offMeshConDirs[m_offMeshConCount] = bidir; vcopy(&v[0], spos); vcopy(&v[3], epos); + m_offMeshConCount++; } -void InputGeom::deleteOffMeshLink(int i) +void InputGeom::deleteOffMeshConnection(int i) { - m_nlinks--; - float* src = &m_linkVerts[(m_nlinks-1)*3*2]; - float* dst = &m_linkVerts[i*3*2]; + m_offMeshConCount--; + float* src = &m_offMeshConVerts[m_offMeshConCount*3*2]; + float* dst = &m_offMeshConVerts[i*3*2]; vcopy(&dst[0], &src[0]); vcopy(&dst[3], &src[3]); + m_offMeshConRads[i] = m_offMeshConRads[m_offMeshConCount]; + m_offMeshConDirs[i] = m_offMeshConDirs[m_offMeshConCount]; } -void InputGeom::drawLinks(duDebugDraw* dd, const float s) +void InputGeom::drawOffMeshConnections(duDebugDraw* dd, bool hilight) { - for (int i = 0; i < m_nlinks; ++i) + unsigned int conColor = duRGBA(192,192,192,hilight?192:64); + unsigned int baseColor = duRGBA(0,0,0,hilight?192:64); + dd->depthMask(false); + + dd->begin(DU_DRAW_LINES, 2.0f); + for (int i = 0; i < m_offMeshConCount; ++i) { - float* v = &m_linkVerts[i*3*2]; - duDebugDrawArc(dd, v[0],v[1],v[2], v[3],v[4],v[5], 0.25f, duRGBA(255,255,255,192), 1.0f); - duDebugDrawCross(dd, v[0],v[1]+0.1f,v[2], s, duRGBA(0,0,0,255), 2.0f); - duDebugDrawCross(dd, v[3],v[4]+0.1f,v[5], s, duRGBA(0,0,0,255), 2.0f); + float* v = &m_offMeshConVerts[i*3*2]; + + dd->vertex(v[0],v[1],v[2], baseColor); + dd->vertex(v[0],v[1]+0.2f,v[2], baseColor); + + dd->vertex(v[3],v[4],v[5], baseColor); + dd->vertex(v[3],v[4]+0.2f,v[5], baseColor); + + duAppendCircle(dd, v[0],v[1]+0.1f,v[2], m_offMeshConRads[i], baseColor); + duAppendCircle(dd, v[3],v[4]+0.1f,v[5], m_offMeshConRads[i], baseColor); + + duAppendArc(dd, v[0],v[1],v[2], v[3],v[4],v[5], 0.25f, + (m_offMeshConDirs[i]&1) ? 0.6f : 0.0f, 0.6f, conColor); } + dd->end(); + + dd->depthMask(true); } diff --git a/RecastDemo/Source/NavMeshTesterTool.cpp b/RecastDemo/Source/NavMeshTesterTool.cpp index e2cff7d..1fbffb6 100644 --- a/RecastDemo/Source/NavMeshTesterTool.cpp +++ b/RecastDemo/Source/NavMeshTesterTool.cpp @@ -66,6 +66,13 @@ NavMeshTesterTool::NavMeshTesterTool() : NavMeshTesterTool::~NavMeshTesterTool() { + if (m_sample) + { + unsigned char flags = DU_DRAWNAVMESH_CLOSEDLIST; + if (m_navMesh) + flags |= DU_DRAWNAVMESH_OFFMESHCONS; + m_sample->setNavMeshDrawFlags(flags); + } } void NavMeshTesterTool::init(Sample* sample) @@ -73,8 +80,18 @@ void NavMeshTesterTool::init(Sample* sample) m_sample = sample; m_agentRadius = sample->getAgentRadius(); m_agentHeight = sample->getAgentHeight(); + m_agentClimb = sample->getAgentClimb(); m_navMesh = sample->getNavMesh(); recalc(); + + if (m_toolMode == TOOLMODE_PATHFIND) + { + unsigned char flags = DU_DRAWNAVMESH_CLOSEDLIST; + if (m_navMesh) + flags |= DU_DRAWNAVMESH_OFFMESHCONS; + m_sample->setNavMeshDrawFlags(flags); + } + } void NavMeshTesterTool::handleMenu() @@ -99,6 +116,21 @@ void NavMeshTesterTool::handleMenu() m_toolMode = TOOLMODE_FIND_POLYS_AROUND; recalc(); } + + if (m_toolMode == TOOLMODE_PATHFIND) + { + unsigned char flags = DU_DRAWNAVMESH_CLOSEDLIST; + if (m_navMesh) + flags |= DU_DRAWNAVMESH_OFFMESHCONS; + m_sample->setNavMeshDrawFlags(flags); + } + else + { + unsigned char flags = 0; + if (m_navMesh) + flags |= DU_DRAWNAVMESH_OFFMESHCONS; + m_sample->setNavMeshDrawFlags(flags); + } } void NavMeshTesterTool::handleClick(const float* p, bool shift) @@ -148,7 +180,7 @@ static bool getSteerTarget(dtNavMesh* navMesh, const float* startPos, const floa while (ns < nsteerPath) { // Stop at Off-Mesh link or when point is further than slop away. - if ((steerPathFlags[ns] & DT_STRAIGHTPATH_OFFMESH_LINK) || + if ((steerPathFlags[ns] & DT_STRAIGHTPATH_OFFMESH_CONNECTION) || !inRange(&steerPath[ns*3], startPos, minTargetDist, 1000.0f)) break; ns++; @@ -171,12 +203,12 @@ void NavMeshTesterTool::recalc() return; if (m_sposSet) - m_startRef = m_navMesh->findNearestPoly(m_spos, m_polyPickExt); + m_startRef = m_navMesh->findNearestPoly(m_spos, m_polyPickExt, 0); else m_startRef = 0; if (m_eposSet) - m_endRef = m_navMesh->findNearestPoly(m_epos, m_polyPickExt); + m_endRef = m_navMesh->findNearestPoly(m_epos, m_polyPickExt, 0); else m_endRef = 0; @@ -225,14 +257,14 @@ void NavMeshTesterTool::recalc() break; bool endOfPath = steerPosFlag & DT_STRAIGHTPATH_END; - bool offMeshLink = steerPosFlag & DT_STRAIGHTPATH_OFFMESH_LINK; + bool offMeshConnection = steerPosFlag & DT_STRAIGHTPATH_OFFMESH_CONNECTION; // Find movement delta. float delta[3], len; vsub(delta, steerPos, iterPos); len = sqrtf(vdot(delta,delta)); // If the steer target is end of path or off-mesh link, do not move past the location. - if ((endOfPath || offMeshLink) && len < STEP_SIZE) + if ((endOfPath || offMeshConnection) && len < STEP_SIZE) len = 1; else len = STEP_SIZE / len; @@ -266,12 +298,12 @@ void NavMeshTesterTool::recalc() } break; } - else if (offMeshLink && inRange(iterPos, steerPos, SLOP, 1.0f)) + else if (offMeshConnection && inRange(iterPos, steerPos, SLOP, 1.0f)) { - // Reached off-mesh link. + // Reached off-mesh connection. float startPos[3], endPos[3]; - // Advance the path up to and over the off-mesh link. + // Advance the path up to and over the off-mesh connection. dtPolyRef prevRef = 0, polyRef = polys[0]; while (npolys && polyRef != steerPosRef) { @@ -281,16 +313,25 @@ void NavMeshTesterTool::recalc() npolys--; } - // Handle the link. - if (m_navMesh->getOffMeshLinkPolyEndPoints(prevRef, polyRef, startPos, endPos)) + // Handle the connection. + if (m_navMesh->getOffMeshConnectionPolyEndPoints(prevRef, polyRef, startPos, endPos)) { if (m_nsmoothPath < MAX_SMOOTH) { vcopy(&m_smoothPath[m_nsmoothPath*3], startPos); m_nsmoothPath++; + // Hack to make the dotted path not visible during off-mesh connection. + if (m_nsmoothPath & 1) + { + vcopy(&m_smoothPath[m_nsmoothPath*3], startPos); + m_nsmoothPath++; + } } // Move position at the other side of the off-mesh link. vcopy(iterPos, endPos); + float h; + m_navMesh->getPolyHeight(polys[0], iterPos, &h); + iterPos[1] = h; } } @@ -359,14 +400,14 @@ static void getPolyCenter(dtNavMesh* navMesh, dtPolyRef ref, float* center) center[0] = 0; center[1] = 0; center[2] = 0; - for (int i = 0; i < (int)p->nv; ++i) + for (int i = 0; i < (int)p->vertCount; ++i) { - const float* v = &verts[p->v[i]*3]; + const float* v = &verts[p->verts[i]*3]; center[0] += v[0]; center[1] += v[1]; center[2] += v[2]; } - const float s = 1.0f / p->nv; + const float s = 1.0f / p->vertCount; center[0] *= s; center[1] *= s; center[2] *= s; @@ -390,130 +431,128 @@ void NavMeshTesterTool::handleRender() if (m_eposSet) drawAgent(m_epos, m_agentRadius, m_agentHeight, 0/*m_agentMaxClimb*/, endCol); -/* if (flags & NAVMESH_POLYS) - duDebugDrawNavMesh(&dd, m_navMesh, m_toolMode == TOOLMODE_PATHFIND); - - if (flags & NAVMESH_BVTREE) - duDebugDrawNavMeshBVTree(&dd, m_navMesh); - - if (flags & NAVMESH_TOOLS)*/ + if (m_toolMode == TOOLMODE_PATHFIND) { - if (m_toolMode == TOOLMODE_PATHFIND) + duDebugDrawNavMeshPoly(&dd, m_navMesh, m_startRef, startCol); + duDebugDrawNavMeshPoly(&dd, m_navMesh, m_endRef, endCol); + + if (m_npolys) { - duDebugDrawNavMeshPoly(&dd, m_navMesh, m_startRef, startCol); - duDebugDrawNavMeshPoly(&dd, m_navMesh, m_endRef, endCol); - - if (m_npolys) + for (int i = 1; i < m_npolys-1; ++i) + duDebugDrawNavMeshPoly(&dd, m_navMesh, m_polys[i], pathCol); + } + + if (m_nstraightPath) + { + const unsigned int pathCol = duRGBA(64,16,0,220); + const unsigned int offMeshCol = duRGBA(128,96,0,220); + dd.begin(DU_DRAW_LINES, 2.0f); + for (int i = 0; i < m_nstraightPath-1; ++i) { - for (int i = 1; i < m_npolys-1; ++i) - duDebugDrawNavMeshPoly(&dd, m_navMesh, m_polys[i], pathCol); + unsigned int col = 0; + if (m_straightPathFlags[i] & DT_STRAIGHTPATH_OFFMESH_CONNECTION) + col = offMeshCol; + else + col = pathCol; + + dd.vertex(m_straightPath[i*3], m_straightPath[i*3+1]+0.4f, m_straightPath[i*3+2], col); + dd.vertex(m_straightPath[(i+1)*3], m_straightPath[(i+1)*3+1]+0.4f, m_straightPath[(i+1)*3+2], col); } - - if (m_nstraightPath) + dd.end(); + dd.begin(DU_DRAW_POINTS, 6.0f); + for (int i = 0; i < m_nstraightPath; ++i) { - const unsigned int pathCol = duRGBA(64,16,0,220); - const unsigned int offMeshCol = duRGBA(128,96,0,220); - dd.begin(DU_DRAW_LINES, 2.0f); - for (int i = 0; i < m_nstraightPath-1; ++i) - { - unsigned int col = 0; - if (m_straightPathFlags[i] & DT_STRAIGHTPATH_OFFMESH_LINK) - col = offMeshCol; - else - col = pathCol; - - dd.vertex(m_straightPath[i*3], m_straightPath[i*3+1]+0.4f, m_straightPath[i*3+2], col); - dd.vertex(m_straightPath[(i+1)*3], m_straightPath[(i+1)*3+1]+0.4f, m_straightPath[(i+1)*3+2], col); - } - dd.end(); - dd.begin(DU_DRAW_POINTS, 6.0f); - for (int i = 0; i < m_nstraightPath; ++i) - { - unsigned int col = 0; - if (m_straightPathFlags[i] & DT_STRAIGHTPATH_START) - col = startCol; - else if (m_straightPathFlags[i] & DT_STRAIGHTPATH_START) - col = endCol; - else if (m_straightPathFlags[i] & DT_STRAIGHTPATH_OFFMESH_LINK) - col = offMeshCol; - else - col = pathCol; - dd.vertex(m_straightPath[i*3], m_straightPath[i*3+1]+0.4f, m_straightPath[i*3+2], pathCol); - } - dd.end(); + unsigned int col = 0; + if (m_straightPathFlags[i] & DT_STRAIGHTPATH_START) + col = startCol; + else if (m_straightPathFlags[i] & DT_STRAIGHTPATH_START) + col = endCol; + else if (m_straightPathFlags[i] & DT_STRAIGHTPATH_OFFMESH_CONNECTION) + col = offMeshCol; + else + col = pathCol; + dd.vertex(m_straightPath[i*3], m_straightPath[i*3+1]+0.4f, m_straightPath[i*3+2], pathCol); + } + dd.end(); /* for (int i = 1; i < m_nstraightPath-1; ++i) - { - duDebugDrawNavMeshPoly(&dd, m_navMesh, m_straightPathPolys[i], duRGBA(255,255,255,64)); - }*/ - } - if (m_nsmoothPath) { - const unsigned int pathCol = duRGBA(0,0,0,220); - dd.begin(DU_DRAW_LINES, 3.0f); - for (int i = 0; i < m_nsmoothPath; ++i) - dd.vertex(m_smoothPath[i*3], m_smoothPath[i*3+1]+0.1f, m_smoothPath[i*3+2], pathCol); - dd.end(); - } + duDebugDrawNavMeshPoly(&dd, m_navMesh, m_straightPathPolys[i], duRGBA(255,255,255,64)); + }*/ } - else if (m_toolMode == TOOLMODE_RAYCAST) + if (m_nsmoothPath) { - duDebugDrawNavMeshPoly(&dd, m_navMesh, m_startRef, startCol); - - if (m_nstraightPath) - { - for (int i = 1; i < m_npolys; ++i) - duDebugDrawNavMeshPoly(&dd, m_navMesh, m_polys[i], pathCol); - - const unsigned int pathCol = duRGBA(64,16,0,220); - dd.begin(DU_DRAW_LINES, 2.0f); - for (int i = 0; i < m_nstraightPath-1; ++i) - { - dd.vertex(m_straightPath[i*3], m_straightPath[i*3+1]+0.4f, m_straightPath[i*3+2], pathCol); - dd.vertex(m_straightPath[(i+1)*3], m_straightPath[(i+1)*3+1]+0.4f, m_straightPath[(i+1)*3+2], pathCol); - } - dd.end(); - dd.begin(DU_DRAW_POINTS, 4.0f); - for (int i = 0; i < m_nstraightPath; ++i) - dd.vertex(m_straightPath[i*3], m_straightPath[i*3+1]+0.4f, m_straightPath[i*3+2], pathCol); - dd.end(); - - const unsigned int hitCol = duRGBA(0,0,0,128); - dd.begin(DU_DRAW_LINES, 2.0f); - dd.vertex(m_hitPos[0], m_hitPos[1] + 0.4f, m_hitPos[2], hitCol); - dd.vertex(m_hitPos[0] + m_hitNormal[0]*m_agentRadius, - m_hitPos[1] + 0.4f + m_hitNormal[1]*m_agentRadius, - m_hitPos[2] + m_hitNormal[2]*m_agentRadius, hitCol); - dd.end(); - } - } - else if (m_toolMode == TOOLMODE_DISTANCE_TO_WALL) - { - duDebugDrawNavMeshPoly(&dd, m_navMesh, m_startRef, startCol); - duDebugDrawCircle(&dd, m_spos[0], m_spos[1]+m_agentHeight/2, m_spos[2], m_distanceToWall, duRGBA(64,16,0,220), 2.0f); + const unsigned int pathCol = duRGBA(0,0,0,220); dd.begin(DU_DRAW_LINES, 3.0f); - dd.vertex(m_hitPos[0], m_hitPos[1] + 0.02f, m_hitPos[2], duRGBA(0,0,0,192)); - dd.vertex(m_hitPos[0], m_hitPos[1] + m_agentHeight, m_hitPos[2], duRGBA(0,0,0,192)); + for (int i = 0; i < m_nsmoothPath; ++i) + dd.vertex(m_smoothPath[i*3], m_smoothPath[i*3+1]+0.1f, m_smoothPath[i*3+2], pathCol); dd.end(); } - else if (m_toolMode == TOOLMODE_FIND_POLYS_AROUND) + } + else if (m_toolMode == TOOLMODE_RAYCAST) + { + duDebugDrawNavMeshPoly(&dd, m_navMesh, m_startRef, startCol); + + if (m_nstraightPath) { - for (int i = 0; i < m_npolys; ++i) - { + for (int i = 1; i < m_npolys; ++i) duDebugDrawNavMeshPoly(&dd, m_navMesh, m_polys[i], pathCol); - if (m_parent[i]) - { - float p0[3], p1[3]; - getPolyCenter(m_navMesh, m_polys[i], p0); - getPolyCenter(m_navMesh, m_parent[i], p1); - duDebugDrawArc(&dd, p0[0],p0[1],p0[2], p1[0],p1[1],p1[2], 0.25f, duRGBA(0,0,0,128), 2.0f); - } - } + const unsigned int pathCol = duRGBA(64,16,0,220); + dd.begin(DU_DRAW_LINES, 2.0f); + for (int i = 0; i < m_nstraightPath-1; ++i) + { + dd.vertex(m_straightPath[i*3], m_straightPath[i*3+1]+0.4f, m_straightPath[i*3+2], pathCol); + dd.vertex(m_straightPath[(i+1)*3], m_straightPath[(i+1)*3+1]+0.4f, m_straightPath[(i+1)*3+2], pathCol); + } + dd.end(); + dd.begin(DU_DRAW_POINTS, 4.0f); + for (int i = 0; i < m_nstraightPath; ++i) + dd.vertex(m_straightPath[i*3], m_straightPath[i*3+1]+0.4f, m_straightPath[i*3+2], pathCol); + dd.end(); + + const unsigned int hitCol = duRGBA(0,0,0,128); + dd.begin(DU_DRAW_LINES, 2.0f); + dd.vertex(m_hitPos[0], m_hitPos[1] + 0.4f, m_hitPos[2], hitCol); + dd.vertex(m_hitPos[0] + m_hitNormal[0]*m_agentRadius, + m_hitPos[1] + 0.4f + m_hitNormal[1]*m_agentRadius, + m_hitPos[2] + m_hitNormal[2]*m_agentRadius, hitCol); + dd.end(); + } + } + else if (m_toolMode == TOOLMODE_DISTANCE_TO_WALL) + { + duDebugDrawNavMeshPoly(&dd, m_navMesh, m_startRef, startCol); + duDebugDrawCircle(&dd, m_spos[0], m_spos[1]+m_agentHeight/2, m_spos[2], m_distanceToWall, duRGBA(64,16,0,220), 2.0f); + dd.begin(DU_DRAW_LINES, 3.0f); + dd.vertex(m_hitPos[0], m_hitPos[1] + 0.02f, m_hitPos[2], duRGBA(0,0,0,192)); + dd.vertex(m_hitPos[0], m_hitPos[1] + m_agentHeight, m_hitPos[2], duRGBA(0,0,0,192)); + dd.end(); + } + else if (m_toolMode == TOOLMODE_FIND_POLYS_AROUND) + { + for (int i = 0; i < m_npolys; ++i) + { + duDebugDrawNavMeshPoly(&dd, m_navMesh, m_polys[i], pathCol); + if (m_parent[i]) + { + float p0[3], p1[3]; + dd.depthMask(false); + getPolyCenter(m_navMesh, m_parent[i], p0); + getPolyCenter(m_navMesh, m_polys[i], p1); + duDebugDrawArc(&dd, p0[0],p0[1],p0[2], p1[0],p1[1],p1[2], 0.25f, 0.0f, 0.4f, duRGBA(0,0,0,128), 2.0f); + dd.depthMask(true); + } + } + + if (m_sposSet && m_eposSet) + { + dd.depthMask(false); const float dx = m_epos[0] - m_spos[0]; const float dz = m_epos[2] - m_spos[2]; const float dist = sqrtf(dx*dx + dz*dz); duDebugDrawCircle(&dd, m_spos[0], m_spos[1]+m_agentHeight/2, m_spos[2], dist, duRGBA(64,16,0,220), 2.0f); + dd.depthMask(true); } } diff --git a/RecastDemo/Source/OffMeshLinkTool.cpp b/RecastDemo/Source/OffMeshConnectionTool.cpp similarity index 70% rename from RecastDemo/Source/OffMeshLinkTool.cpp rename to RecastDemo/Source/OffMeshConnectionTool.cpp index 82c8c77..f3c977d 100644 --- a/RecastDemo/Source/OffMeshLinkTool.cpp +++ b/RecastDemo/Source/OffMeshConnectionTool.cpp @@ -24,7 +24,7 @@ #include "SDL.h" #include "SDL_opengl.h" #include "imgui.h" -#include "OffMeshLinkTool.h" +#include "OffMeshConnectionTool.h" #include "InputGeom.h" #include "Sample.h" #include "Recast.h" @@ -35,39 +35,47 @@ # define snprintf _snprintf #endif -OffMeshLinkTool::OffMeshLinkTool() : +OffMeshConnectionTool::OffMeshConnectionTool() : m_sample(0), - m_hitPosSet(0) + m_hitPosSet(0), + m_bidir(true) { } -OffMeshLinkTool::~OffMeshLinkTool() +OffMeshConnectionTool::~OffMeshConnectionTool() { } -void OffMeshLinkTool::init(Sample* sample) +void OffMeshConnectionTool::init(Sample* sample) { m_sample = sample; + if (m_sample) + m_sample->setNavMeshDrawFlags(0); } -void OffMeshLinkTool::reset() +void OffMeshConnectionTool::reset() { m_hitPosSet = false; } -void OffMeshLinkTool::handleMenu() +void OffMeshConnectionTool::handleMenu() { - if (m_hitPosSet) + if (imguiCheck("One Way", !m_bidir)) + m_bidir = false; + if (imguiCheck("Bidirectional", m_bidir)) + m_bidir = true; + + if (!m_hitPosSet) { - imguiValue("Click to set link start."); + imguiValue("Click to set connection start."); } else { - imguiValue("Click to set link end."); + imguiValue("Click to set connection end."); } } -void OffMeshLinkTool::handleClick(const float* p, bool shift) +void OffMeshConnectionTool::handleClick(const float* p, bool shift) { if (!m_sample) return; InputGeom* geom = m_sample->getInputGeom(); @@ -79,8 +87,8 @@ void OffMeshLinkTool::handleClick(const float* p, bool shift) // Find nearest link end-point float nearestDist = FLT_MAX; int nearestIndex = -1; - const float* verts = geom->getOffMeshLinkVertices(); - for (int i = 0; i < geom->getOffMeshLinkCount()*2; ++i) + const float* verts = geom->getOffMeshConnectionVerts(); + for (int i = 0; i < geom->getOffMeshConnectionCount()*2; ++i) { const float* v = &verts[i*3]; float d = vdistSqr(p, v); @@ -94,7 +102,7 @@ void OffMeshLinkTool::handleClick(const float* p, bool shift) if (nearestIndex != -1 && sqrtf(nearestDist) < m_sample->getAgentRadius()) { - geom->deleteOffMeshLink(nearestIndex); + geom->deleteOffMeshConnection(nearestIndex); } } else @@ -107,14 +115,14 @@ void OffMeshLinkTool::handleClick(const float* p, bool shift) } else { - geom->addOffMeshLink(m_hitPos, p); + geom->addOffMeshConnection(m_hitPos, p, m_sample->getAgentRadius(), m_bidir ? 1 : 0); m_hitPosSet = false; } } } -void OffMeshLinkTool::handleRender() +void OffMeshConnectionTool::handleRender() { DebugDrawGL dd; const float s = m_sample->getAgentRadius(); @@ -124,10 +132,10 @@ void OffMeshLinkTool::handleRender() InputGeom* geom = m_sample->getInputGeom(); if (geom) - geom->drawLinks(&dd, s); + geom->drawOffMeshConnections(&dd, true); } -void OffMeshLinkTool::handleRenderOverlay(double* proj, double* model, int* view) +void OffMeshConnectionTool::handleRenderOverlay(double* proj, double* model, int* view) { GLdouble x, y, z; diff --git a/RecastDemo/Source/Sample.cpp b/RecastDemo/Source/Sample.cpp index 2d87381..0aac1a0 100644 --- a/RecastDemo/Source/Sample.cpp +++ b/RecastDemo/Source/Sample.cpp @@ -23,6 +23,7 @@ #include "InputGeom.h" #include "Recast.h" #include "RecastDebugDraw.h" +#include "DetourDebugDraw.h" #include "imgui.h" #include "SDL.h" #include "SDL_opengl.h" @@ -32,6 +33,11 @@ #endif +void DebugDrawGL::depthMask(bool state) +{ + glDepthMask(state ? GL_TRUE : GL_FALSE); +} + void DebugDrawGL::begin(duDebugDrawPrimitives prim, float size) { switch (prim) @@ -76,6 +82,7 @@ void DebugDrawGL::end() Sample::Sample() : m_geom(0), m_navMesh(0), + m_navMeshDrawFlags(DU_DRAWNAVMESH_CLOSEDLIST), m_tool(0) { resetCommonSettings(); diff --git a/RecastDemo/Source/Sample_SoloMeshSimple.cpp b/RecastDemo/Source/Sample_SoloMeshSimple.cpp index 79635bf..69e2c6a 100644 --- a/RecastDemo/Source/Sample_SoloMeshSimple.cpp +++ b/RecastDemo/Source/Sample_SoloMeshSimple.cpp @@ -34,7 +34,7 @@ #include "DetourNavMeshBuilder.h" #include "DetourDebugDraw.h" #include "NavMeshTesterTool.h" -#include "OffMeshLinkTool.h" +#include "OffMeshConnectionTool.h" #ifdef WIN32 # define snprintf _snprintf @@ -95,9 +95,9 @@ void Sample_SoloMeshSimple::handleTools() { setTool(new NavMeshTesterTool); } - if (imguiCheck("Create Off-Mesh Links", type == TOOL_OFFMESH_LINK)) + if (imguiCheck("Create Off-Mesh Connections", type == TOOL_OFFMESH_CONNECTION)) { - setTool(new OffMeshLinkTool); + setTool(new OffMeshConnectionTool); } imguiSeparator(); @@ -197,14 +197,16 @@ void Sample_SoloMeshSimple::handleRender() duDebugDrawTriMeshSlope(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), m_agentMaxSlope); - m_geom->drawLinks(&dd, m_agentRadius); + if ((m_navMeshDrawFlags & DU_DRAWNAVMESH_OFFMESHCONS) == 0) + m_geom->drawOffMeshConnections(&dd); } else if (m_drawMode != DRAWMODE_NAVMESH_TRANS) { // Draw mesh duDebugDrawTriMesh(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), 0); - m_geom->drawLinks(&dd, m_agentRadius); + if ((m_navMeshDrawFlags & DU_DRAWNAVMESH_OFFMESHCONS) == 0) + m_geom->drawOffMeshConnections(&dd); } glDisable(GL_FOG); @@ -222,7 +224,7 @@ void Sample_SoloMeshSimple::handleRender() m_drawMode == DRAWMODE_NAVMESH_INVIS)) { if (m_drawMode != DRAWMODE_NAVMESH_INVIS) - duDebugDrawNavMesh(&dd, m_navMesh); //, m_toolMode == TOOLMODE_PATHFIND); + duDebugDrawNavMesh(&dd, m_navMesh, m_navMeshDrawFlags); if (m_drawMode == DRAWMODE_NAVMESH_BVTREE) duDebugDrawNavMeshBVTree(&dd, m_navMesh); } @@ -550,13 +552,32 @@ bool Sample_SoloMeshSimple::handleBuild() { unsigned char* navData = 0; int navDataSize = 0; - if (!dtCreateNavMeshData(m_pmesh->verts, m_pmesh->nverts, - m_pmesh->polys, m_pmesh->npolys, m_pmesh->nvp, - m_dmesh->meshes, m_dmesh->verts, m_dmesh->nverts, - m_dmesh->tris, m_dmesh->ntris, - m_geom->getOffMeshLinkVertices(), m_geom->getOffMeshLinkCount(), - m_pmesh->bmin, m_pmesh->bmax, m_cfg.cs, m_cfg.ch, 0, m_cfg.walkableClimb, - &navData, &navDataSize)) + + dtNavMeshCreateParams params; + memset(¶ms, 0, sizeof(params)); + params.verts = m_pmesh->verts; + params.vertCount = m_pmesh->nverts; + params.polys = m_pmesh->polys; + params.polyCount = m_pmesh->npolys; + params.nvp = m_pmesh->nvp; + params.detailMeshes = m_dmesh->meshes; + params.detailVerts = m_dmesh->verts; + params.detailVertsCount = m_dmesh->nverts; + params.detailTris = m_dmesh->tris; + params.detailTriCount = m_dmesh->ntris; + params.offMeshConVerts = m_geom->getOffMeshConnectionVerts(); + params.offMeshConRad = m_geom->getOffMeshConnectionRads(); + params.offMeshConDir = m_geom->getOffMeshConnectionDirs(); + params.offMeshConCount = m_geom->getOffMeshConnectionCount(); + params.walkableHeight = m_agentHeight; + params.walkableRadius = m_agentRadius; + params.walkableClimb = m_agentMaxClimb; + vcopy(params.bmin, m_pmesh->bmin); + vcopy(params.bmax, m_pmesh->bmax); + params.cs = m_cfg.cs; + params.ch = m_cfg.ch; + + if (!dtCreateNavMeshData(¶ms, &navData, &navDataSize)) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "Could not build Detour navmesh."); @@ -617,6 +638,8 @@ bool Sample_SoloMeshSimple::handleBuild() rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); } + + setNavMeshDrawFlags(DU_DRAWNAVMESH_OFFMESHCONS); if (m_tool) m_tool->init(this); diff --git a/RecastDemo/Source/Sample_SoloMeshTiled.cpp b/RecastDemo/Source/Sample_SoloMeshTiled.cpp index 7582426..e3ed6bb 100644 --- a/RecastDemo/Source/Sample_SoloMeshTiled.cpp +++ b/RecastDemo/Source/Sample_SoloMeshTiled.cpp @@ -33,7 +33,7 @@ #include "DetourNavMeshBuilder.h" #include "DetourDebugDraw.h" #include "NavMeshTesterTool.h" -#include "OffMeshLinkTool.h" +#include "OffMeshConnectionTool.h" #ifdef WIN32 # define snprintf _snprintf @@ -110,9 +110,9 @@ void Sample_SoloMeshTiled::handleTools() { setTool(new NavMeshTesterTool); } - if (imguiCheck("Create Off-Mesh Links", type == TOOL_OFFMESH_LINK)) + if (imguiCheck("Create Off-Mesh Links", type == TOOL_OFFMESH_CONNECTION)) { - setTool(new OffMeshLinkTool); + setTool(new OffMeshConnectionTool); } imguiSeparator(); @@ -231,14 +231,16 @@ void Sample_SoloMeshTiled::handleRender() duDebugDrawTriMeshSlope(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), m_agentMaxSlope); - m_geom->drawLinks(&dd, m_agentRadius); + if ((m_navMeshDrawFlags & DU_DRAWNAVMESH_OFFMESHCONS) == 0) + m_geom->drawOffMeshConnections(&dd); } else if (m_drawMode != DRAWMODE_NAVMESH_TRANS) { // Draw mesh duDebugDrawTriMesh(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), 0); - m_geom->drawLinks(&dd, m_agentRadius); + if ((m_navMeshDrawFlags & DU_DRAWNAVMESH_OFFMESHCONS) == 0) + m_geom->drawOffMeshConnections(&dd); } glDisable(GL_FOG); @@ -264,7 +266,7 @@ void Sample_SoloMeshTiled::handleRender() m_drawMode == DRAWMODE_NAVMESH_INVIS)) { if (m_drawMode != DRAWMODE_NAVMESH_INVIS) - duDebugDrawNavMesh(&dd, m_navMesh); //, m_toolMode == TOOLMODE_PATHFIND); + duDebugDrawNavMesh(&dd, m_navMesh, m_navMeshDrawFlags); if (m_drawMode == DRAWMODE_NAVMESH_BVTREE) duDebugDrawNavMeshBVTree(&dd, m_navMesh); } @@ -922,13 +924,32 @@ bool Sample_SoloMeshTiled::handleBuild() { unsigned char* navData = 0; int navDataSize = 0; - if (!dtCreateNavMeshData(m_pmesh->verts, m_pmesh->nverts, - m_pmesh->polys, m_pmesh->npolys, m_pmesh->nvp, - m_dmesh->meshes, m_dmesh->verts, m_dmesh->nverts, - m_dmesh->tris, m_dmesh->ntris, - 0, 0, - m_pmesh->bmin, m_pmesh->bmax, m_cfg.cs, m_cfg.ch, 0, m_cfg.walkableClimb, - &navData, &navDataSize)) + + dtNavMeshCreateParams params; + memset(¶ms, 0, sizeof(params)); + params.verts = m_pmesh->verts; + params.vertCount = m_pmesh->nverts; + params.polys = m_pmesh->polys; + params.polyCount = m_pmesh->npolys; + params.nvp = m_pmesh->nvp; + params.detailMeshes = m_dmesh->meshes; + params.detailVerts = m_dmesh->verts; + params.detailVertsCount = m_dmesh->nverts; + params.detailTris = m_dmesh->tris; + params.detailTriCount = m_dmesh->ntris; + params.offMeshConVerts = 0; + params.offMeshConRad = 0; + params.offMeshConDir = 0; + params.offMeshConCount = 0; + params.walkableHeight = m_agentHeight; + params.walkableRadius = m_agentRadius; + params.walkableClimb = m_agentMaxClimb; + vcopy(params.bmin, m_pmesh->bmin); + vcopy(params.bmax, m_pmesh->bmax); + params.cs = m_cfg.cs; + params.ch = m_cfg.ch; + + if (!dtCreateNavMeshData(¶ms, &navData, &navDataSize)) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "Could not build Detour navmesh."); @@ -992,6 +1013,8 @@ bool Sample_SoloMeshTiled::handleBuild() rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); } + setNavMeshDrawFlags(DU_DRAWNAVMESH_OFFMESHCONS); + if (m_tool) m_tool->init(this); diff --git a/RecastDemo/Source/Sample_TileMesh.cpp b/RecastDemo/Source/Sample_TileMesh.cpp index cd6ef7f..bc5100d 100644 --- a/RecastDemo/Source/Sample_TileMesh.cpp +++ b/RecastDemo/Source/Sample_TileMesh.cpp @@ -33,7 +33,7 @@ #include "DetourNavMeshBuilder.h" #include "DetourDebugDraw.h" #include "NavMeshTesterTool.h" -#include "OffMeshLinkTool.h" +#include "OffMeshConnectionTool.h" #ifdef WIN32 # define snprintf _snprintf @@ -253,9 +253,9 @@ void Sample_TileMesh::handleTools() { setTool(new NavMeshTileTool); } - if (imguiCheck("Create Off-Mesh Links", type == TOOL_OFFMESH_LINK)) + if (imguiCheck("Create Off-Mesh Links", type == TOOL_OFFMESH_CONNECTION)) { - setTool(new OffMeshLinkTool); + setTool(new OffMeshConnectionTool); } imguiSeparator(); @@ -288,14 +288,14 @@ static void getPolyCenter(dtNavMesh* navMesh, dtPolyRef ref, float* center) center[0] = 0; center[1] = 0; center[2] = 0; - for (int i = 0; i < (int)p->nv; ++i) + for (int i = 0; i < (int)p->vertCount; ++i) { - const float* v = &verts[p->v[i]*3]; + const float* v = &verts[p->verts[i]*3]; center[0] += v[0]; center[1] += v[1]; center[2] += v[2]; } - const float s = 1.0f / p->nv; + const float s = 1.0f / p->vertCount; center[0] *= s; center[1] *= s; center[2] *= s; @@ -311,7 +311,8 @@ void Sample_TileMesh::handleRender() // Draw mesh duDebugDrawTriMesh(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), 0); - m_geom->drawLinks(&dd, m_agentRadius); + if ((m_navMeshDrawFlags & DU_DRAWNAVMESH_OFFMESHCONS) == 0) + m_geom->drawOffMeshConnections(&dd); glDepthMask(GL_FALSE); @@ -332,7 +333,7 @@ void Sample_TileMesh::handleRender() duDebugDrawBoxWire(&dd, m_tileBmin[0],m_tileBmin[1],m_tileBmin[2], m_tileBmax[0],m_tileBmax[1],m_tileBmax[2], m_tileCol, 2.0f); if (m_navMesh) - duDebugDrawNavMesh(&dd, m_navMesh); + duDebugDrawNavMesh(&dd, m_navMesh, m_navMeshDrawFlags); if (m_tool) m_tool->handleRender(); @@ -392,9 +393,8 @@ bool Sample_TileMesh::handleBuild() const float* bmin = m_geom->getMeshBoundsMin(); const float tileWorldWidth = m_tileSize*m_cellSize; const float tileWorldHeight = m_tileSize*m_cellSize; - const float portalHeight = m_agentMaxClimb*m_cellHeight; - if (!m_navMesh->init(bmin, tileWorldWidth, tileWorldHeight, portalHeight, m_maxTiles, m_maxPolysPerTile, 2048)) + if (!m_navMesh->init(bmin, tileWorldWidth, tileWorldHeight, m_maxTiles, m_maxPolysPerTile, 2048)) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not init navmesh."); @@ -404,6 +404,8 @@ bool Sample_TileMesh::handleBuild() if (m_buildAll) buildAllTiles(); + setNavMeshDrawFlags(DU_DRAWNAVMESH_OFFMESHCONS); + if (m_tool) m_tool->init(this); @@ -782,12 +784,32 @@ unsigned char* Sample_TileMesh::buildTileMesh(const float* bmin, const float* bm return false; }*/ - if (!dtCreateNavMeshData(m_pmesh->verts, m_pmesh->nverts, - m_pmesh->polys, m_pmesh->npolys, m_pmesh->nvp, - m_dmesh->meshes, m_dmesh->verts, m_dmesh->nverts, m_dmesh->tris, m_dmesh->ntris, - 0, 0, - bmin, bmax, m_cfg.cs, m_cfg.ch, m_cfg.tileSize, m_cfg.walkableClimb, - &navData, &navDataSize)) + dtNavMeshCreateParams params; + memset(¶ms, 0, sizeof(params)); + params.verts = m_pmesh->verts; + params.vertCount = m_pmesh->nverts; + params.polys = m_pmesh->polys; + params.polyCount = m_pmesh->npolys; + params.nvp = m_pmesh->nvp; + params.detailMeshes = m_dmesh->meshes; + params.detailVerts = m_dmesh->verts; + params.detailVertsCount = m_dmesh->nverts; + params.detailTris = m_dmesh->tris; + params.detailTriCount = m_dmesh->ntris; + params.offMeshConVerts = 0; + params.offMeshConRad = 0; + params.offMeshConDir = 0; + params.offMeshConCount = 0; + params.walkableHeight = m_agentHeight; + params.walkableRadius = m_agentRadius; + params.walkableClimb = m_agentMaxClimb; + vcopy(params.bmin, bmin); + vcopy(params.bmax, bmax); + params.cs = m_cfg.cs; + params.ch = m_cfg.ch; + params.tileSize = m_cfg.tileSize; + + if (!dtCreateNavMeshData(¶ms, &navData, &navDataSize)) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "Could not build Detour navmesh.");