From e63862482890ff2047f1058d48ad4441bafd3b48 Mon Sep 17 00:00:00 2001 From: Mikko Mononen Date: Tue, 16 Jun 2009 09:57:55 +0000 Subject: [PATCH] Version 1.2 Removed paris demo code. Cleaned up the API and added missing comments. --- Readme.txt | 18 +- Recast/Include/Recast.h | 49 +- Recast/Include/RecastDebugDraw.h | 11 +- Recast/Source/Recast.cpp | 93 +- Recast/Source/RecastContour.cpp | 10 +- Recast/Source/RecastDebugDraw.cpp | 77 +- Recast/Source/RecastFilter.cpp | 50 +- Recast/Source/RecastRasterization.cpp | 9 +- Recast/Source/RecastRegion.cpp | 7 +- .../Xcode/Recast.xcodeproj/memon.pbxuser | 2435 +++++------------ .../Recast.xcodeproj/memon.perspectivev3 | 143 +- .../Xcode/Recast.xcodeproj/project.pbxproj | 10 - RecastDemo/Contrib/SDL/readme.txt | 7 +- RecastDemo/Source/demo.cpp | 307 +-- 14 files changed, 966 insertions(+), 2260 deletions(-) diff --git a/Readme.txt b/Readme.txt index 0bcce043..cc152b54 100644 --- a/Readme.txt +++ b/Readme.txt @@ -1,4 +1,4 @@ -Recast Version 1.0 +Recast Version 1.2 Recast is state of the art navigation mesh construction toolset for games. @@ -35,6 +35,22 @@ The project files with this distribution can be compiled with Microsoft Visual C Release Notes +---------------- +* Recast 1.2 + Released June 17th, 2009 + +- Added tiled mesh generation. The tiled generation allows to generate navigation for + much larger worlds, it removes some of the artifacts that comes from distance fields + in open areas, and allows later streaming and dynamic runtime generation +- Improved and added some debug draw modes +- API change: The helper function rcBuildNavMesh does not exists anymore, + had to change few internal things to cope with the tiled processing, + similar API functionality will be added later once the tiled process matures +- The demo is getting way too complicated, need to split demos +- Fixed several filtering functions so that the mesh is tighter to the geometry, + sometimes there could be up error up to tow voxel units close to walls, + now it should be just one. + ---------------- * Recast 1.1 Released April 11th, 2009 diff --git a/Recast/Include/Recast.h b/Recast/Include/Recast.h index 0ca2c5a9..5d835d8e 100644 --- a/Recast/Include/Recast.h +++ b/Recast/Include/Recast.h @@ -67,6 +67,8 @@ struct rcHeightfield } } int width, height; + float bmin[3], bmax[3]; + float cs, ch; rcSpan** spans; rcSpanPool* pools; rcSpan* freelist; @@ -268,7 +270,12 @@ void rcCalcGridSize(const float* bmin, const float* bmax, float cs, int* w, int* // hf - (in/out) heightfield to initialize. // width - (in) width of the heightfield. // height - (in) height of the heightfield. -bool rcCreateHeightfield(rcHeightfield& hf, int width, int height); +// bmin, bmax - (in) bounding box of the heightfield +// cs - (in) grid cell size +// ch - (in) grid cell height +bool rcCreateHeightfield(rcHeightfield& hf, int width, int height, + const float* bmin, const float* bmax, + float cs, float ch); // Sets the WALKABLE flag for every triangle whose slope is below // the maximun walkable slope angle. @@ -286,9 +293,6 @@ void rcMarkWalkableTriangles(const float walkableSlopeAngle, // Rasterizes the triangles into heightfield spans. // Params: -// bmin, bmax - (in) bounding box of the heightfield -// cs - (in) grid cell size -// ch - (in) grid cell height // verts - (in) array of vertices // nv - (in) vertex count // tris - (in) array of triangle vertex indices @@ -296,15 +300,20 @@ void rcMarkWalkableTriangles(const float walkableSlopeAngle, // flags - (in) array of triangle flags (uses WALKABLE) // nt - (in) triangle count // solid - (in) heighfield where the triangles are rasterized -void rcRasterizeTriangles(const float* bmin, const float* bmax, - float cs, float ch, - const float* verts, int nv, +void rcRasterizeTriangles(const float* verts, int nv, const int* tris, const unsigned char* flags, int nt, rcHeightfield& solid); -void rcFilterWalkableBorderSpans(const int walkableHeight, - const int walkableClimb, - rcHeightfield& solid); +// Removes WALKABLE flag from all spans that are at ledges. This filtering +// removes possible overestimation of the conservative voxelization so that +// the resulting mesh will not have regions hanging in air over ledges. +// Params: +// walkableHeight - (in) minimum height where the agent can still walk +// walkableClimb - (in) maximum height between grid cells the agent can climb +// solid - (in/out) heightfield describing the solid space +void rcFilterLedgeSpans(const int walkableHeight, + const int walkableClimb, + rcHeightfield& solid); // Removes WALKABLE flag from all spans which have smaller than // 'walkableHeight' clearane above them. @@ -326,17 +335,12 @@ bool rcMarkReachableSpans(const int walkableHeight, // Builds compact representation of the heightfield. // Params: -// bmin, bmax - (in) bounding box of the heightfield -// cs - (in) grid cell size -// ch - (in) grid cell height // walkableHeight - (in) minimum height where the agent can still walk // walkableClimb - (in) maximum height between grid cells the agent can climb // hf - (in) heightfield to be compacted // chf - (out) compact heightfield representing the open space. // Returns false if operation ran out of memory. -bool rcBuildCompactHeightfield(const float* bmin, const float* bmax, - const float cs, const float ch, - const int walkableHeight, const int walkableClimb, +bool rcBuildCompactHeightfield(const int walkableHeight, const int walkableClimb, unsigned char flags, rcHeightfield& hf, rcCompactHeightfield& chf); @@ -362,7 +366,8 @@ bool rcBuildDistanceField(rcCompactHeightfield& chf); // maxMergeRegionSize - (in) the largest allowed regions size which can be merged. // Returns false if operation ran out of memory. bool rcBuildRegions(rcCompactHeightfield& chf, - int walkableRadius, int borderSize, int minRegionSize, int mergeRegionSize); + int walkableRadius, int borderSize, + int minRegionSize, int mergeRegionSize); // Builds simplified contours from the regions outlines. // Params: @@ -380,7 +385,7 @@ bool rcBuildContours(rcCompactHeightfield& chf, // cseta - (in) contour set A. // csetb - (in) contour set B. // walkableHeight - (in) minimum height where the agent can still walk -// edgex, edgey - (in) defines the planes where the edges can be merged +// edgex, edgez - (in) defines the planes where the edges can be merged // orig - (in) origin of the contour set A. // cs - (in) grid cell size // ch - (in) grid cell height @@ -406,13 +411,5 @@ bool rcBuildPolyMesh(rcContourSet& cset, const float cs, const float ch, int nvp, rcPolyMesh& mesh); -bool rcBuildNavMesh(const rcConfig& cfg, - const float* verts, const int nverts, - const int* tris, const unsigned char* tflags, const int ntris, - rcHeightfield& solid, - rcCompactHeightfield& chf, - rcContourSet& cset, - rcPolyMesh& polyMesh); - #endif // RECAST_H diff --git a/Recast/Include/RecastDebugDraw.h b/Recast/Include/RecastDebugDraw.h index 12cf1197..21353a37 100644 --- a/Recast/Include/RecastDebugDraw.h +++ b/Recast/Include/RecastDebugDraw.h @@ -34,14 +34,11 @@ inline void intToCol(int i, float* col) col[2] = 1 - b*63.0f/255.0f; } -void rcDebugDrawHeightfieldSolid(const struct rcHeightfield& hf, - const float* orig, float cs, float ch); +void rcDebugDrawHeightfieldSolid(const struct rcHeightfield& hf); +void rcDebugDrawHeightfieldWalkable(const struct rcHeightfield& hf); -void rcDebugDrawHeightfieldWalkable(const struct rcHeightfield& hf, - const float* orig, float cs, float ch); - -void rcDebugDrawMesh(const class rcMeshLoaderObj& mesh, const unsigned char* flags, const float miny, const float maxy); -void rcDebugDrawMeshSlope(const class rcMeshLoaderObj& mesh, const float walkableSlopeAngle, const float miny, const float maxy); +void rcDebugDrawMesh(const class rcMeshLoaderObj& mesh, const unsigned char* flags); +void rcDebugDrawMeshSlope(const class rcMeshLoaderObj& mesh, const float walkableSlopeAngle); void rcDebugDrawCompactHeightfieldSolid(const struct rcCompactHeightfield& chf); void rcDebugDrawCompactHeightfieldRegions(const struct rcCompactHeightfield& chf); diff --git a/Recast/Source/Recast.cpp b/Recast/Source/Recast.cpp index 102616fb..f37ac566 100644 --- a/Recast/Source/Recast.cpp +++ b/Recast/Source/Recast.cpp @@ -60,11 +60,17 @@ void rcCalcGridSize(const float* bmin, const float* bmax, float cs, int* w, int* *h = (int)((bmax[2] - bmin[2])/cs+0.5f); } -bool rcCreateHeightfield(rcHeightfield& hf, int width, int height) +bool rcCreateHeightfield(rcHeightfield& hf, int width, int height, + const float* bmin, const float* bmax, + float cs, float ch) { hf.width = width; hf.height = height; hf.spans = new rcSpan*[hf.width*hf.height]; + vcopy(hf.bmin, bmin); + vcopy(hf.bmax, bmax); + hf.cs = cs; + hf.ch = ch; if (!hf.spans) return false; memset(hf.spans, 0, sizeof(rcSpan*)*hf.width*hf.height); @@ -138,9 +144,7 @@ inline void setCon(rcCompactSpan& s, int dir, int i) s.con |= (i&0xf) << (dir*4); } -bool rcBuildCompactHeightfield(const float* bmin, const float* bmax, - const float cs, const float ch, - const int walkableHeight, const int walkableClimb, +bool rcBuildCompactHeightfield(const int walkableHeight, const int walkableClimb, unsigned char flags, rcHeightfield& hf, rcCompactHeightfield& chf) { @@ -157,11 +161,11 @@ bool rcBuildCompactHeightfield(const float* bmin, const float* bmax, chf.walkableHeight = walkableHeight; chf.walkableClimb = walkableClimb; chf.maxRegions = 0; - vcopy(chf.bmin, bmin); - vcopy(chf.bmax, bmax); - chf.bmax[1] += walkableHeight*ch; - chf.cs = cs; - chf.ch = ch; + vcopy(chf.bmin, hf.bmin); + vcopy(chf.bmax, hf.bmax); + chf.bmax[1] += walkableHeight*hf.ch; + chf.cs = hf.cs; + chf.ch = hf.ch; chf.cells = new rcCompactCell[w*h]; if (!chf.cells) { @@ -251,8 +255,6 @@ bool rcBuildCompactHeightfield(const float* bmin, const float* bmax, rcTimeVal endTime = rcGetPerformanceTimer(); -// if (rcGetLog()) -// rcGetLog()->log(RC_LOG_PROGRESS, "Build compact: %.3f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); if (rcGetBuildTimes()) rcGetBuildTimes()->buildCompact += rcGetDeltaTimeUsec(startTime, endTime); @@ -283,72 +285,3 @@ static int getCompactHeightFieldMemoryusage(const rcCompactHeightfield& chf) return size; } -bool rcBuildNavMesh(const rcConfig& cfg, - const float* verts, const int nverts, - const int* tris, const unsigned char* tflags, const int ntris, - rcHeightfield& solid, - rcCompactHeightfield& chf, - rcContourSet& cset, - rcPolyMesh& polyMesh) -{ - if (!rcCreateHeightfield(solid, cfg.width, cfg.height)) - { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not create solid heightfield."); - return false; - } - - rcRasterizeTriangles(cfg.bmin, cfg.bmax, cfg.cs, cfg.ch, - verts, nverts, tris, tflags, ntris, solid); - - rcFilterWalkableBorderSpans(cfg.walkableHeight, cfg.walkableClimb, solid); - - rcFilterWalkableLowHeightSpans(cfg.walkableHeight, solid); - -/* if (!rcMarkReachableSpans(cfg.walkableHeight, cfg.walkableClimb, solid)) - { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not build navigable heightfield."); - return false; - }*/ - - if (!rcBuildCompactHeightfield(cfg.bmin, cfg.bmax, cfg.cs, cfg.ch, - cfg.walkableHeight, cfg.walkableClimb, - RC_WALKABLE/*|RC_REACHABLE*/, solid, chf)) - { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not build compact data."); - return false; - } - - if (!rcBuildDistanceField(chf)) - { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not build distance fields."); - return false; - } - - if (!rcBuildRegions(chf, cfg.walkableRadius, cfg.borderSize, cfg.minRegionSize, cfg.mergeRegionSize)) - { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not build regions."); - return false; - } - - if (!rcBuildContours(chf, cfg.maxSimplificationError, cfg.maxEdgeLen, cset)) - { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not create contours."); - return false; - } - - if (!rcBuildPolyMesh(cset, cfg.bmin, cfg.bmax, cfg.cs, cfg.ch, - cfg.maxVertsPerPoly, polyMesh)) - { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not triangulate contours."); - return false; - } - - return true; -} diff --git a/Recast/Source/RecastContour.cpp b/Recast/Source/RecastContour.cpp index 0fa7a180..ff0fa87a 100644 --- a/Recast/Source/RecastContour.cpp +++ b/Recast/Source/RecastContour.cpp @@ -733,8 +733,8 @@ static bool conformVertex(rcContourSet* cset, const int* v, const int* vj = &c->verts[j*4]; const int* vk = &c->verts[k*4]; - const int miny = rcMin(vj[1], vk[1]); // - (walkableClimb-1); - const int maxy = rcMax(vj[1], vk[1]); // + (walkableClimb-1); + const int miny = rcMin(vj[1], vk[1]); + const int maxy = rcMax(vj[1], vk[1]); // Is edge within y-range. if ((miny > pmaxy || maxy < pminy) && @@ -783,7 +783,9 @@ bool rcFixupAdjacentContours(rcContourSet* cseta, rcContourSet* csetb, const int* pv = &c.verts[((j+c.nverts-1)%c.nverts)*4]; const int* nv = &c.verts[((j+1)%c.nverts)*4]; -// if (v[0] == edgex || v[2] == edgez) + // If the vertex is at the tile edge, make sure it also exists in + // the neighbour contour set. + if (v[0] == edgex || v[2] == edgez) { const int pminy = rcMin(v[1], pv[1]); const int pmaxy = rcMax(v[1], pv[1]); @@ -807,7 +809,7 @@ bool rcFixupAdjacentContours(rcContourSet* cseta, rcContourSet* csetb, // If the vertex is at the tile edge, make sure it also exists in // the neighbour contour set. -// if (v[0] == edgex || v[2] == edgez) + if (v[0] == edgex || v[2] == edgez) { const int pminy = rcMin(v[1], pv[1]); const int pmaxy = rcMax(v[1], pv[1]); diff --git a/Recast/Source/RecastDebugDraw.cpp b/Recast/Source/RecastDebugDraw.cpp index a67b2594..57e7f8f2 100644 --- a/Recast/Source/RecastDebugDraw.cpp +++ b/Recast/Source/RecastDebugDraw.cpp @@ -24,20 +24,17 @@ #include "MeshLoaderObj.h" #include "Recast.h" -void rcDebugDrawMesh(const rcMeshLoaderObj& mesh, const unsigned char* flags, const float miny, const float maxy) +void rcDebugDrawMesh(const rcMeshLoaderObj& mesh, const unsigned char* flags) { int nt = mesh.getTriCount(); const float* verts = mesh.getVerts(); const float* normals = mesh.getNormals(); const int* tris = mesh.getTris(); - const float s = 0.5f / (maxy - miny); - glBegin(GL_TRIANGLES); for (int i = 0; i < nt*3; i += 3) { float a = (2+normals[i+0]+normals[i+1])/4; - a *= 0.5f + (verts[tris[i]*3+1]-miny)*s; if (flags && !flags[i/3]) glColor3f(a,a*0.3f,a*0.1f); else @@ -49,7 +46,7 @@ void rcDebugDrawMesh(const rcMeshLoaderObj& mesh, const unsigned char* flags, co glEnd(); } -void rcDebugDrawMeshSlope(const rcMeshLoaderObj& mesh, const float walkableSlopeAngle, const float miny, const float maxy) +void rcDebugDrawMeshSlope(const rcMeshLoaderObj& mesh, const float walkableSlopeAngle) { const float walkableThr = cosf(walkableSlopeAngle/180.0f*(float)M_PI); @@ -58,14 +55,11 @@ void rcDebugDrawMeshSlope(const rcMeshLoaderObj& mesh, const float walkableSlope const float* normals = mesh.getNormals(); const int* tris = mesh.getTris(); - const float s = 0.5f / (maxy - miny); - glBegin(GL_TRIANGLES); for (int i = 0; i < nt*3; i += 3) { const float* norm = &normals[i]; float a = (2+norm[0]+norm[1])/4; - a *= 0.5f+(verts[tris[i]*3+1]-miny)*s; if (norm[1] > walkableThr) glColor3f(a,a,a); else @@ -155,41 +149,6 @@ void drawBox(float minx, float miny, float minz, float maxx, float maxy, float m } } - -void drawBox2(float minx, float miny, float minz, float maxx, float maxy, float maxz) -{ - 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 unsigned char inds[5*4] = - { - 7, 6, 5, 4, -// 0, 1, 2, 3, - 1, 5, 6, 2, - 3, 7, 4, 0, - 2, 6, 7, 3, - 0, 4, 5, 1, - }; - - const unsigned char* in = inds; - for (int i = 0; i < 5; ++i) - { - glVertex3fv(&verts[*in*3]); in++; - glVertex3fv(&verts[*in*3]); in++; - glVertex3fv(&verts[*in*3]); in++; - glVertex3fv(&verts[*in*3]); in++; - } -} - - void rcDebugDrawCylinderWire(float minx, float miny, float minz, float maxx, float maxy, float maxz, const float* col) { static const int NUM_SEG = 16; @@ -239,11 +198,14 @@ void rcDebugDrawBox(float minx, float miny, float minz, float maxx, float maxy, } -void rcDebugDrawHeightfieldSolid(const rcHeightfield& hf, - const float* orig, float cs, float ch) +void rcDebugDrawHeightfieldSolid(const rcHeightfield& hf) { static const float col0[4] = { 1,1,1,1 }; + const float* orig = hf.bmin; + const float cs = hf.cs; + const float ch = hf.ch; + const int w = hf.width; const int h = hf.height; @@ -266,12 +228,15 @@ void rcDebugDrawHeightfieldSolid(const rcHeightfield& hf, glEnd(); } -void rcDebugDrawHeightfieldWalkable(const rcHeightfield& hf, - const float* orig, float cs, float ch) +void rcDebugDrawHeightfieldWalkable(const rcHeightfield& hf) { static const float col0[4] = { 1,1,1,1 }; static const float col1[4] = { 0.25f,0.44f,0.5f,1 }; + const float* orig = hf.bmin; + const float cs = hf.cs; + const float ch = hf.ch; + const int w = hf.width; const int h = hf.height; @@ -315,11 +280,10 @@ void rcDebugDrawCompactHeightfieldSolid(const rcCompactHeightfield& chf) { const rcCompactSpan& s = chf.spans[i]; const float fy = chf.bmin[1] + (s.y+1)*ch; - drawBox2(fx, fy-ch*2, fz, fx+cs, fy, fz+cs); -/* glVertex3f(fx, fy, fz); + glVertex3f(fx, fy, fz); glVertex3f(fx, fy, fz+cs); glVertex3f(fx+cs, fy, fz+cs); - glVertex3f(fx+cs, fy, fz);*/ + glVertex3f(fx+cs, fy, fz); } } } @@ -352,15 +316,13 @@ void rcDebugDrawCompactHeightfieldRegions(const rcCompactHeightfield& chf) } else { -// glColor4ub(0,0,0,128); - glColor3ub(128,128,128); + glColor4ub(0,0,0,128); } const float fy = chf.bmin[1] + (s.y+1)*ch; - drawBox2(fx, fy-ch*2, fz, fx+cs, fy, fz+cs); -/* glVertex3f(fx, fy, fz); + glVertex3f(fx, fy, fz); glVertex3f(fx, fy, fz+cs); glVertex3f(fx+cs, fy, fz+cs); - glVertex3f(fx+cs, fy, fz);*/ + glVertex3f(fx+cs, fy, fz); } } } @@ -392,11 +354,10 @@ void rcDebugDrawCompactHeightfieldDistance(const rcCompactHeightfield& chf) const float fy = chf.bmin[1] + (s.y+1)*ch; float cd = (float)s.dist * dscale; glColor3f(cd, cd, cd); - drawBox2(fx, fy-ch*2, fz, fx+cs, fy, fz+cs); -/* glVertex3f(fx, fy, fz); + glVertex3f(fx, fy, fz); glVertex3f(fx, fy, fz+cs); glVertex3f(fx+cs, fy, fz+cs); - glVertex3f(fx+cs, fy, fz);*/ + glVertex3f(fx+cs, fy, fz); } } } diff --git a/Recast/Source/RecastFilter.cpp b/Recast/Source/RecastFilter.cpp index 5c8fa47a..3421ea18 100644 --- a/Recast/Source/RecastFilter.cpp +++ b/Recast/Source/RecastFilter.cpp @@ -24,9 +24,9 @@ #include "RecastTimer.h" -void rcFilterWalkableBorderSpans(const int walkableHeight, - const int walkableClimb, - rcHeightfield& solid) +void rcFilterLedgeSpans(const int walkableHeight, + const int walkableClimb, + rcHeightfield& solid) { rcTimeVal startTime = rcGetPerformanceTimer(); @@ -45,37 +45,47 @@ void rcFilterWalkableBorderSpans(const int walkableHeight, if ((s->flags & RC_WALKABLE) == 0) continue; - // The span is valid only if it has four neighbours. - int neighbourCount = 0; - const int bot = (int)s->smax; const int top = (int)s->next ? (int)s->next->smin : MAX_HEIGHT; - // Visit neighbours in all 4 directions. + // Find neighbours minimum height. + int minh = MAX_HEIGHT; + for (int dir = 0; dir < 4; ++dir) { int dx = x + rcGetDirOffsetX(dir); int dy = y + rcGetDirOffsetY(dir); // Skip neighbours which are out of bounds. if (dx < 0 || dy < 0 || dx >= w || dy >= h) - continue; - for (rcSpan* ns = solid.spans[dx + dy*w]; ns; ns = ns->next) { - const int nbot = (int)ns->smax; - const int ntop = (int)ns->next ? (int)ns->next->smin : MAX_HEIGHT; + minh = rcMin(minh, -walkableClimb - bot); + continue; + } + + // From minus infinity to the first span. + rcSpan* ns = solid.spans[dx + dy*w]; + int nbot = -walkableClimb; + int ntop = ns ? (int)ns->smin : MAX_HEIGHT; + // Skip neightbour if the gap between the spans is too small. + if (rcMin(top,ntop) - rcMax(bot,nbot) > walkableHeight) + minh = rcMin(minh, nbot - bot); + + // Rest of the spans. + for (ns = solid.spans[dx + dy*w]; ns; ns = ns->next) + { + nbot = (int)ns->smax; + ntop = (int)ns->next ? (int)ns->next->smin : MAX_HEIGHT; // Skip neightbour if the gap between the spans is too small. - if (rcMin(top,ntop) - rcMax(bot,nbot) <= walkableHeight) - continue; - // Skip neightbour if the climb height to the neighbour is too high. - if (rcAbs(nbot - bot) >= walkableClimb) - continue; - // This neighbour is reachable. - neighbourCount++; + if (rcMin(top,ntop) - rcMax(bot,nbot) > walkableHeight) + minh = rcMin(minh, nbot - bot); } } - // Remove walkable flag. - if (neighbourCount != 4) + + // The current span is close to a ledge if the drop to any + // neighbour span is less than the walkableClimb. + if (minh < -walkableClimb) s->flags &= ~RC_WALKABLE; + } } } diff --git a/Recast/Source/RecastRasterization.cpp b/Recast/Source/RecastRasterization.cpp index 7da33a20..1a79df2c 100644 --- a/Recast/Source/RecastRasterization.cpp +++ b/Recast/Source/RecastRasterization.cpp @@ -268,15 +268,14 @@ static void rasterizeTri(const float* v0, const float* v1, const float* v2, } } -void rcRasterizeTriangles(const float* bmin, const float* bmax, const float cs, const float ch, - const float* verts, int nv, +void rcRasterizeTriangles(const float* verts, int nv, const int* tris, const unsigned char* flags, int nt, rcHeightfield& solid) { rcTimeVal startTime = rcGetPerformanceTimer(); - const float ics = 1.0f/cs; - const float ich = 1.0f/ch; + const float ics = 1.0f/solid.cs; + const float ich = 1.0f/solid.ch; // Rasterize triangles. for (int i = 0; i < nt; ++i) { @@ -284,7 +283,7 @@ void rcRasterizeTriangles(const float* bmin, const float* bmax, const float cs, const float* v1 = &verts[tris[i*3+1]*3]; const float* v2 = &verts[tris[i*3+2]*3]; // Rasterize. - rasterizeTri(v0, v1, v2, flags[i], solid, bmin, bmax, cs, ics, ich); + rasterizeTri(v0, v1, v2, flags[i], solid, solid.bmin, solid.bmax, solid.cs, ics, ich); } rcTimeVal endTime = rcGetPerformanceTimer(); diff --git a/Recast/Source/RecastRegion.cpp b/Recast/Source/RecastRegion.cpp index ac300106..faaf3506 100644 --- a/Recast/Source/RecastRegion.cpp +++ b/Recast/Source/RecastRegion.cpp @@ -898,7 +898,7 @@ bool rcBuildDistanceField(rcCompactHeightfield& chf) rcTimeVal blurStartTime = rcGetPerformanceTimer(); // Blur - if (boxBlur(chf, 2, src, dst) != src) + if (boxBlur(chf, 1, src, dst) != src) rcSwap(src, dst); // Store distance. @@ -985,7 +985,7 @@ bool rcBuildRegions(rcCompactHeightfield& chf, unsigned short regionId = 1; unsigned short level = (chf.maxDistance+1) & ~1; - unsigned short minLevel = (unsigned short)walkableRadius * 2; + unsigned short minLevel = (unsigned short)(walkableRadius*2); const int expandIters = 4 + walkableRadius * 2; @@ -1033,10 +1033,9 @@ bool rcBuildRegions(rcCompactHeightfield& chf, } // Expand current regions until no empty connected cells found. - if (expandRegions(expandIters, minLevel, chf, src, dst, stack) != src) + if (expandRegions(expandIters*8, minLevel, chf, src, dst, stack) != src) rcSwap(src, dst); - rcTimeVal regEndTime = rcGetPerformanceTimer(); rcTimeVal filterStartTime = rcGetPerformanceTimer(); diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 17d1c6e7..56a1f3ff 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -99,90 +99,77 @@ PBXFileDataSource_Target_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 265812916; - PBXWorkspaceStateSaveDate = 265812916; + PBXPerProjectTemplateStateSaveDate = 266835565; + PBXWorkspaceStateSaveDate = 266835565; }; perUserProjectItems = { 6B09CDFF0FD5563E005637D5 = 6B09CDFF0FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE050FD5563E005637D5 = 6B09CE050FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE060FD5563E005637D5 = 6B09CE060FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE070FD5563E005637D5 = 6B09CE070FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE080FD5563E005637D5 = 6B09CE080FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE090FD5563E005637D5 = 6B09CE090FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE0A0FD5563E005637D5 = 6B09CE0A0FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE0B0FD5563E005637D5 = 6B09CE0B0FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE0C0FD5563E005637D5 = 6B09CE0C0FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE0D0FD5563E005637D5 = 6B09CE0D0FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE100FD5563E005637D5 = 6B09CE100FD5563E005637D5 /* PBXTextBookmark */; - 6B09CE130FD5563E005637D5 = 6B09CE130FD5563E005637D5 /* PBXTextBookmark */; 6B09CE1E0FD55805005637D5 = 6B09CE1E0FD55805005637D5 /* PBXTextBookmark */; 6B09CE2D0FD55B4D005637D5 = 6B09CE2D0FD55B4D005637D5 /* PBXTextBookmark */; - 6B09CE360FD55B99005637D5 = 6B09CE360FD55B99005637D5 /* PBXTextBookmark */; - 6B09CE470FD55FA2005637D5 = 6B09CE470FD55FA2005637D5 /* PBXTextBookmark */; - 6B09CE480FD55FA2005637D5 = 6B09CE480FD55FA2005637D5 /* PBXTextBookmark */; - 6B09CE490FD55FA2005637D5 = 6B09CE490FD55FA2005637D5 /* PBXTextBookmark */; - 6B09CE4A0FD55FA2005637D5 = 6B09CE4A0FD55FA2005637D5 /* PBXTextBookmark */; - 6B09CE5A0FD5BDE6005637D5 = 6B09CE5A0FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE5B0FD5BDE6005637D5 = 6B09CE5B0FD5BDE6005637D5 /* PBXTextBookmark */; 6B09CE5C0FD5BDE6005637D5 = 6B09CE5C0FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE5D0FD5BDE6005637D5 = 6B09CE5D0FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE5E0FD5BDE6005637D5 = 6B09CE5E0FD5BDE6005637D5 /* PBXTextBookmark */; 6B09CE5F0FD5BDE6005637D5 = 6B09CE5F0FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE620FD5BDE6005637D5 = 6B09CE620FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE630FD5BDE6005637D5 = 6B09CE630FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE640FD5BDE6005637D5 = 6B09CE640FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE650FD5BDE6005637D5 = 6B09CE650FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE660FD5BDE6005637D5 = 6B09CE660FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE670FD5BDE6005637D5 = 6B09CE670FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE680FD5BDE6005637D5 = 6B09CE680FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE690FD5BDE6005637D5 = 6B09CE690FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE6A0FD5BDE6005637D5 = 6B09CE6A0FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE6B0FD5BDE6005637D5 = 6B09CE6B0FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE6C0FD5BDE6005637D5 = 6B09CE6C0FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE6D0FD5BDE6005637D5 = 6B09CE6D0FD5BDE6005637D5 /* PBXTextBookmark */; - 6B09CE6E0FD5BDE6005637D5 = 6B09CE6E0FD5BDE6005637D5 /* PBXTextBookmark */; 6B09CE730FD5BEC3005637D5 = 6B09CE730FD5BEC3005637D5 /* PBXTextBookmark */; - 6B09CE740FD5BEC3005637D5 = 6B09CE740FD5BEC3005637D5 /* PBXTextBookmark */; - 6B09CE750FD5BEC3005637D5 = 6B09CE750FD5BEC3005637D5 /* PBXTextBookmark */; - 6B09CE770FD5BEC6005637D5 = 6B09CE770FD5BEC6005637D5 /* PBXTextBookmark */; - 6B164B210FD678A500D2F919 = 6B164B210FD678A500D2F919 /* PBXTextBookmark */; - 6B164B220FD678A500D2F919 = 6B164B220FD678A500D2F919 /* PBXTextBookmark */; - 6B164B230FD678A500D2F919 = 6B164B230FD678A500D2F919 /* PBXTextBookmark */; 6B164B240FD678A500D2F919 = 6B164B240FD678A500D2F919 /* PBXTextBookmark */; 6B164B250FD678A500D2F919 = 6B164B250FD678A500D2F919 /* PBXTextBookmark */; 6B164B260FD678A500D2F919 = 6B164B260FD678A500D2F919 /* PBXTextBookmark */; - 6B164B270FD678A500D2F919 = 6B164B270FD678A500D2F919 /* PBXTextBookmark */; - 6B164B280FD678A500D2F919 = 6B164B280FD678A500D2F919 /* PBXTextBookmark */; - 6B164B290FD678A500D2F919 = 6B164B290FD678A500D2F919 /* PBXTextBookmark */; - 6B164B2A0FD678A500D2F919 = 6B164B2A0FD678A500D2F919 /* PBXTextBookmark */; - 6B164B2B0FD678A500D2F919 = 6B164B2B0FD678A500D2F919 /* PBXTextBookmark */; - 6B164B2C0FD678A500D2F919 = 6B164B2C0FD678A500D2F919 /* PBXTextBookmark */; - 6B164B2D0FD678A500D2F919 = 6B164B2D0FD678A500D2F919 /* PBXTextBookmark */; - 6B164B2E0FD678A500D2F919 = 6B164B2E0FD678A500D2F919 /* PBXTextBookmark */; - 6B164B2F0FD678A500D2F919 = 6B164B2F0FD678A500D2F919 /* PBXTextBookmark */; - 6B164B300FD678A500D2F919 = 6B164B300FD678A500D2F919 /* PBXTextBookmark */; - 6B164B310FD678A500D2F919 = 6B164B310FD678A500D2F919 /* PBXTextBookmark */; 6B164B320FD678A500D2F919 = 6B164B320FD678A500D2F919 /* PBXTextBookmark */; 6B164B330FD678A500D2F919 = 6B164B330FD678A500D2F919 /* PBXTextBookmark */; - 6B164B340FD678A500D2F919 = 6B164B340FD678A500D2F919 /* PBXTextBookmark */; - 6B164B350FD678A500D2F919 = 6B164B350FD678A500D2F919 /* PBXTextBookmark */; - 6B164B360FD678A500D2F919 = 6B164B360FD678A500D2F919 /* PBXTextBookmark */; - 6B164B370FD678A500D2F919 = 6B164B370FD678A500D2F919 /* PBXTextBookmark */; - 6B164B380FD678A500D2F919 = 6B164B380FD678A500D2F919 /* PBXTextBookmark */; - 6B164B390FD678A500D2F919 = 6B164B390FD678A500D2F919 /* PBXTextBookmark */; - 6B164B3A0FD678A500D2F919 = 6B164B3A0FD678A500D2F919 /* PBXTextBookmark */; - 6B164B3B0FD678A500D2F919 = 6B164B3B0FD678A500D2F919 /* PBXTextBookmark */; 6B164B3C0FD678A500D2F919 = 6B164B3C0FD678A500D2F919 /* PBXTextBookmark */; - 6B164B3D0FD678A500D2F919 = 6B164B3D0FD678A500D2F919 /* PBXTextBookmark */; 6B1E02680F924A8500CC0038 = 6B1E02680F924A8500CC0038 /* PBXTextBookmark */; 6B1E02750F924A8500CC0038 = 6B1E02750F924A8500CC0038 /* PBXTextBookmark */; 6B1E028F0F924D5A00CC0038 = 6B1E028F0F924D5A00CC0038 /* PBXTextBookmark */; 6B1E029B0F924D8B00CC0038 = 6B1E029B0F924D8B00CC0038 /* PBXTextBookmark */; - 6B1E02AE0F92530C00CC0038 = 6B1E02AE0F92530C00CC0038 /* PBXTextBookmark */; - 6B1E02BB0F92547D00CC0038 = 6B1E02BB0F92547D00CC0038 /* PBXTextBookmark */; 6B1E02FC0F92563500CC0038 = 6B1E02FC0F92563500CC0038 /* PBXTextBookmark */; 6B1E032E0F925D9100CC0038 = 6B1E032E0F925D9100CC0038 /* PBXTextBookmark */; 6B458EA80FB4540500044EA9 = 6B458EA80FB4540500044EA9 /* PBXTextBookmark */; + 6B6BC6C70FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6C70FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6C80FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6C80FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6C90FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6C90FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6CA0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6CA0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6CB0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6CB0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6CC0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6CC0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6CD0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6CD0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6CE0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6CE0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6CF0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6CF0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6D00FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6D00FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6D10FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6D10FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6D20FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6D20FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6D30FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6D30FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6D40FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6D40FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6D50FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6D50FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6D60FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6D60FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6D70FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6D70FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6D80FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6D80FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6D90FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6D90FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6DA0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6DA0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6DB0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6DB0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6DC0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6DC0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6DD0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6DD0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6DE0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6DE0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6DF0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6DF0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6E00FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6E00FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6E10FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6E10FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6E20FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6E20FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6E30FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6E30FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6E40FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6E40FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6E50FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6E50FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6E60FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6E60FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6E70FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6E70FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6E80FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6E80FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6E90FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6E90FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6EA0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6EA0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6EB0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6EB0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6EC0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6EC0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6ED0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6ED0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6EE0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6EE0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6EF0FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6EF0FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6F00FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6F00FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6F10FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6F10FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6F20FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6F20FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6F30FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6F30FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6F40FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6F40FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6F50FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6F50FE7A3A4009E3CB9 /* PBXTextBookmark */; + 6B6BC6F60FE7A3A4009E3CB9 /* PBXTextBookmark */ = 6B6BC6F60FE7A3A4009E3CB9 /* PBXTextBookmark */; 6B77072C0FBD540400D21BAE = 6B77072C0FBD540400D21BAE /* PBXTextBookmark */; 6B7707AF0FBD66CF00D21BAE = 6B7707AF0FBD66CF00D21BAE /* PBXTextBookmark */; 6B7707B90FBD66CF00D21BAE = 6B7707B90FBD66CF00D21BAE /* PBXTextBookmark */; @@ -190,133 +177,45 @@ 6B7707F00FBD90F100D21BAE = 6B7707F00FBD90F100D21BAE /* PBXTextBookmark */; 6B7707F70FBD90F100D21BAE = 6B7707F70FBD90F100D21BAE /* PBXTextBookmark */; 6B7707F90FBD90F100D21BAE = 6B7707F90FBD90F100D21BAE /* PBXTextBookmark */; - 6B7708F20FBDA96300D21BAE = 6B7708F20FBDA96300D21BAE /* PBXTextBookmark */; 6B7708F70FBDA96300D21BAE = 6B7708F70FBDA96300D21BAE /* PBXTextBookmark */; 6B8171D70FC327630022159F = 6B8171D70FC327630022159F /* PBXTextBookmark */; 6B8633370F7813A600E2684A = 6B8633370F7813A600E2684A /* PBXTextBookmark */; 6B86333B0F7813A600E2684A = 6B86333B0F7813A600E2684A /* PBXTextBookmark */; - 6B8AD2EA0FCDE25800016452 = 6B8AD2EA0FCDE25800016452 /* PBXTextBookmark */; - 6B8DB2D70F93A7A5007FA9E1 = 6B8DB2D70F93A7A5007FA9E1 /* PBXTextBookmark */; + 6B8A71D10FDAADCA00A0A6FB = 6B8A71D10FDAADCA00A0A6FB /* PBXTextBookmark */; + 6B8A71F40FDAB52200A0A6FB = 6B8A71F40FDAB52200A0A6FB /* PBXTextBookmark */; + 6B8A71FC0FDABD0300A0A6FB = 6B8A71FC0FDABD0300A0A6FB /* PBXTextBookmark */; + 6B8B580A0FD80DA20088BD0D = 6B8B580A0FD80DA20088BD0D /* PBXTextBookmark */; 6B8DB38F0F9798DE007FA9E1 = 6B8DB38F0F9798DE007FA9E1 /* PBXTextBookmark */; 6B8DB3900F9798DE007FA9E1 = 6B8DB3900F9798DE007FA9E1 /* PBXTextBookmark */; - 6B8FD17B0FD7C3230059D643 = 6B8FD17B0FD7C3230059D643 /* PBXTextBookmark */; - 6B8FD1810FD7C3F10059D643 = 6B8FD1810FD7C3F10059D643 /* PBXTextBookmark */; - 6B8FD1820FD7C3F10059D643 = 6B8FD1820FD7C3F10059D643 /* PBXTextBookmark */; - 6B8FD1830FD7C3F10059D643 = 6B8FD1830FD7C3F10059D643 /* PBXTextBookmark */; - 6B8FD1840FD7C3F10059D643 = 6B8FD1840FD7C3F10059D643 /* PBXTextBookmark */; 6B8FD18D0FD7C4D10059D643 = 6B8FD18D0FD7C4D10059D643 /* PBXTextBookmark */; - 6B8FD18E0FD7C4D10059D643 = 6B8FD18E0FD7C4D10059D643 /* PBXTextBookmark */; - 6B8FD18F0FD7C4D10059D643 = 6B8FD18F0FD7C4D10059D643 /* PBXTextBookmark */; - 6B8FD1900FD7C4D10059D643 = 6B8FD1900FD7C4D10059D643 /* PBXTextBookmark */; - 6B8FD1910FD7C4D10059D643 = 6B8FD1910FD7C4D10059D643 /* PBXTextBookmark */; - 6B8FD1940FD7C50F0059D643 = 6B8FD1940FD7C50F0059D643 /* PBXTextBookmark */; - 6B8FD1960FD7C5660059D643 = 6B8FD1960FD7C5660059D643 /* PBXTextBookmark */; - 6B8FD1980FD7C5B60059D643 = 6B8FD1980FD7C5B60059D643 /* PBXTextBookmark */; 6B8FD19B0FD7ED310059D643 = 6B8FD19B0FD7ED310059D643 /* PBXTextBookmark */; 6B8FD19C0FD7ED310059D643 = 6B8FD19C0FD7ED310059D643 /* PBXTextBookmark */; - 6B8FD19D0FD7ED310059D643 = 6B8FD19D0FD7ED310059D643 /* PBXTextBookmark */; 6B8FD19E0FD7ED310059D643 = 6B8FD19E0FD7ED310059D643 /* PBXTextBookmark */; - 6B8FD19F0FD7ED310059D643 = 6B8FD19F0FD7ED310059D643 /* PBXTextBookmark */; - 6B8FD1A00FD7ED310059D643 = 6B8FD1A00FD7ED310059D643 /* PBXTextBookmark */; - 6B8FD1A10FD7ED310059D643 = 6B8FD1A10FD7ED310059D643 /* PBXTextBookmark */; 6B8FD1A20FD7ED310059D643 = 6B8FD1A20FD7ED310059D643 /* PBXTextBookmark */; 6B8FD1A30FD7ED310059D643 = 6B8FD1A30FD7ED310059D643 /* PBXTextBookmark */; 6B8FD1A40FD7ED310059D643 = 6B8FD1A40FD7ED310059D643 /* PBXTextBookmark */; - 6B8FD1A50FD7ED310059D643 = 6B8FD1A50FD7ED310059D643 /* PBXTextBookmark */; - 6B8FD1A60FD7ED310059D643 = 6B8FD1A60FD7ED310059D643 /* PBXTextBookmark */; - 6B8FD1A70FD7ED310059D643 = 6B8FD1A70FD7ED310059D643 /* PBXTextBookmark */; - 6B8FD1AA0FD7ED7B0059D643 = 6B8FD1AA0FD7ED7B0059D643 /* PBXTextBookmark */; - 6B8FD1AE0FD7EE090059D643 = 6B8FD1AE0FD7EE090059D643 /* PBXTextBookmark */; - 6B8FD1AF0FD7EED60059D643 = 6B8FD1AF0FD7EED60059D643 /* PBXTextBookmark */; - 6B8FD1B20FD7EFAB0059D643 = 6B8FD1B20FD7EFAB0059D643 /* PBXTextBookmark */; - 6B8FD1B30FD7EFAB0059D643 = 6B8FD1B30FD7EFAB0059D643 /* PBXTextBookmark */; - 6B8FD1B40FD7EFAB0059D643 = 6B8FD1B40FD7EFAB0059D643 /* PBXTextBookmark */; - 6B8FD1B50FD7EFAB0059D643 = 6B8FD1B50FD7EFAB0059D643 /* PBXTextBookmark */; - 6B8FD1B80FD7F05F0059D643 = 6B8FD1B80FD7F05F0059D643 /* PBXTextBookmark */; - 6B8FD1B90FD7F05F0059D643 = 6B8FD1B90FD7F05F0059D643 /* PBXTextBookmark */; - 6B8FD1BA0FD7F05F0059D643 = 6B8FD1BA0FD7F05F0059D643 /* PBXTextBookmark */; - 6B8FD1BB0FD7F05F0059D643 = 6B8FD1BB0FD7F05F0059D643 /* PBXTextBookmark */; - 6B8FD1BF0FD7F15D0059D643 = 6B8FD1BF0FD7F15D0059D643 /* PBXTextBookmark */; - 6B8FD1C00FD7F15D0059D643 = 6B8FD1C00FD7F15D0059D643 /* PBXTextBookmark */; - 6B8FD1C10FD7F15D0059D643 = 6B8FD1C10FD7F15D0059D643 /* PBXTextBookmark */; - 6B8FD1C20FD7F15D0059D643 = 6B8FD1C20FD7F15D0059D643 /* PBXTextBookmark */; - 6B8FD1C70FD7F2070059D643 = 6B8FD1C70FD7F2070059D643 /* PBXTextBookmark */; - 6B8FD1C80FD7F2070059D643 = 6B8FD1C80FD7F2070059D643 /* PBXTextBookmark */; - 6B8FD1CB0FD7F2A20059D643 = 6B8FD1CB0FD7F2A20059D643 /* PBXTextBookmark */; - 6B8FD1CE0FD7F56C0059D643 = 6B8FD1CE0FD7F56C0059D643 /* PBXTextBookmark */; 6B8FD1CF0FD7F56C0059D643 = 6B8FD1CF0FD7F56C0059D643 /* PBXTextBookmark */; - 6B8FD1D00FD7F56C0059D643 = 6B8FD1D00FD7F56C0059D643 /* PBXTextBookmark */; - 6B8FD1D10FD7F56C0059D643 = 6B8FD1D10FD7F56C0059D643 /* PBXTextBookmark */; - 6B8FD1D20FD7F56C0059D643 = 6B8FD1D20FD7F56C0059D643 /* PBXTextBookmark */; - 6B8FD1D30FD7F56C0059D643 = 6B8FD1D30FD7F56C0059D643 /* PBXTextBookmark */; - 6B8FD1D50FD7F5AC0059D643 = 6B8FD1D50FD7F5AC0059D643 /* PBXTextBookmark */; - 6B8FD1D80FD7F6190059D643 = 6B8FD1D80FD7F6190059D643 /* PBXTextBookmark */; - 6B8FD1DA0FD7F69A0059D643 = 6B8FD1DA0FD7F69A0059D643 /* PBXTextBookmark */; - 6B8FD1DB0FD7F69A0059D643 = 6B8FD1DB0FD7F69A0059D643 /* PBXTextBookmark */; - 6B8FD1DC0FD7F69A0059D643 = 6B8FD1DC0FD7F69A0059D643 /* PBXTextBookmark */; - 6B8FD1DD0FD7F69A0059D643 = 6B8FD1DD0FD7F69A0059D643 /* PBXTextBookmark */; - 6BB787680FC03EAD003C24DB = 6BB787680FC03EAD003C24DB /* PBXTextBookmark */; - 6BB7876A0FC03EAD003C24DB = 6BB7876A0FC03EAD003C24DB /* PBXTextBookmark */; + 6B901BFB0FE154A900CE8692 = 6B901BFB0FE154A900CE8692 /* PBXTextBookmark */; + 6B995BDF0FE0D9B300D5C493 = 6B995BDF0FE0D9B300D5C493 /* PBXTextBookmark */; + 6B995BE00FE0D9B300D5C493 = 6B995BE00FE0D9B300D5C493 /* PBXTextBookmark */; + 6B995BE40FE0D9B300D5C493 = 6B995BE40FE0D9B300D5C493 /* PBXTextBookmark */; + 6BAE920D0FD8014C002875DB = 6BAE920D0FD8014C002875DB /* PBXTextBookmark */; 6BB7876B0FC03EAD003C24DB = 6BB7876B0FC03EAD003C24DB /* PBXTextBookmark */; - 6BB7876D0FC03EAD003C24DB = 6BB7876D0FC03EAD003C24DB /* PBXTextBookmark */; 6BB787710FC03EAD003C24DB = 6BB787710FC03EAD003C24DB /* PBXTextBookmark */; - 6BB787BD0FC03EAD003C24DB = 6BB787BD0FC03EAD003C24DB /* PBXTextBookmark */; 6BB787C30FC03EAD003C24DB = 6BB787C30FC03EAD003C24DB /* PBXTextBookmark */; 6BB787D40FC03EAD003C24DB = 6BB787D40FC03EAD003C24DB /* PBXTextBookmark */; 6BB7881E0FC0593E003C24DB = 6BB7881E0FC0593E003C24DB /* PBXTextBookmark */; 6BB7881F0FC0593E003C24DB = 6BB7881F0FC0593E003C24DB /* PBXTextBookmark */; - 6BB788220FC0593E003C24DB = 6BB788220FC0593E003C24DB /* PBXTextBookmark */; 6BB788230FC0593E003C24DB = 6BB788230FC0593E003C24DB /* PBXTextBookmark */; 6BB788290FC0593E003C24DB = 6BB788290FC0593E003C24DB /* PBXTextBookmark */; 6BB7882A0FC0593E003C24DB = 6BB7882A0FC0593E003C24DB /* PBXTextBookmark */; 6BB7882B0FC0593E003C24DB = 6BB7882B0FC0593E003C24DB /* PBXTextBookmark */; - 6BB85D1A0FCEA5BD00758966 = 6BB85D1A0FCEA5BD00758966 /* PBXTextBookmark */; - 6BB85D2F0FCEA8BE00758966 = 6BB85D2F0FCEA8BE00758966 /* PBXTextBookmark */; 6BB85D3A0FCEAA6300758966 = 6BB85D3A0FCEAA6300758966 /* PBXTextBookmark */; 6BB85D3E0FCEAA6300758966 = 6BB85D3E0FCEAA6300758966 /* PBXTextBookmark */; 6BB87E0B0F9DE8A300E33F12 = 6BB87E0B0F9DE8A300E33F12 /* PBXTextBookmark */; 6BB87E0E0F9DE8A300E33F12 = 6BB87E0E0F9DE8A300E33F12 /* PBXTextBookmark */; - 6BC6204B0FD684AD0022CACF = 6BC6204B0FD684AD0022CACF /* PBXTextBookmark */; - 6BC620550FD684B30022CACF = 6BC620550FD684B30022CACF /* PBXTextBookmark */; - 6BC620580FD684D50022CACF = 6BC620580FD684D50022CACF /* PBXTextBookmark */; - 6BC620590FD684E70022CACF = 6BC620590FD684E70022CACF /* PBXTextBookmark */; - 6BC6205B0FD684F10022CACF = 6BC6205B0FD684F10022CACF /* PBXTextBookmark */; - 6BC620600FD686900022CACF = 6BC620600FD686900022CACF /* PBXTextBookmark */; - 6BC620610FD686900022CACF = 6BC620610FD686900022CACF /* PBXTextBookmark */; - 6BC620620FD686900022CACF = 6BC620620FD686900022CACF /* PBXTextBookmark */; - 6BC620630FD686900022CACF = 6BC620630FD686900022CACF /* PBXTextBookmark */; - 6BC620640FD686900022CACF = 6BC620640FD686900022CACF /* PBXTextBookmark */; - 6BC620650FD686900022CACF = 6BC620650FD686900022CACF /* PBXTextBookmark */; - 6BC620660FD686900022CACF = 6BC620660FD686900022CACF /* PBXTextBookmark */; - 6BC620670FD686900022CACF = 6BC620670FD686900022CACF /* PBXTextBookmark */; - 6BC620680FD686900022CACF = 6BC620680FD686900022CACF /* PBXTextBookmark */; - 6BC620690FD686900022CACF = 6BC620690FD686900022CACF /* PBXTextBookmark */; - 6BC6206A0FD686900022CACF = 6BC6206A0FD686900022CACF /* PBXTextBookmark */; - 6BC6206B0FD686900022CACF = 6BC6206B0FD686900022CACF /* PBXTextBookmark */; - 6BC6206C0FD686900022CACF = 6BC6206C0FD686900022CACF /* PBXTextBookmark */; - 6BC6206E0FD6870C0022CACF = 6BC6206E0FD6870C0022CACF /* PBXTextBookmark */; - 6BC6206F0FD6870C0022CACF = 6BC6206F0FD6870C0022CACF /* PBXTextBookmark */; - 6BC620700FD6870C0022CACF = 6BC620700FD6870C0022CACF /* PBXTextBookmark */; - 6BC620710FD6870C0022CACF = 6BC620710FD6870C0022CACF /* PBXTextBookmark */; - 6BC620730FD687B90022CACF = 6BC620730FD687B90022CACF /* PBXTextBookmark */; - 6BC6207A0FD7BBAB0022CACF = 6BC6207A0FD7BBAB0022CACF /* PBXTextBookmark */; - 6BC6207B0FD7BBAB0022CACF = 6BC6207B0FD7BBAB0022CACF /* PBXTextBookmark */; - 6BC6207D0FD7BCB50022CACF = 6BC6207D0FD7BCB50022CACF /* PBXTextBookmark */; - 6BC6207F0FD7BCD00022CACF = 6BC6207F0FD7BCD00022CACF /* PBXTextBookmark */; - 6BC620810FD7BD030022CACF = 6BC620810FD7BD030022CACF /* PBXTextBookmark */; - 6BC620830FD7BD370022CACF = 6BC620830FD7BD370022CACF /* PBXTextBookmark */; - 6BC620850FD7BD520022CACF = 6BC620850FD7BD520022CACF /* PBXTextBookmark */; - 6BC620870FD7BD710022CACF = 6BC620870FD7BD710022CACF /* PBXTextBookmark */; - 6BC6208D0FD7C2380022CACF = 6BC6208D0FD7C2380022CACF /* PBXTextBookmark */; - 6BC6208E0FD7C2380022CACF = 6BC6208E0FD7C2380022CACF /* PBXTextBookmark */; - 6BC6208F0FD7C2380022CACF = 6BC6208F0FD7C2380022CACF /* PBXTextBookmark */; 6BC620900FD7C2380022CACF = 6BC620900FD7C2380022CACF /* PBXTextBookmark */; - 6BC620910FD7C2380022CACF = 6BC620910FD7C2380022CACF /* PBXTextBookmark */; 6BC620920FD7C2380022CACF = 6BC620920FD7C2380022CACF /* PBXTextBookmark */; - 6BC620930FD7C2380022CACF = 6BC620930FD7C2380022CACF /* PBXTextBookmark */; - 6BC620940FD7C2380022CACF = 6BC620940FD7C2380022CACF /* PBXTextBookmark */; - 6BC620950FD7C2380022CACF = 6BC620950FD7C2380022CACF /* PBXTextBookmark */; - 6BC620960FD7C2380022CACF = 6BC620960FD7C2380022CACF /* PBXTextBookmark */; }; sourceControlManager = 6B8632A90F78115100E2684A /* Source Control */; userBuildSettings = { @@ -340,122 +239,12 @@ vrLen = 916; vrLoc = 784; }; - 6B09CE050FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E050F91112200904EEF /* DetourStatNavMesh.h */; - name = "DetourStatNavMesh.h: 26"; - rLen = 0; - rLoc = 1143; - rType = 0; - vrLen = 1426; - vrLoc = 128; - }; - 6B09CE060FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E060F91112200904EEF /* DetourStatNavMeshBuilder.h */; - name = "DetourStatNavMeshBuilder.h: 18"; - rLen = 0; - rLoc = 918; - rType = 0; - vrLen = 1284; - vrLoc = 0; - }; - 6B09CE070FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; - name = "DetourStatNavMesh.cpp: 1195"; - rLen = 0; - rLoc = 26660; - rType = 0; - vrLen = 1082; - vrLoc = 26112; - }; - 6B09CE080FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E050F91112200904EEF /* DetourStatNavMesh.h */; - name = "DetourStatNavMesh.h: 26"; - rLen = 0; - rLoc = 1143; - rType = 0; - vrLen = 1426; - vrLoc = 128; - }; - 6B09CE090FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; - name = "DetourStatNavMesh.cpp: 17"; - rLen = 0; - rLoc = 917; - rType = 0; - vrLen = 1624; - vrLoc = 0; - }; - 6B09CE0A0FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */; - name = "DetourStatNavMeshBuilder.cpp: 56"; - rLen = 0; - rLoc = 1686; - rType = 0; - vrLen = 968; - vrLoc = 4402; - }; - 6B09CE0B0FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E060F91112200904EEF /* DetourStatNavMeshBuilder.h */; - name = "DetourStatNavMeshBuilder.h: 22"; - rLen = 0; - rLoc = 1061; - rType = 0; - vrLen = 1284; - vrLoc = 0; - }; - 6B09CE0C0FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */; - name = "DetourStatNavMeshBuilder.cpp: 49"; - rLen = 0; - rLoc = 1538; - rType = 0; - vrLen = 774; - vrLoc = 1083; - }; - 6B09CE0D0FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E050F91112200904EEF /* DetourStatNavMesh.h */; - name = "DetourStatNavMesh.h: 163"; - rLen = 0; - rLoc = 6490; - rType = 0; - vrLen = 1337; - vrLoc = 6009; - }; - 6B09CE100FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BB788180FC04753003C24DB /* ChunkyTriMesh.h */; - name = "ChunkyTriMesh.h: 32"; - rLen = 0; - rLoc = 1176; - rType = 0; - vrLen = 916; - vrLoc = 784; - }; - 6B09CE130FD5563E005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; - name = "RecastMesh.cpp: 147"; - rLen = 0; - rLoc = 4175; - rType = 0; - vrLen = 954; - vrLoc = 3505; - }; 6B09CE1E0FD55805005637D5 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 388"; rLen = 13; - rLoc = 12376; + rLoc = 12645; rType = 0; vrLen = 1417; vrLoc = 11509; @@ -465,81 +254,11 @@ fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; name = "RecastContour.cpp: 797"; rLen = 0; - rLoc = 20511; + rLoc = 20561; rType = 0; vrLen = 742; vrLoc = 18804; }; - 6B09CE360FD55B99005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 638"; - rLen = 0; - rLoc = 13575; - rType = 0; - vrLen = 1081; - vrLoc = 15593; - }; - 6B09CE470FD55FA2005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 735"; - rLen = 0; - rLoc = 17834; - rType = 0; - vrLen = 746; - vrLoc = 17754; - }; - 6B09CE480FD55FA2005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E060F91112200904EEF /* DetourStatNavMeshBuilder.h */; - name = "DetourStatNavMeshBuilder.h: 16"; - rLen = 0; - rLoc = 887; - rType = 0; - vrLen = 1284; - vrLoc = 0; - }; - 6B09CE490FD55FA2005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */; - name = "DetourStatNavMeshBuilder.cpp: 49"; - rLen = 0; - rLoc = 1538; - rType = 0; - vrLen = 879; - vrLoc = 1760; - }; - 6B09CE4A0FD55FA2005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; - name = "DetourStatNavMesh.cpp: 124"; - rLen = 411; - rLoc = 3289; - rType = 0; - vrLen = 981; - vrLoc = 2846; - }; - 6B09CE5A0FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 767"; - rLen = 0; - rLoc = 18476; - rType = 0; - vrLen = 957; - vrLoc = 20651; - }; - 6B09CE5B0FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; - name = "DetourStatNavMesh.cpp: 1208"; - rLen = 0; - rLoc = 26982; - rType = 0; - vrLen = 1391; - vrLoc = 26481; - }; 6B09CE5C0FD5BDE6005637D5 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BDD9E060F91112200904EEF /* DetourStatNavMeshBuilder.h */; @@ -550,26 +269,6 @@ vrLen = 1284; vrLoc = 0; }; - 6B09CE5D0FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E050F91112200904EEF /* DetourStatNavMesh.h */; - name = "DetourStatNavMesh.h: 28"; - rLen = 0; - rLoc = 1145; - rType = 0; - vrLen = 777; - vrLoc = 947; - }; - 6B09CE5E0FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 404"; - rLen = 15; - rLoc = 12894; - rType = 0; - vrLen = 1116; - vrLoc = 12216; - }; 6B09CE5F0FD5BDE6005637D5 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; @@ -580,136 +279,6 @@ vrLen = 826; vrLoc = 12679; }; - 6B09CE620FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 767"; - rLen = 0; - rLoc = 18476; - rType = 0; - vrLen = 957; - vrLoc = 20651; - }; - 6B09CE630FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; - name = "DetourStatNavMesh.cpp: 1206"; - rLen = 0; - rLoc = 26953; - rType = 0; - vrLen = 1440; - vrLoc = 26481; - }; - 6B09CE640FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 709"; - rLen = 19; - rLoc = 15373; - rType = 0; - vrLen = 834; - vrLoc = 17855; - }; - 6B09CE650FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; - name = "DetourStatNavMesh.cpp: 1208"; - rLen = 0; - rLoc = 26982; - rType = 0; - vrLen = 1391; - vrLoc = 26481; - }; - 6B09CE660FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */; - name = "DetourStatNavMeshBuilder.cpp: 214"; - rLen = 0; - rLoc = 5487; - rType = 0; - vrLen = 1077; - vrLoc = 5370; - }; - 6B09CE670FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E060F91112200904EEF /* DetourStatNavMeshBuilder.h */; - name = "DetourStatNavMeshBuilder.h: 16"; - rLen = 0; - rLoc = 887; - rType = 0; - vrLen = 1284; - vrLoc = 0; - }; - 6B09CE680FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */; - name = "DetourStatNavMeshBuilder.cpp: 214"; - rLen = 0; - rLoc = 5487; - rType = 0; - vrLen = 985; - vrLoc = 5132; - }; - 6B09CE690FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E050F91112200904EEF /* DetourStatNavMesh.h */; - name = "DetourStatNavMesh.h: 28"; - rLen = 0; - rLoc = 1145; - rType = 0; - vrLen = 777; - vrLoc = 947; - }; - 6B09CE6A0FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */; - name = "DetourStatNavMeshBuilder.cpp: 218"; - rLen = 0; - rLoc = 5575; - rType = 0; - vrLen = 939; - vrLoc = 5132; - }; - 6B09CE6B0FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 714"; - rLen = 0; - rLoc = 15646; - rType = 0; - vrLen = 997; - vrLoc = 17616; - }; - 6B09CE6C0FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 404"; - rLen = 15; - rLoc = 12894; - rType = 0; - vrLen = 1116; - vrLoc = 12216; - }; - 6B09CE6D0FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; - name = "RecastMesh.cpp: 504"; - rLen = 0; - rLoc = 13222; - rType = 0; - vrLen = 826; - vrLoc = 12679; - }; - 6B09CE6E0FD5BDE6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 742"; - rLen = 0; - rLoc = 16802; - rType = 0; - vrLen = 2052; - vrLoc = 18613; - }; 6B09CE730FD5BEC3005637D5 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */; @@ -720,41 +289,11 @@ vrLen = 1003; vrLoc = 5933; }; - 6B09CE740FD5BEC3005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 742"; - rLen = 0; - rLoc = 16802; - rType = 0; - vrLen = 2052; - vrLoc = 18613; - }; - 6B09CE750FD5BEC3005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */; - name = "DetourStatNavMeshBuilder.cpp: 244"; - rLen = 0; - rLoc = 6407; - rType = 0; - vrLen = 1003; - vrLoc = 5933; - }; - 6B09CE770FD5BEC6005637D5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1044"; - rLen = 0; - rLoc = 26541; - rType = 0; - vrLen = 812; - vrLoc = 28927; - }; 6B137C6A0F7FCBBB00459200 /* demo.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {969, 31872}}"; - sepNavSelRange = "{25878, 0}"; - sepNavVisRange = "{25484, 807}"; + sepNavIntBoundsRect = "{{0, 0}, {1160, 29008}}"; + sepNavSelRange = "{21775, 0}"; + sepNavVisRange = "{21359, 942}"; }; }; 6B137C6B0F7FCBBB00459200 /* glfont.cpp */ = { @@ -787,16 +326,16 @@ }; 6B137C7E0F7FCBFE00459200 /* Recast.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {969, 6928}}"; - sepNavSelRange = "{6131, 8}"; - sepNavVisRange = "{6012, 638}"; + sepNavIntBoundsRect = "{{0, 0}, {969, 6400}}"; + sepNavSelRange = "{8683, 0}"; + sepNavVisRange = "{8298, 1247}"; }; }; 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {969, 976}}"; - sepNavSelRange = "{2031, 28}"; - sepNavVisRange = "{1036, 1807}"; + sepNavIntBoundsRect = "{{0, 0}, {969, 928}}"; + sepNavSelRange = "{1297, 27}"; + sepNavVisRange = "{1005, 1669}"; }; }; 6B137C800F7FCBFE00459200 /* RecastLog.h */ = { @@ -816,30 +355,30 @@ }; 6B137C820F7FCC1100459200 /* Recast.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {969, 5648}}"; - sepNavSelRange = "{2215, 177}"; - sepNavVisRange = "{1610, 818}"; + sepNavIntBoundsRect = "{{0, 0}, {969, 4608}}"; + sepNavSelRange = "{7006, 0}"; + sepNavVisRange = "{6829, 755}"; }; }; 6B137C830F7FCC1100459200 /* RecastContour.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {969, 13360}}"; - sepNavSelRange = "{9576, 0}"; - sepNavVisRange = "{8864, 937}"; + sepNavIntBoundsRect = "{{0, 0}, {969, 13632}}"; + sepNavSelRange = "{20664, 0}"; + sepNavVisRange = "{20396, 793}"; }; }; 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {969, 10976}}"; - sepNavSelRange = "{8149, 0}"; - sepNavVisRange = "{6919, 807}"; + sepNavIntBoundsRect = "{{0, 0}, {969, 10240}}"; + sepNavSelRange = "{6147, 0}"; + sepNavVisRange = "{5839, 568}"; }; }; 6B137C850F7FCC1100459200 /* RecastFilter.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {969, 3776}}"; - sepNavSelRange = "{6932, 0}"; - sepNavVisRange = "{6018, 1017}"; + sepNavIntBoundsRect = "{{0, 0}, {969, 3920}}"; + sepNavSelRange = "{1139, 0}"; + sepNavVisRange = "{982, 564}"; }; }; 6B137C860F7FCC1100459200 /* RecastLog.cpp */ = { @@ -858,16 +397,16 @@ }; 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {969, 4400}}"; - sepNavSelRange = "{7850, 0}"; - sepNavVisRange = "{7133, 763}"; + sepNavIntBoundsRect = "{{0, 0}, {969, 4288}}"; + sepNavSelRange = "{7320, 0}"; + sepNavVisRange = "{6771, 1077}"; }; }; 6B137C890F7FCC1100459200 /* RecastRegion.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {969, 16640}}"; - sepNavSelRange = "{26082, 0}"; - sepNavVisRange = "{25144, 1115}"; + sepNavIntBoundsRect = "{{0, 0}, {969, 17184}}"; + sepNavSelRange = "{2344, 0}"; + sepNavVisRange = "{2462, 905}"; }; }; 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */ = { @@ -878,6 +417,12 @@ }; }; 6B164AFD0FD6687600D2F919 /* glimage.cpp */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.cpp.cpp; + name = glimage.cpp; + path = /Users/memon/Code/recastnavigation/RecastDemo/Source/glimage.cpp; + sourceTree = ""; uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {969, 1440}}"; sepNavSelRange = "{947, 0}"; @@ -885,6 +430,12 @@ }; }; 6B164AFF0FD6688000D2F919 /* glimage.h */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.h; + name = glimage.h; + path = /Users/memon/Code/recastnavigation/RecastDemo/Include/glimage.h; + sourceTree = ""; uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {969, 592}}"; sepNavSelRange = "{110, 7}"; @@ -892,42 +443,18 @@ }; }; 6B164B000FD668B700D2F919 /* stb_image.c */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.c; + name = stb_image.c; + path = /Users/memon/Code/recastnavigation/RecastDemo/Source/stb_image.c; + sourceTree = ""; uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {969, 62620}}"; sepNavSelRange = "{120397, 30}"; sepNavVisRange = "{119874, 666}"; }; }; - 6B164B210FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; - name = "DetourStatNavMesh.cpp: 1208"; - rLen = 0; - rLoc = 26982; - rType = 0; - vrLen = 1391; - vrLoc = 26481; - }; - 6B164B220FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 152"; - rLen = 26; - rLoc = 4065; - rType = 0; - vrLen = 723; - vrLoc = 3786; - }; - 6B164B230FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 361"; - rLen = 0; - rLoc = 12675; - rType = 0; - vrLen = 755; - vrLoc = 9050; - }; 6B164B240FD678A500D2F919 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B164AFD0FD6687600D2F919 /* glimage.cpp */; @@ -958,116 +485,6 @@ vrLen = 610; vrLoc = 119874; }; - 6B164B270FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 153"; - rLen = 0; - rLoc = 3861; - rType = 0; - vrLen = 629; - vrLoc = 3632; - }; - 6B164B280FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1040"; - rLen = 0; - rLoc = 26456; - rType = 0; - vrLen = 812; - vrLoc = 28927; - }; - 6B164B290FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 509"; - rLen = 0; - rLoc = 16486; - rType = 0; - vrLen = 787; - vrLoc = 12134; - }; - 6B164B2A0FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 173"; - rLen = 0; - rLoc = 4525; - rType = 0; - vrLen = 715; - vrLoc = 4023; - }; - 6B164B2B0FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 277"; - rLen = 0; - rLoc = 8234; - rType = 0; - vrLen = 807; - vrLoc = 6702; - }; - 6B164B2C0FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; - name = "DetourStatNavMesh.cpp: 1208"; - rLen = 0; - rLoc = 26982; - rType = 0; - vrLen = 1391; - vrLoc = 26481; - }; - 6B164B2D0FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 149"; - rLen = 0; - rLoc = 4024; - rType = 0; - vrLen = 723; - vrLoc = 3786; - }; - 6B164B2E0FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 479"; - rLen = 0; - rLoc = 15778; - rType = 0; - vrLen = 889; - vrLoc = 11590; - }; - 6B164B2F0FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 152"; - rLen = 26; - rLoc = 4065; - rType = 0; - vrLen = 723; - vrLoc = 3786; - }; - 6B164B300FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 361"; - rLen = 0; - rLoc = 12675; - rType = 0; - vrLen = 755; - vrLoc = 9050; - }; - 6B164B310FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1243"; - rLen = 0; - rLoc = 31694; - rType = 0; - vrLen = 797; - vrLoc = 33780; - }; 6B164B320FD678A500D2F919 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B164AFF0FD6688000D2F919 /* glimage.h */; @@ -1088,86 +505,6 @@ vrLen = 974; vrLoc = 914; }; - 6B164B340FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B164AFF0FD6688000D2F919 /* glimage.h */; - name = "glimage.h: 39"; - rLen = 0; - rLoc = 432; - rType = 0; - vrLen = 606; - vrLoc = 104; - }; - 6B164B350FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B164AFD0FD6687600D2F919 /* glimage.cpp */; - name = "glimage.cpp: 64"; - rLen = 0; - rLoc = 1019; - rType = 0; - vrLen = 1129; - vrLoc = 645; - }; - 6B164B360FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B164AFF0FD6688000D2F919 /* glimage.h */; - name = "glimage.h: 24"; - rLen = 0; - rLoc = 346; - rType = 0; - vrLen = 465; - vrLoc = 36; - }; - 6B164B370FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B164AFD0FD6687600D2F919 /* glimage.cpp */; - name = "glimage.cpp: 29"; - rLen = 0; - rLoc = 364; - rType = 0; - vrLen = 474; - vrLoc = 0; - }; - 6B164B380FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B164AFF0FD6688000D2F919 /* glimage.h */; - name = "glimage.h: 24"; - rLen = 0; - rLoc = 346; - rType = 0; - vrLen = 465; - vrLoc = 36; - }; - 6B164B390FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B164AFD0FD6687600D2F919 /* glimage.cpp */; - name = "glimage.cpp: 55"; - rLen = 0; - rLoc = 947; - rType = 0; - vrLen = 900; - vrLoc = 554; - }; - 6B164B3A0FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B164AFF0FD6688000D2F919 /* glimage.h */; - name = "glimage.h: 12"; - rLen = 7; - rLoc = 110; - rType = 0; - vrLen = 494; - vrLoc = 0; - }; - 6B164B3B0FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 153"; - rLen = 0; - rLoc = 3861; - rType = 0; - vrLen = 629; - vrLoc = 3632; - }; 6B164B3C0FD678A500D2F919 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B164B000FD668B700D2F919 /* stb_image.c */; @@ -1178,22 +515,12 @@ vrLen = 610; vrLoc = 119874; }; - 6B164B3D0FD678A500D2F919 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 153"; - rLen = 0; - rLoc = 3861; - rType = 0; - vrLen = 613; - vrLoc = 3632; - }; 6B1E02680F924A8500CC0038 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; name = "Recast.cpp: 253"; rLen = 0; - rLoc = 8208; + rLoc = 7583; rType = 0; vrLen = 929; vrLoc = 6318; @@ -1213,7 +540,7 @@ fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; name = "DetourStatNavMesh.cpp: 1206"; rLen = 0; - rLoc = 26953; + rLoc = 27155; rType = 0; vrLen = 689; vrLoc = 26805; @@ -1228,26 +555,6 @@ vrLen = 362; vrLoc = 6876; }; - 6B1E02AE0F92530C00CC0038 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1450; - vrLoc = 1079; - }; - 6B1E02BB0F92547D00CC0038 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; - name = "RecastFilter.cpp: 119"; - rLen = 0; - rLoc = 3913; - rType = 0; - vrLen = 785; - vrLoc = 3274; - }; 6B1E02FC0F92563500CC0038 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BDD9E060F91112200904EEF /* DetourStatNavMeshBuilder.h */; @@ -1278,6 +585,486 @@ vrLen = 1182; vrLoc = 0; }; + 6B6BC6C70FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 280"; + rLen = 0; + rLoc = 7320; + rType = 0; + vrLen = 1077; + vrLoc = 6771; + }; + 6B6BC6C80FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; + name = "RecastDebugDraw.h: 37"; + rLen = 27; + rLoc = 1297; + rType = 0; + vrLen = 1669; + vrLoc = 1005; + }; + 6B6BC6C90FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 231"; + rLen = 0; + rLoc = 6147; + rType = 0; + vrLen = 568; + vrLoc = 5839; + }; + 6B6BC6CA0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 264"; + rLen = 0; + rLoc = 7006; + rType = 0; + vrLen = 755; + vrLoc = 6829; + }; + 6B6BC6CB0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 755"; + rLen = 0; + rLoc = 21775; + rType = 0; + vrLen = 942; + vrLoc = 21359; + }; + 6B6BC6CC0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 29"; + rLen = 0; + rLoc = 1139; + rType = 0; + vrLen = 564; + vrLoc = 982; + }; + 6B6BC6CD0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 308"; + rLen = 0; + rLoc = 8683; + rType = 0; + vrLen = 1247; + vrLoc = 8298; + }; + 6B6BC6CE0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 388"; + rLen = 0; + rLoc = 9576; + rType = 0; + vrLen = 537; + vrLoc = 9329; + }; + 6B6BC6CF0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 23"; + rLen = 0; + rLoc = 1029; + rType = 0; + vrLen = 1340; + vrLoc = 202; + }; + 6B6BC6D00FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 1887"; + rLen = 0; + rLoc = 54500; + rType = 0; + vrLen = 850; + vrLoc = 54170; + }; + 6B6BC6D10FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 27"; + rLen = 0; + rLoc = 1157; + rType = 0; + vrLen = 929; + vrLoc = 784; + }; + 6B6BC6D20FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; + name = "RecastDebugDraw.h: 44"; + rLen = 0; + rLoc = 1513; + rType = 0; + vrLen = 1735; + vrLoc = 1036; + }; + 6B6BC6D30FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 150"; + rLen = 0; + rLoc = 4118; + rType = 0; + vrLen = 877; + vrLoc = 3724; + }; + 6B6BC6D40FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; + name = "RecastDebugDraw.h: 44"; + rLen = 0; + rLoc = 1597; + rType = 0; + vrLen = 1735; + vrLoc = 1036; + }; + 6B6BC6D50FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 264"; + rLen = 0; + rLoc = 5842; + rType = 0; + vrLen = 725; + vrLoc = 5362; + }; + 6B6BC6D60FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 69"; + rLen = 0; + rLoc = 2474; + rType = 0; + vrLen = 567; + vrLoc = 2109; + }; + 6B6BC6D70FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 63"; + rLen = 19; + rLoc = 1811; + rType = 0; + vrLen = 835; + vrLoc = 1593; + }; + 6B6BC6D80FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 274"; + rLen = 63; + rLoc = 7503; + rType = 0; + vrLen = 1252; + vrLoc = 6785; + }; + 6B6BC6D90FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 307"; + rLen = 0; + rLoc = 7583; + rType = 0; + vrLen = 1164; + vrLoc = 7790; + }; + 6B6BC6DA0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 280"; + rLen = 0; + rLoc = 7320; + rType = 0; + vrLen = 1077; + vrLoc = 6771; + }; + 6B6BC6DB0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 150"; + rLen = 0; + rLoc = 4118; + rType = 0; + vrLen = 877; + vrLoc = 3724; + }; + 6B6BC6DC0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; + name = "RecastDebugDraw.h: 37"; + rLen = 27; + rLoc = 1297; + rType = 0; + vrLen = 1669; + vrLoc = 1005; + }; + 6B6BC6DD0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 231"; + rLen = 0; + rLoc = 6147; + rType = 0; + vrLen = 568; + vrLoc = 5839; + }; + 6B6BC6DE0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 275"; + rLen = 0; + rLoc = 7568; + rType = 0; + vrLen = 1004; + vrLoc = 6970; + }; + 6B6BC6DF0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 404"; + rLen = 52; + rLoc = 10038; + rType = 0; + vrLen = 807; + vrLoc = 9694; + }; + 6B6BC6E00FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 300"; + rLen = 0; + rLoc = 7583; + rType = 0; + vrLen = 892; + vrLoc = 7874; + }; + 6B6BC6E10FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 421"; + rLen = 0; + rLoc = 10641; + rType = 0; + vrLen = 896; + vrLoc = 10243; + }; + 6B6BC6E20FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 275"; + rLen = 28; + rLoc = 7541; + rType = 0; + vrLen = 1003; + vrLoc = 6970; + }; + 6B6BC6E30FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 1319"; + rLen = 0; + rLoc = 38607; + rType = 0; + vrLen = 744; + vrLoc = 38320; + }; + 6B6BC6E40FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 339"; + rLen = 25; + rLoc = 10302; + rType = 0; + vrLen = 1200; + vrLoc = 9386; + }; + 6B6BC6E50FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 169"; + rLen = 0; + rLoc = 4356; + rType = 0; + vrLen = 814; + vrLoc = 5534; + }; + 6B6BC6E60FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 731"; + rLen = 0; + rLoc = 20972; + rType = 0; + vrLen = 1194; + vrLoc = 20652; + }; + 6B6BC6E70FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 409"; + rLen = 0; + rLoc = 13315; + rType = 0; + vrLen = 1160; + vrLoc = 12120; + }; + 6B6BC6E80FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 757"; + rLen = 0; + rLoc = 21408; + rType = 0; + vrLen = 1232; + vrLoc = 20982; + }; + 6B6BC6E90FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 220"; + rLen = 0; + rLoc = 5661; + rType = 0; + vrLen = 1176; + vrLoc = 5367; + }; + 6B6BC6EA0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 409"; + rLen = 0; + rLoc = 13315; + rType = 0; + vrLen = 1233; + vrLoc = 12047; + }; + 6B6BC6EB0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 297"; + rLen = 0; + rLoc = 7583; + rType = 0; + vrLen = 1109; + vrLoc = 7799; + }; + 6B6BC6EC0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 408"; + rLen = 0; + rLoc = 13315; + rType = 0; + vrLen = 1234; + vrLoc = 11781; + }; + 6B6BC6ED0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 264"; + rLen = 0; + rLoc = 7006; + rType = 0; + vrLen = 755; + vrLoc = 6829; + }; + 6B6BC6EE0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 394"; + rLen = 0; + rLoc = 12830; + rType = 0; + vrLen = 1272; + vrLoc = 11743; + }; + 6B6BC6EF0FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 658"; + rLen = 0; + rLoc = 19012; + rType = 0; + vrLen = 924; + vrLoc = 19055; + }; + 6B6BC6F00FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 307"; + rLen = 18; + rLoc = 9038; + rType = 0; + vrLen = 928; + vrLoc = 7853; + }; + 6B6BC6F10FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 27"; + rLen = 0; + rLoc = 1052; + rType = 0; + vrLen = 752; + vrLoc = 982; + }; + 6B6BC6F20FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 308"; + rLen = 18; + rLoc = 9038; + rType = 0; + vrLen = 907; + vrLoc = 7983; + }; + 6B6BC6F30FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 755"; + rLen = 0; + rLoc = 21775; + rType = 0; + vrLen = 942; + vrLoc = 21359; + }; + 6B6BC6F40FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 29"; + rLen = 0; + rLoc = 1139; + rType = 0; + vrLen = 564; + vrLoc = 982; + }; + 6B6BC6F50FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 308"; + rLen = 0; + rLoc = 8683; + rType = 0; + vrLen = 1247; + vrLoc = 8298; + }; + 6B6BC6F60FE7A3A4009E3CB9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 826"; + rLen = 0; + rLoc = 20664; + rType = 0; + vrLen = 793; + vrLoc = 20396; + }; 6B77072C0FBD540400D21BAE /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BDD9E050F91112200904EEF /* DetourStatNavMesh.h */; @@ -1386,16 +1173,6 @@ modificationTime = 265812977.276666; state = 0; }; - 6B7708F20FBDA96300D21BAE /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; - name = "RecastTimer.cpp: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 574; - vrLoc = 0; - }; 6B7708F70FBDA96300D21BAE /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; @@ -1489,25 +1266,45 @@ path = /Library/Frameworks/SDL.framework/Versions/A/Headers/SDL_events.h; sourceTree = ""; }; - 6B8AD2EA0FCDE25800016452 /* PBXTextBookmark */ = { + 6B8A71D10FDAADCA00A0A6FB /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 151"; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 278"; rLen = 0; - rLoc = 4059; + rLoc = 7231; rType = 0; - vrLen = 820; - vrLoc = 3643; + vrLen = 948; + vrLoc = 6948; }; - 6B8DB2D70F93A7A5007FA9E1 /* PBXTextBookmark */ = { + 6B8A71F40FDAB52200A0A6FB /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 356"; - rLen = 19; - rLoc = 13447; + fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; + name = "RecastTimer.cpp: 1"; + rLen = 0; + rLoc = 0; rType = 0; - vrLen = 696; - vrLoc = 8752; + vrLen = 574; + vrLoc = 0; + }; + 6B8A71FC0FDABD0300A0A6FB /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 79"; + rLen = 0; + rLoc = 2489; + rType = 0; + vrLen = 1095; + vrLoc = 2038; + }; + 6B8B580A0FD80DA20088BD0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; + name = "DetourStatNavMesh.cpp: 565"; + rLen = 0; + rLoc = 12103; + rType = 0; + vrLen = 808; + vrLoc = 11954; }; 6B8DB38F0F9798DE007FA9E1 /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -1529,56 +1326,6 @@ vrLen = 1243; vrLoc = 0; }; - 6B8FD17B0FD7C3230059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1563"; - rLen = 0; - rLoc = 40263; - rType = 0; - vrLen = 970; - vrLoc = 42664; - }; - 6B8FD1810FD7C3F10059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1032"; - rLen = 0; - rLoc = 26038; - rType = 0; - vrLen = 803; - vrLoc = 28482; - }; - 6B8FD1820FD7C3F10059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 411"; - rLen = 0; - rLoc = 11886; - rType = 0; - vrLen = 821; - vrLoc = 9964; - }; - 6B8FD1830FD7C3F10059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1032"; - rLen = 0; - rLoc = 26038; - rType = 0; - vrLen = 803; - vrLoc = 28482; - }; - 6B8FD1840FD7C3F10059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 414"; - rLen = 0; - rLoc = 12103; - rType = 0; - vrLen = 809; - vrLoc = 9964; - }; 6B8FD18D0FD7C4D10059D643 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; @@ -1589,82 +1336,12 @@ vrLen = 937; vrLoc = 8864; }; - 6B8FD18E0FD7C4D10059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 410"; - rLen = 0; - rLoc = 11885; - rType = 0; - vrLen = 842; - vrLoc = 9966; - }; - 6B8FD18F0FD7C4D10059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 410"; - rLen = 0; - rLoc = 11885; - rType = 0; - vrLen = 844; - vrLoc = 9964; - }; - 6B8FD1900FD7C4D10059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 388"; - rLen = 0; - rLoc = 9576; - rType = 0; - vrLen = 937; - vrLoc = 8864; - }; - 6B8FD1910FD7C4D10059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 411"; - rLen = 0; - rLoc = 11960; - rType = 0; - vrLen = 840; - vrLoc = 10090; - }; - 6B8FD1940FD7C50F0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 427"; - rLen = 0; - rLoc = 12107; - rType = 0; - vrLen = 814; - vrLoc = 10298; - }; - 6B8FD1960FD7C5660059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 420"; - rLen = 0; - rLoc = 11874; - rType = 0; - vrLen = 838; - vrLoc = 10298; - }; - 6B8FD1980FD7C5B60059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 403"; - rLen = 0; - rLoc = 11569; - rType = 0; - vrLen = 784; - vrLoc = 9976; - }; 6B8FD19B0FD7ED310059D643 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; name = "RecastDebugDraw.h: 50"; rLen = 28; - rLoc = 2031; + rLoc = 1862; rType = 0; vrLen = 1807; vrLoc = 1036; @@ -1679,62 +1356,22 @@ vrLen = 512; vrLoc = 1314; }; - 6B8FD19D0FD7ED310059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; - name = "RecastFilter.cpp: 235"; - rLen = 0; - rLoc = 6932; - rType = 0; - vrLen = 1017; - vrLoc = 6018; - }; 6B8FD19E0FD7ED310059D643 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 227"; rLen = 8; - rLoc = 6131; + rLoc = 6171; rType = 0; vrLen = 638; vrLoc = 6012; }; - 6B8FD19F0FD7ED310059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 404"; - rLen = 0; - rLoc = 11066; - rType = 0; - vrLen = 697; - vrLoc = 9976; - }; - 6B8FD1A00FD7ED310059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 50"; - rLen = 28; - rLoc = 2031; - rType = 0; - vrLen = 1807; - vrLoc = 1036; - }; - 6B8FD1A10FD7ED310059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 199"; - rLen = 4; - rLoc = 5614; - rType = 0; - vrLen = 924; - vrLoc = 5059; - }; 6B8FD1A20FD7ED310059D643 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; name = "RecastDebugDraw.cpp: 404"; rLen = 0; - rLoc = 11066; + rLoc = 10077; rType = 0; vrLen = 697; vrLoc = 9976; @@ -1754,231 +1391,11 @@ fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; name = "RecastFilter.cpp: 235"; rLen = 0; - rLoc = 6932; + rLoc = 7174; rType = 0; vrLen = 1017; vrLoc = 6018; }; - 6B8FD1A50FD7ED310059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 404"; - rLen = 0; - rLoc = 11066; - rType = 0; - vrLen = 697; - vrLoc = 9976; - }; - 6B8FD1A60FD7ED310059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 227"; - rLen = 8; - rLoc = 6131; - rType = 0; - vrLen = 638; - vrLoc = 6012; - }; - 6B8FD1A70FD7ED310059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 408"; - rLen = 0; - rLoc = 11156; - rType = 0; - vrLen = 723; - vrLoc = 9976; - }; - 6B8FD1AA0FD7ED7B0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 410"; - rLen = 0; - rLoc = 11251; - rType = 0; - vrLen = 740; - vrLoc = 9976; - }; - 6B8FD1AE0FD7EE090059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 456"; - rLen = 0; - rLoc = 12303; - rType = 0; - vrLen = 719; - vrLoc = 11282; - }; - 6B8FD1AF0FD7EED60059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 385"; - rLen = 0; - rLoc = 10650; - rType = 0; - vrLen = 819; - vrLoc = 9604; - }; - 6B8FD1B20FD7EFAB0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 404"; - rLen = 0; - rLoc = 11066; - rType = 0; - vrLen = 819; - vrLoc = 9604; - }; - 6B8FD1B30FD7EFAB0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1032"; - rLen = 0; - rLoc = 26038; - rType = 0; - vrLen = 803; - vrLoc = 28482; - }; - 6B8FD1B40FD7EFAB0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 404"; - rLen = 0; - rLoc = 11066; - rType = 0; - vrLen = 819; - vrLoc = 9604; - }; - 6B8FD1B50FD7EFAB0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1562"; - rLen = 0; - rLoc = 40263; - rType = 0; - vrLen = 1002; - vrLoc = 42628; - }; - 6B8FD1B80FD7F05F0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1552"; - rLen = 0; - rLoc = 40011; - rType = 0; - vrLen = 1002; - vrLoc = 42628; - }; - 6B8FD1B90FD7F05F0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 404"; - rLen = 0; - rLoc = 11066; - rType = 0; - vrLen = 819; - vrLoc = 9604; - }; - 6B8FD1BA0FD7F05F0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1552"; - rLen = 0; - rLoc = 40011; - rType = 0; - vrLen = 1002; - vrLoc = 42628; - }; - 6B8FD1BB0FD7F05F0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 459"; - rLen = 0; - rLoc = 12357; - rType = 0; - vrLen = 772; - vrLoc = 10865; - }; - 6B8FD1BF0FD7F15D0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 445"; - rLen = 0; - rLoc = 12111; - rType = 0; - vrLen = 794; - vrLoc = 10865; - }; - 6B8FD1C00FD7F15D0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1552"; - rLen = 0; - rLoc = 40011; - rType = 0; - vrLen = 965; - vrLoc = 42628; - }; - 6B8FD1C10FD7F15D0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 445"; - rLen = 0; - rLoc = 12111; - rType = 0; - vrLen = 794; - vrLoc = 10865; - }; - 6B8FD1C20FD7F15D0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1539"; - rLen = 0; - rLoc = 42990; - rType = 0; - vrLen = 755; - vrLoc = 42623; - }; - 6B8FD1C70FD7F2070059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1555"; - rLen = 0; - rLoc = 43260; - rType = 0; - vrLen = 755; - vrLoc = 42623; - }; - 6B8FD1C80FD7F2070059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1928"; - rLen = 0; - rLoc = 54016; - rType = 0; - vrLen = 808; - vrLoc = 53477; - }; - 6B8FD1CB0FD7F2A20059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 901"; - rLen = 0; - rLoc = 25899; - rType = 0; - vrLen = 803; - vrLoc = 25484; - }; - 6B8FD1CE0FD7F56C0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 901"; - rLen = 0; - rLoc = 25899; - rType = 0; - vrLen = 829; - vrLoc = 25484; - }; 6B8FD1CF0FD7F56C0059D643 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */; @@ -1989,125 +1406,55 @@ vrLen = 723; vrLoc = 3786; }; - 6B8FD1D00FD7F56C0059D643 /* PBXTextBookmark */ = { + 6B901BFB0FE154A900CE8692 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 445"; + name = "RecastDebugDraw.cpp: 23"; rLen = 0; - rLoc = 12111; + rLoc = 1029; rType = 0; - vrLen = 774; - vrLoc = 10865; + vrLen = 901; + vrLoc = 837; }; - 6B8FD1D10FD7F56C0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 901"; - rLen = 0; - rLoc = 25899; - rType = 0; - vrLen = 829; - vrLoc = 25484; - }; - 6B8FD1D20FD7F56C0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 148"; - rLen = 0; - rLoc = 4022; - rType = 0; - vrLen = 723; - vrLoc = 3786; - }; - 6B8FD1D30FD7F56C0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 185"; - rLen = 0; - rLoc = 4835; - rType = 0; - vrLen = 715; - vrLoc = 4631; - }; - 6B8FD1D50FD7F5AC0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 356"; - rLen = 0; - rLoc = 9070; - rType = 0; - vrLen = 789; - vrLoc = 8549; - }; - 6B8FD1D80FD7F6190059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 318"; - rLen = 0; - rLoc = 8149; - rType = 0; - vrLen = 781; - vrLoc = 6919; - }; - 6B8FD1DA0FD7F69A0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 318"; - rLen = 0; - rLoc = 8149; - rType = 0; - vrLen = 807; - vrLoc = 6919; - }; - 6B8FD1DB0FD7F69A0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 901"; - rLen = 0; - rLoc = 25899; - rType = 0; - vrLen = 829; - vrLoc = 25484; - }; - 6B8FD1DC0FD7F69A0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 318"; - rLen = 0; - rLoc = 8149; - rType = 0; - vrLen = 807; - vrLoc = 6919; - }; - 6B8FD1DD0FD7F69A0059D643 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1389"; - rLen = 0; - rLoc = 38927; - rType = 0; - vrLen = 1271; - vrLoc = 32293; - }; - 6BB787680FC03EAD003C24DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; - name = "RecastLog.cpp: 68"; - rLen = 0; - rLoc = 1703; - rType = 0; - vrLen = 299; - vrLoc = 1527; - }; - 6BB7876A0FC03EAD003C24DB /* PBXTextBookmark */ = { + 6B995BDF0FE0D9B300D5C493 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; - name = "RecastRegion.cpp: 1074"; + name = "RecastRegion.cpp: 78"; rLen = 0; - rLoc = 26082; + rLoc = 2344; rType = 0; - vrLen = 1115; - vrLoc = 25144; + vrLen = 905; + vrLoc = 2462; + }; + 6B995BE00FE0D9B300D5C493 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; + name = "demo.cpp: 2024"; + rLen = 0; + rLoc = 54500; + rType = 0; + vrLen = 684; + vrLoc = 58091; + }; + 6B995BE40FE0D9B300D5C493 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 39"; + rLen = 1; + rLoc = 1385; + rType = 0; + vrLen = 941; + vrLoc = 1009; + }; + 6BAE920D0FD8014C002875DB /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BDD9E050F91112200904EEF /* DetourStatNavMesh.h */; + name = "DetourStatNavMesh.h: 200"; + rLen = 0; + rLoc = 7748; + rType = 0; + vrLen = 953; + vrLoc = 6862; }; 6BB7876B0FC03EAD003C24DB /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -2119,16 +1466,6 @@ vrLen = 1063; vrLoc = 0; }; - 6BB7876D0FC03EAD003C24DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; - name = "RecastRasterization.cpp: 296"; - rLen = 0; - rLoc = 7850; - rType = 0; - vrLen = 763; - vrLoc = 7133; - }; 6BB787710FC03EAD003C24DB /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; @@ -2139,16 +1476,6 @@ vrLen = 522; vrLoc = 1674; }; - 6BB787BD0FC03EAD003C24DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; - name = "RecastLog.cpp: 68"; - rLen = 0; - rLoc = 1703; - rType = 0; - vrLen = 299; - vrLoc = 1527; - }; 6BB787C30FC03EAD003C24DB /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; @@ -2203,22 +1530,12 @@ vrLen = 1243; vrLoc = 0; }; - 6BB788220FC0593E003C24DB /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; - name = "RecastFilter.cpp: 235"; - rLen = 0; - rLoc = 6932; - rType = 0; - vrLen = 1017; - vrLoc = 6018; - }; 6BB788230FC0593E003C24DB /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; name = "Recast.cpp: 78"; rLen = 177; - rLoc = 2215; + rLoc = 2359; rType = 0; vrLen = 818; vrLoc = 1610; @@ -2253,26 +1570,6 @@ vrLen = 1368; vrLoc = 0; }; - 6BB85D1A0FCEA5BD00758966 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 27"; - rLen = 0; - rLoc = 1066; - rType = 0; - vrLen = 1604; - vrLoc = 1034; - }; - 6BB85D2F0FCEA8BE00758966 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 404"; - rLen = 0; - rLoc = 14072; - rType = 0; - vrLen = 759; - vrLoc = 9726; - }; 6BB85D3A0FCEAA6300758966 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB85D3B0FCEAA6300758966 /* SDL_video.h */; @@ -2327,412 +1624,26 @@ vrLen = 707; vrLoc = 4122; }; - 6BC6204B0FD684AD0022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 150"; - rLen = 0; - rLoc = 3791; - rType = 0; - vrLen = 629; - vrLoc = 3607; - }; - 6BC620550FD684B30022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 152"; - rLen = 0; - rLoc = 3846; - rType = 0; - vrLen = 693; - vrLoc = 3607; - }; - 6BC620580FD684D50022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 152"; - rLen = 0; - rLoc = 3846; - rType = 0; - vrLen = 633; - vrLoc = 3607; - }; - 6BC620590FD684E70022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 156"; - rLen = 0; - rLoc = 3881; - rType = 0; - vrLen = 336; - vrLoc = 3632; - }; - 6BC6205B0FD684F10022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1031"; - rLen = 0; - rLoc = 26038; - rType = 0; - vrLen = 801; - vrLoc = 28452; - }; - 6BC620600FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 147"; - rLen = 0; - rLoc = 4012; - rType = 0; - vrLen = 723; - vrLoc = 3786; - }; - 6BC620610FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 44"; - rLen = 0; - rLoc = 1773; - rType = 0; - vrLen = 1676; - vrLoc = 1034; - }; - 6BC620620FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1342"; - rLen = 0; - rLoc = 34043; - rType = 0; - vrLen = 854; - vrLoc = 36483; - }; - 6BC620630FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - comments = "error: 's' was not declared in this scope"; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - rLen = 1; - rLoc = 67; - rType = 1; - }; - 6BC620640FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1031"; - rLen = 0; - rLoc = 25996; - rType = 0; - vrLen = 803; - vrLoc = 28452; - }; - 6BC620650FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */; - name = "DetourDebugDraw.cpp: 147"; - rLen = 0; - rLoc = 4012; - rType = 0; - vrLen = 723; - vrLoc = 3786; - }; - 6BC620660FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 365"; - rLen = 0; - rLoc = 12771; - rType = 0; - vrLen = 755; - vrLoc = 9050; - }; - 6BC620670FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 43"; - rLen = 34; - rLoc = 1609; - rType = 0; - vrLen = 1640; - vrLoc = 1034; - }; - 6BC620680FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 365"; - rLen = 0; - rLoc = 12771; - rType = 0; - vrLen = 755; - vrLoc = 9050; - }; - 6BC620690FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 44"; - rLen = 0; - rLoc = 1773; - rType = 0; - vrLen = 1676; - vrLoc = 1034; - }; - 6BC6206A0FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 67"; - rLen = 0; - rLoc = 2314; - rType = 0; - vrLen = 912; - vrLoc = 1688; - }; - 6BC6206B0FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1342"; - rLen = 0; - rLoc = 34043; - rType = 0; - vrLen = 854; - vrLoc = 36483; - }; - 6BC6206C0FD686900022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 62"; - rLen = 0; - rLoc = 2140; - rType = 0; - vrLen = 864; - vrLoc = 1495; - }; - 6BC6206E0FD6870C0022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 40"; - rLen = 0; - rLoc = 1509; - rType = 0; - vrLen = 999; - vrLoc = 945; - }; - 6BC6206F0FD6870C0022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1342"; - rLen = 0; - rLoc = 34043; - rType = 0; - vrLen = 854; - vrLoc = 36483; - }; - 6BC620700FD6870C0022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 40"; - rLen = 0; - rLoc = 1509; - rType = 0; - vrLen = 999; - vrLoc = 945; - }; - 6BC620710FD6870C0022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1120"; - rLen = 0; - rLoc = 28167; - rType = 0; - vrLen = 853; - vrLoc = 30637; - }; - 6BC620730FD687B90022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1120"; - rLen = 0; - rLoc = 28167; - rType = 0; - vrLen = 853; - vrLoc = 30637; - }; - 6BC6207A0FD7BBAB0022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1120"; - rLen = 0; - rLoc = 28167; - rType = 0; - vrLen = 875; - vrLoc = 30637; - }; - 6BC6207B0FD7BBAB0022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1031"; - rLen = 0; - rLoc = 26038; - rType = 0; - vrLen = 861; - vrLoc = 28664; - }; - 6BC6207D0FD7BCB50022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1114"; - rLen = 0; - rLoc = 28044; - rType = 0; - vrLen = 962; - vrLoc = 30405; - }; - 6BC6207F0FD7BCD00022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1113"; - rLen = 0; - rLoc = 27983; - rType = 0; - vrLen = 962; - vrLoc = 30405; - }; - 6BC620810FD7BD030022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1400"; - rLen = 0; - rLoc = 35682; - rType = 0; - vrLen = 1037; - vrLoc = 38046; - }; - 6BC620830FD7BD370022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1399"; - rLen = 0; - rLoc = 35646; - rType = 0; - vrLen = 1034; - vrLoc = 38046; - }; - 6BC620850FD7BD520022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1404"; - rLen = 0; - rLoc = 35858; - rType = 0; - vrLen = 1034; - vrLoc = 38046; - }; - 6BC620870FD7BD710022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1376"; - rLen = 0; - rLoc = 34899; - rType = 0; - vrLen = 1060; - vrLoc = 37527; - }; - 6BC6208D0FD7C2380022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 411"; - rLen = 0; - rLoc = 11886; - rType = 0; - vrLen = 939; - vrLoc = 9846; - }; - 6BC6208E0FD7C2380022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 50"; - rLen = 28; - rLoc = 2031; - rType = 0; - vrLen = 1807; - vrLoc = 1036; - }; - 6BC6208F0FD7C2380022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - comments = "error: 'rcDebugDrawContourConnections' was not declared in this scope"; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - rLen = 0; - rLoc = 1436; - rType = 1; - }; 6BC620900FD7C2380022CACF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; name = "demo.cpp: 1563"; rLen = 0; - rLoc = 40263; + rLoc = 40053; rType = 0; vrLen = 898; vrLoc = 42754; }; - 6BC620910FD7C2380022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 34"; - rLen = 0; - rLoc = 1385; - rType = 0; - vrLen = 999; - vrLoc = 945; - }; 6BC620920FD7C2380022CACF /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; name = "RecastDebugDraw.h: 51"; rLen = 22; - rLoc = 2164; + rLoc = 1995; rType = 0; vrLen = 1807; vrLoc = 1036; }; - 6BC620930FD7C2380022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 411"; - rLen = 0; - rLoc = 11886; - rType = 0; - vrLen = 939; - vrLoc = 9846; - }; - 6BC620940FD7C2380022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1563"; - rLen = 0; - rLoc = 40263; - rType = 0; - vrLen = 904; - vrLoc = 42731; - }; - 6BC620950FD7C2380022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 50"; - rLen = 28; - rLoc = 2031; - rType = 0; - vrLen = 1807; - vrLoc = 1036; - }; - 6BC620960FD7C2380022CACF /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */; - name = "demo.cpp: 1563"; - rLen = 0; - rLoc = 40263; - rType = 0; - vrLen = 929; - vrLoc = 42701; - }; 6BDD9E040F91112200904EEF /* DetourDebugDraw.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {969, 553}}"; @@ -2743,8 +1654,8 @@ 6BDD9E050F91112200904EEF /* DetourStatNavMesh.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {969, 3280}}"; - sepNavSelRange = "{1145, 0}"; - sepNavVisRange = "{947, 777}"; + sepNavSelRange = "{7748, 0}"; + sepNavVisRange = "{6862, 953}"; }; }; 6BDD9E060F91112200904EEF /* DetourStatNavMeshBuilder.h */ = { @@ -2763,9 +1674,9 @@ }; 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {969, 19744}}"; - sepNavSelRange = "{26901, 0}"; - sepNavVisRange = "{26544, 1426}"; + sepNavIntBoundsRect = "{{0, 0}, {969, 20832}}"; + sepNavSelRange = "{12103, 0}"; + sepNavVisRange = "{11954, 808}"; }; }; 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */ = { diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index b9b5094c..1ec9d23d 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -278,13 +278,14 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 34 + 11 + 9 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 24}, {228, 660}} + {{0, 0}, {228, 660}} PBXTopSmartGroupGIDs @@ -319,7 +320,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - demo.cpp + RecastContour.cpp PBXSplitModuleInNavigatorKey Split0 @@ -327,11 +328,11 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - demo.cpp + RecastContour.cpp _historyCapacity 0 bookmark - 6B8FD1DD0FD7F69A0059D643 + 6B6BC6F60FE7A3A4009E3CB9 history 6B8633370F7813A600E2684A @@ -339,33 +340,30 @@ 6B7707AF0FBD66CF00D21BAE 6B7707EF0FBD90F100D21BAE 6B7707F00FBD90F100D21BAE - 6B7708F20FBDA96300D21BAE - 6BB7876A0FC03EAD003C24DB 6BB7876B0FC03EAD003C24DB - 6BB7876D0FC03EAD003C24DB 6BB787710FC03EAD003C24DB 6BB7881E0FC0593E003C24DB 6BB7881F0FC0593E003C24DB - 6BB788230FC0593E003C24DB 6B8171D70FC327630022159F 6BB85D3A0FCEAA6300758966 6B09CDFF0FD5563E005637D5 6B09CE5C0FD5BDE6005637D5 - 6B09CE5D0FD5BDE6005637D5 6B09CE5F0FD5BDE6005637D5 6B09CE730FD5BEC3005637D5 - 6B164B210FD678A500D2F919 - 6B164B240FD678A500D2F919 - 6B164B250FD678A500D2F919 - 6B164B260FD678A500D2F919 - 6B8FD18D0FD7C4D10059D643 - 6B8FD19B0FD7ED310059D643 6B8FD19C0FD7ED310059D643 - 6B8FD19D0FD7ED310059D643 - 6B8FD19E0FD7ED310059D643 6B8FD1CF0FD7F56C0059D643 - 6B8FD1DA0FD7F69A0059D643 - 6B8FD1DB0FD7F69A0059D643 + 6BAE920D0FD8014C002875DB + 6B8B580A0FD80DA20088BD0D + 6B8A71F40FDAB52200A0A6FB + 6B995BDF0FE0D9B300D5C493 + 6B6BC6C70FE7A3A4009E3CB9 + 6B6BC6C80FE7A3A4009E3CB9 + 6B6BC6C90FE7A3A4009E3CB9 + 6B6BC6CA0FE7A3A4009E3CB9 + 6B6BC6CB0FE7A3A4009E3CB9 + 6B6BC6CC0FE7A3A4009E3CB9 + 6B6BC6CD0FE7A3A4009E3CB9 + 6B6BC6CE0FE7A3A4009E3CB9 prevStack @@ -393,26 +391,49 @@ 6BB85D3E0FCEAA6300758966 6B09CE1E0FD55805005637D5 6B09CE2D0FD55B4D005637D5 - 6B164B320FD678A500D2F919 - 6B164B330FD678A500D2F919 - 6B164B3C0FD678A500D2F919 - 6BC620900FD7C2380022CACF 6BC620920FD7C2380022CACF - 6B8FD1830FD7C3F10059D643 - 6B8FD1900FD7C4D10059D643 - 6B8FD1A00FD7ED310059D643 - 6B8FD1A10FD7ED310059D643 6B8FD1A20FD7ED310059D643 6B8FD1A30FD7ED310059D643 6B8FD1A40FD7ED310059D643 - 6B8FD1A50FD7ED310059D643 - 6B8FD1A60FD7ED310059D643 - 6B8FD1B40FD7EFAB0059D643 - 6B8FD1BA0FD7F05F0059D643 - 6B8FD1C10FD7F15D0059D643 - 6B8FD1D10FD7F56C0059D643 - 6B8FD1D20FD7F56C0059D643 - 6B8FD1DC0FD7F69A0059D643 + 6B6BC6CF0FE7A3A4009E3CB9 + 6B6BC6D00FE7A3A4009E3CB9 + 6B6BC6D10FE7A3A4009E3CB9 + 6B6BC6D20FE7A3A4009E3CB9 + 6B6BC6D30FE7A3A4009E3CB9 + 6B6BC6D40FE7A3A4009E3CB9 + 6B6BC6D50FE7A3A4009E3CB9 + 6B6BC6D60FE7A3A4009E3CB9 + 6B6BC6D70FE7A3A4009E3CB9 + 6B6BC6D80FE7A3A4009E3CB9 + 6B6BC6D90FE7A3A4009E3CB9 + 6B6BC6DA0FE7A3A4009E3CB9 + 6B6BC6DB0FE7A3A4009E3CB9 + 6B6BC6DC0FE7A3A4009E3CB9 + 6B6BC6DD0FE7A3A4009E3CB9 + 6B6BC6DE0FE7A3A4009E3CB9 + 6B6BC6DF0FE7A3A4009E3CB9 + 6B6BC6E00FE7A3A4009E3CB9 + 6B6BC6E10FE7A3A4009E3CB9 + 6B6BC6E20FE7A3A4009E3CB9 + 6B6BC6E30FE7A3A4009E3CB9 + 6B6BC6E40FE7A3A4009E3CB9 + 6B6BC6E50FE7A3A4009E3CB9 + 6B6BC6E60FE7A3A4009E3CB9 + 6B6BC6E70FE7A3A4009E3CB9 + 6B6BC6E80FE7A3A4009E3CB9 + 6B6BC6E90FE7A3A4009E3CB9 + 6B6BC6EA0FE7A3A4009E3CB9 + 6B6BC6EB0FE7A3A4009E3CB9 + 6B6BC6EC0FE7A3A4009E3CB9 + 6B6BC6ED0FE7A3A4009E3CB9 + 6B6BC6EE0FE7A3A4009E3CB9 + 6B6BC6EF0FE7A3A4009E3CB9 + 6B6BC6F00FE7A3A4009E3CB9 + 6B6BC6F10FE7A3A4009E3CB9 + 6B6BC6F20FE7A3A4009E3CB9 + 6B6BC6F30FE7A3A4009E3CB9 + 6B6BC6F40FE7A3A4009E3CB9 + 6B6BC6F50FE7A3A4009E3CB9 SplitCount @@ -426,18 +447,18 @@ GeometryConfiguration Frame - {{0, 0}, {1030, 585}} + {{0, 0}, {1030, 673}} RubberWindowFrame 0 59 1280 719 0 0 1280 778 Module PBXNavigatorGroup Proportion - 585pt + 673pt Proportion - 88pt + 0pt Tabs @@ -452,8 +473,6 @@ Frame {{10, 27}, {1030, 61}} - RubberWindowFrame - 0 59 1280 719 0 0 1280 778 Module XCDetailModule @@ -469,7 +488,9 @@ GeometryConfiguration Frame - {{10, 27}, {1030, 225}} + {{10, 27}, {1030, -27}} + RubberWindowFrame + 0 59 1280 719 0 0 1280 778 Module PBXProjectFindModule @@ -507,7 +528,7 @@ GeometryConfiguration Frame - {{10, 27}, {1030, 61}} + {{10, 27}, {1030, 52}} Module PBXBuildResultsModule @@ -535,11 +556,11 @@ TableOfContents - 6B8FD17C0FD7C3230059D643 + 6B6BC6F70FE7A3A4009E3CB9 1CA23ED40692098700951B8B - 6B8FD17D0FD7C3230059D643 + 6B6BC6F80FE7A3A4009E3CB9 6B8632A30F78115100E2684A - 6B8FD17E0FD7C3230059D643 + 6B6BC6F90FE7A3A4009E3CB9 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -588,12 +609,12 @@ GeometryConfiguration Frame - {{0, 0}, {1280, 199}} + {{0, 0}, {1280, 190}} Module PBXDebugCLIModule Proportion - 199pt + 190pt ContentConfiguration @@ -612,8 +633,8 @@ yes sizes - {{0, 0}, {637, 130}} - {{637, 0}, {643, 130}} + {{0, 0}, {637, 124}} + {{637, 0}, {643, 124}} VerticalSplitView @@ -628,8 +649,8 @@ yes sizes - {{0, 0}, {1280, 130}} - {{0, 130}, {1280, 344}} + {{0, 0}, {1280, 124}} + {{0, 124}, {1280, 327}} @@ -649,7 +670,7 @@ DebugSTDIOWindowFrame {{200, 200}, {500, 300}} Frame - {{0, 204}, {1280, 474}} + {{0, 195}, {1280, 451}} PBXDebugSessionStackFrameViewKey DebugVariablesTableConfiguration @@ -662,13 +683,13 @@ 413 Frame - {{637, 0}, {643, 130}} + {{637, 0}, {643, 124}} Module PBXDebugSessionModule Proportion - 474pt + 451pt Name @@ -686,14 +707,14 @@ TableOfContents - 6B8FD1850FD7C3F10059D643 + 6B6BC6FA0FE7A3A4009E3CB9 1CCC7628064C1048000F2A68 1CCC7629064C1048000F2A68 - 6B8FD1860FD7C3F10059D643 - 6B8FD1870FD7C3F10059D643 - 6B8FD1880FD7C3F10059D643 - 6B8FD1890FD7C3F10059D643 - 6B8FD18A0FD7C3F10059D643 + 6B6BC6FB0FE7A3A4009E3CB9 + 6B6BC6FC0FE7A3A4009E3CB9 + 6B6BC6FD0FE7A3A4009E3CB9 + 6B6BC6FE0FE7A3A4009E3CB9 + 6B6BC6FF0FE7A3A4009E3CB9 ToolbarConfiguration xcode.toolbar.config.debugV3 diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj index e6fef956..8ac178cb 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj @@ -22,8 +22,6 @@ 6B137C910F7FCC1100459200 /* RecastRasterization.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; }; 6B137C920F7FCC1100459200 /* RecastRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; }; 6B137C930F7FCC1100459200 /* RecastTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; }; - 6B164AFE0FD6687600D2F919 /* glimage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B164AFD0FD6687600D2F919 /* glimage.cpp */; }; - 6B164B010FD668B700D2F919 /* stb_image.c in Sources */ = {isa = PBXBuildFile; fileRef = 6B164B000FD668B700D2F919 /* stb_image.c */; }; 6B8632DA0F78122C00E2684A /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B8632D90F78122C00E2684A /* SDL.framework */; }; 6B8632DC0F78123E00E2684A /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B8632DB0F78123E00E2684A /* OpenGL.framework */; }; 6BB788170FC0472B003C24DB /* ChunkyTriMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */; }; @@ -64,9 +62,6 @@ 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastRasterization.cpp; path = ../../../Recast/Source/RecastRasterization.cpp; sourceTree = SOURCE_ROOT; }; 6B137C890F7FCC1100459200 /* RecastRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastRegion.cpp; path = ../../../Recast/Source/RecastRegion.cpp; sourceTree = SOURCE_ROOT; }; 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastTimer.cpp; path = ../../../Recast/Source/RecastTimer.cpp; sourceTree = SOURCE_ROOT; }; - 6B164AFD0FD6687600D2F919 /* glimage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = glimage.cpp; path = ../../Source/glimage.cpp; sourceTree = SOURCE_ROOT; }; - 6B164AFF0FD6688000D2F919 /* glimage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = glimage.h; path = ../../Include/glimage.h; sourceTree = SOURCE_ROOT; }; - 6B164B000FD668B700D2F919 /* stb_image.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = stb_image.c; path = ../../Source/stb_image.c; sourceTree = SOURCE_ROOT; }; 6B8632D90F78122C00E2684A /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = Library/Frameworks/SDL.framework; sourceTree = SDKROOT; }; 6B8632DB0F78123E00E2684A /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ChunkyTriMesh.cpp; path = ../../Source/ChunkyTriMesh.cpp; sourceTree = SOURCE_ROOT; }; @@ -98,9 +93,6 @@ 080E96DDFE201D6D7F000001 /* Classes */ = { isa = PBXGroup; children = ( - 6B164B000FD668B700D2F919 /* stb_image.c */, - 6B164AFF0FD6688000D2F919 /* glimage.h */, - 6B164AFD0FD6687600D2F919 /* glimage.cpp */, 6BDD9E030F91110C00904EEF /* Detour */, 6B137C7D0F7FCBE800459200 /* Recast */, 6B137C790F7FCBE400459200 /* glfont.h */, @@ -291,8 +283,6 @@ 6BDD9E0B0F91113800904EEF /* DetourStatNavMesh.cpp in Sources */, 6BDD9E0C0F91113800904EEF /* DetourStatNavMeshBuilder.cpp in Sources */, 6BB788170FC0472B003C24DB /* ChunkyTriMesh.cpp in Sources */, - 6B164AFE0FD6687600D2F919 /* glimage.cpp in Sources */, - 6B164B010FD668B700D2F919 /* stb_image.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/RecastDemo/Contrib/SDL/readme.txt b/RecastDemo/Contrib/SDL/readme.txt index 051e80f1..732aca3d 100644 --- a/RecastDemo/Contrib/SDL/readme.txt +++ b/RecastDemo/Contrib/SDL/readme.txt @@ -1 +1,6 @@ -Download SDL Developer Libraries from http://www.libsdl.org and unzip them here. \ No newline at end of file + +Windows +Download SDL Developer Libraries from http://www.libsdl.org and unzip them here. + +OSX +Download and install OSX SDL Developer Libraries from http://www.libsdl.org \ No newline at end of file diff --git a/RecastDemo/Source/demo.cpp b/RecastDemo/Source/demo.cpp index aad42568..c4e0df1e 100644 --- a/RecastDemo/Source/demo.cpp +++ b/RecastDemo/Source/demo.cpp @@ -29,7 +29,6 @@ #include "SDL.h" #include "SDL_Opengl.h" #include "GLFont.h" -#include "GLImage.h" #include "RecastTimer.h" #include "MeshLoaderObj.h" #include "ChunkyTriMesh.h" @@ -391,6 +390,7 @@ bool buildTiledNavigation(const rcConfig& cfg, const int ncid = rcGetChunksInRect(chunkyMesh, tbmin, tbmax, cid, 256); if (!ncid) { + printf("Skipping empty %d,%d\n", x, y); continue; } @@ -401,7 +401,7 @@ bool buildTiledNavigation(const rcConfig& cfg, rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'solid'.", x, y); continue; } - if (!rcCreateHeightfield(*solid, tileCfg.width, tileCfg.height)) + if (!rcCreateHeightfield(*solid, tileCfg.width, tileCfg.height, tileCfg.bmin, tileCfg.bmax, tileCfg.cs, tileCfg.ch)) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create solid heightfield.", x, y); @@ -418,11 +418,10 @@ bool buildTiledNavigation(const rcConfig& cfg, rcMarkWalkableTriangles(tileCfg.walkableSlopeAngle, verts, nverts, tris, ntris, triangleFlags); - rcRasterizeTriangles(tileCfg.bmin, tileCfg.bmax, tileCfg.cs, tileCfg.ch, - verts, nverts, tris, triangleFlags, ntris, *solid); + rcRasterizeTriangles(verts, nverts, tris, triangleFlags, ntris, *solid); } - rcFilterWalkableBorderSpans(tileCfg.walkableHeight, tileCfg.walkableClimb, *solid); + rcFilterLedgeSpans(tileCfg.walkableHeight, tileCfg.walkableClimb, *solid); rcFilterWalkableLowHeightSpans(tileCfg.walkableHeight, *solid); @@ -433,8 +432,7 @@ bool buildTiledNavigation(const rcConfig& cfg, rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'chf'.", x, y); continue; } - if (!rcBuildCompactHeightfield(tileCfg.bmin, tileCfg.bmax, tileCfg.cs, tileCfg.ch, - tileCfg.walkableHeight, tileCfg.walkableClimb, + if (!rcBuildCompactHeightfield(tileCfg.walkableHeight, tileCfg.walkableClimb, RC_WALKABLE/*|RC_REACHABLE*/, *solid, *chf)) { if (rcGetLog()) @@ -612,33 +610,38 @@ bool buildTiledNavigation(const rcConfig& cfg, if (rcGetLog()) { - rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.1fms\n", g_buildTimes.rasterizeTriangles/1000.0f); + const float pc = 100.0f / rcGetDeltaTimeUsec(totStartTime, totEndTime); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Compact: %.1fms\n", g_buildTimes.buildCompact/1000.0f); - - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Border: %.1fms\n", g_buildTimes.filterBorder/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Walkable: %.1fms\n", g_buildTimes.filterWalkable/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Reachable: %.1fms\n", g_buildTimes.filterMarkReachable/1000.0f); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Distancefield: %.1fms\n", g_buildTimes.buildDistanceField/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - distance: %.1fms\n", g_buildTimes.buildDistanceFieldDist/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.1fms\n", g_buildTimes.buildDistanceFieldBlur/1000.0f); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Regions: %.1fms\n", g_buildTimes.buildRegions/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - watershed: %.1fms\n", g_buildTimes.buildRegionsReg/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - expand: %.1fms\n", g_buildTimes.buildRegionsExp/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - find catchment basins: %.1fms\n", g_buildTimes.buildRegionsFlood/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.1fms\n", g_buildTimes.buildRegionsFilter/1000.0f); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Contours: %.1fms\n", g_buildTimes.buildContours/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - trace: %.1fms\n", g_buildTimes.buildContoursTrace/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - simplify: %.1fms\n", g_buildTimes.buildContoursSimplify/1000.0f); - - rcGetLog()->log(RC_LOG_PROGRESS, "Fixup contours: %.1fms\n", g_buildTimes.fixupContours/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.1fms (%.1f%%)", g_buildTimes.rasterizeTriangles/1000.0f, g_buildTimes.rasterizeTriangles*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms\n", g_buildTimes.buildPolymesh/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Build Compact: %.1fms (%.1f%%)", g_buildTimes.buildCompact/1000.0f, g_buildTimes.buildCompact*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms\n", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Filter Border: %.1fms (%.1f%%)", g_buildTimes.filterBorder/1000.0f, g_buildTimes.filterBorder*pc); + rcGetLog()->log(RC_LOG_PROGRESS, "Filter Walkable: %.1fms (%.1f%%)", g_buildTimes.filterWalkable/1000.0f, g_buildTimes.filterWalkable*pc); + rcGetLog()->log(RC_LOG_PROGRESS, "Filter Reachable: %.1fms (%.1f%%)", g_buildTimes.filterMarkReachable/1000.0f, g_buildTimes.filterMarkReachable*pc); + + rcGetLog()->log(RC_LOG_PROGRESS, "Build Distancefield: %.1fms (%.1f%%)", g_buildTimes.buildDistanceField/1000.0f, g_buildTimes.buildDistanceField*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - distance: %.1fms (%.1f%%)", g_buildTimes.buildDistanceFieldDist/1000.0f, g_buildTimes.buildDistanceFieldDist*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.1fms (%.1f%%)", g_buildTimes.buildDistanceFieldBlur/1000.0f, g_buildTimes.buildDistanceFieldBlur*pc); + + rcGetLog()->log(RC_LOG_PROGRESS, "Build Regions: %.1fms (%.1f%%)", g_buildTimes.buildRegions/1000.0f, g_buildTimes.buildRegions*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - watershed: %.1fms (%.1f%%)", g_buildTimes.buildRegionsReg/1000.0f, g_buildTimes.buildRegionsReg*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - expand: %.1fms (%.1f%%)", g_buildTimes.buildRegionsExp/1000.0f, g_buildTimes.buildRegionsExp*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - find catchment basins: %.1fms (%.1f%%)", g_buildTimes.buildRegionsFlood/1000.0f, g_buildTimes.buildRegionsFlood*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.1fms (%.1f%%)", g_buildTimes.buildRegionsFilter/1000.0f, g_buildTimes.buildRegionsFilter*pc); + + rcGetLog()->log(RC_LOG_PROGRESS, "Build Contours: %.1fms (%.1f%%)", g_buildTimes.buildContours/1000.0f, g_buildTimes.buildContours*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - trace: %.1fms (%.1f%%)", g_buildTimes.buildContoursTrace/1000.0f, g_buildTimes.buildContoursTrace*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - simplify: %.1fms (%.1f%%)", g_buildTimes.buildContoursSimplify/1000.0f, g_buildTimes.buildContoursSimplify*pc); + + rcGetLog()->log(RC_LOG_PROGRESS, "Fixup contours: %.1fms (%.1f%%)", g_buildTimes.fixupContours/1000.0f, g_buildTimes.fixupContours*pc); + + rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms (%.1f%%)", g_buildTimes.buildPolymesh/1000.0f, g_buildTimes.buildPolymesh*pc); + + if (polyMesh) + rcGetLog()->log(RC_LOG_PROGRESS, "Polymesh: Verts:%d Polys:%d", polyMesh->nverts, polyMesh->npolys); + + rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); } return true; @@ -690,7 +693,7 @@ bool buildNavigation(const rcConfig& cfg, rcTimeVal totStartTime = rcGetPerformanceTimer(); - // Calculate the number of tiles in the output and initialize tiles. + // Create one tile so that we can use the same debug output as with the tiled generation. vcopy(tileSet->bmin, cfg.bmin); vcopy(tileSet->bmax, cfg.bmax); tileSet->cs = cfg.cs; @@ -734,7 +737,7 @@ bool buildNavigation(const rcConfig& cfg, rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'solid'."); return false; } - if (!rcCreateHeightfield(*solid, cfg.width, cfg.height)) + if (!rcCreateHeightfield(*solid, cfg.width, cfg.height, cfg.bmin, cfg.bmax, cfg.cs, cfg.ch)) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create solid heightfield."); @@ -742,15 +745,14 @@ bool buildNavigation(const rcConfig& cfg, } rcTimeVal startTime = rcGetPerformanceTimer(); - + memset(triangleFlags, 0, mesh->getTriCount()*sizeof(unsigned char)); rcMarkWalkableTriangles(cfg.walkableSlopeAngle, mesh->getVerts(), mesh->getVertCount(), mesh->getTris(), mesh->getTriCount(), triangleFlags); - rcRasterizeTriangles(cfg.bmin, cfg.bmax, cfg.cs, cfg.ch, - mesh->getVerts(), mesh->getVertCount(), mesh->getTris(), triangleFlags, mesh->getTriCount(), *solid); + rcRasterizeTriangles(mesh->getVerts(), mesh->getVertCount(), mesh->getTris(), triangleFlags, mesh->getTriCount(), *solid); - rcFilterWalkableBorderSpans(cfg.walkableHeight, cfg.walkableClimb, *solid); + rcFilterLedgeSpans(cfg.walkableHeight, cfg.walkableClimb, *solid); rcFilterWalkableLowHeightSpans(cfg.walkableHeight, *solid); @@ -761,8 +763,7 @@ bool buildNavigation(const rcConfig& cfg, rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'chf'."); return false; } - if (!rcBuildCompactHeightfield(cfg.bmin, cfg.bmax, cfg.cs, cfg.ch, - cfg.walkableHeight, cfg.walkableClimb, + if (!rcBuildCompactHeightfield(cfg.walkableHeight, cfg.walkableClimb, RC_WALKABLE/*|RC_REACHABLE*/, *solid, *chf)) { if (rcGetLog()) @@ -848,33 +849,38 @@ bool buildNavigation(const rcConfig& cfg, if (rcGetLog()) { - rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.1fms\n", g_buildTimes.rasterizeTriangles/1000.0f); + const float pc = 100.0f / rcGetDeltaTimeUsec(totStartTime, totEndTime); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Compact: %.1fms\n", g_buildTimes.buildCompact/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.1fms (%.1f%%)", g_buildTimes.rasterizeTriangles/1000.0f, g_buildTimes.rasterizeTriangles*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Border: %.1fms\n", g_buildTimes.filterBorder/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Walkable: %.1fms\n", g_buildTimes.filterWalkable/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Reachable: %.1fms\n", g_buildTimes.filterMarkReachable/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Build Compact: %.1fms (%.1f%%)", g_buildTimes.buildCompact/1000.0f, g_buildTimes.buildCompact*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Distancefield: %.1fms\n", g_buildTimes.buildDistanceField/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - distance: %.1fms\n", g_buildTimes.buildDistanceFieldDist/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.1fms\n", g_buildTimes.buildDistanceFieldBlur/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Filter Border: %.1fms (%.1f%%)", g_buildTimes.filterBorder/1000.0f, g_buildTimes.filterBorder*pc); + rcGetLog()->log(RC_LOG_PROGRESS, "Filter Walkable: %.1fms (%.1f%%)", g_buildTimes.filterWalkable/1000.0f, g_buildTimes.filterWalkable*pc); + rcGetLog()->log(RC_LOG_PROGRESS, "Filter Reachable: %.1fms (%.1f%%)", g_buildTimes.filterMarkReachable/1000.0f, g_buildTimes.filterMarkReachable*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Regions: %.1fms\n", g_buildTimes.buildRegions/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - watershed: %.1fms\n", g_buildTimes.buildRegionsReg/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - expand: %.1fms\n", g_buildTimes.buildRegionsExp/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - find catchment basins: %.1fms\n", g_buildTimes.buildRegionsFlood/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.1fms\n", g_buildTimes.buildRegionsFilter/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Build Distancefield: %.1fms (%.1f%%)", g_buildTimes.buildDistanceField/1000.0f, g_buildTimes.buildDistanceField*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - distance: %.1fms (%.1f%%)", g_buildTimes.buildDistanceFieldDist/1000.0f, g_buildTimes.buildDistanceFieldDist*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.1fms (%.1f%%)", g_buildTimes.buildDistanceFieldBlur/1000.0f, g_buildTimes.buildDistanceFieldBlur*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Contours: %.1fms\n", g_buildTimes.buildContours/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - trace: %.1fms\n", g_buildTimes.buildContoursTrace/1000.0f); - rcGetLog()->log(RC_LOG_PROGRESS, " - simplify: %.1fms\n", g_buildTimes.buildContoursSimplify/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Build Regions: %.1fms (%.1f%%)", g_buildTimes.buildRegions/1000.0f, g_buildTimes.buildRegions*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - watershed: %.1fms (%.1f%%)", g_buildTimes.buildRegionsReg/1000.0f, g_buildTimes.buildRegionsReg*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - expand: %.1fms (%.1f%%)", g_buildTimes.buildRegionsExp/1000.0f, g_buildTimes.buildRegionsExp*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - find catchment basins: %.1fms (%.1f%%)", g_buildTimes.buildRegionsFlood/1000.0f, g_buildTimes.buildRegionsFlood*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.1fms (%.1f%%)", g_buildTimes.buildRegionsFilter/1000.0f, g_buildTimes.buildRegionsFilter*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Fixup contours: %.1fms\n", g_buildTimes.fixupContours/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Build Contours: %.1fms (%.1f%%)", g_buildTimes.buildContours/1000.0f, g_buildTimes.buildContours*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - trace: %.1fms (%.1f%%)", g_buildTimes.buildContoursTrace/1000.0f, g_buildTimes.buildContoursTrace*pc); + rcGetLog()->log(RC_LOG_PROGRESS, " - simplify: %.1fms (%.1f%%)", g_buildTimes.buildContoursSimplify/1000.0f, g_buildTimes.buildContoursSimplify*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms\n", g_buildTimes.buildPolymesh/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Fixup contours: %.1fms (%.1f%%)", g_buildTimes.fixupContours/1000.0f, g_buildTimes.fixupContours*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms\n", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms (%.1f%%)", g_buildTimes.buildPolymesh/1000.0f, g_buildTimes.buildPolymesh*pc); + + if (polyMesh) + rcGetLog()->log(RC_LOG_PROGRESS, "Polymesh: Verts:%d Polys:%d", polyMesh->nverts, polyMesh->npolys); + + rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); } return true; @@ -897,10 +903,12 @@ int main(int argc, char *argv[]) SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8); + + int menuOffset = 0; - int width = 1280; //1024; //1200; - int height = 800; //768; //700; - SDL_Surface* screen = SDL_SetVideoMode(width, height, 0, SDL_OPENGL /*| SDL_FULLSCREEN*/); + int width = 1200; + int height = 700; + SDL_Surface* screen = SDL_SetVideoMode(width, height, 0, SDL_OPENGL); if (!screen) { printf("Could not initialise SDL opengl\n"); @@ -930,29 +938,14 @@ int main(int argc, char *argv[]) float tileSize = 0.0f; int drawMode = DRAWMODE_NAVMESH; int toolMode = TOOLMODE_PATHFIND; - bool showMenu = false; + bool showMenu = true; bool showLevels = false; bool showLog = false; - bool showTools = false; + bool showTools = true; char curLevel[256] = "Choose Level..."; bool mouseOverMenu = false; bool keepInterResults = false; - FileList fileList; - - FileList slidesList; - bool showSlides = false; - bool showCurSlide = true; - float slideAlpha = 1.0f; - int curSlide = 0; - int nextSlide = 0; - scanDirectory("slides", ".png", slidesList); - GLImage slideTex; - - char path[256]; - strcpy(path, "slides/"); - strcat(path, slidesList.files[curSlide]); - slideTex.create(path); - + FileList fileList; dtPolyRef startRef = 0, endRef = 0; @@ -977,12 +970,10 @@ int main(int argc, char *argv[]) float rays[3], raye[3]; float spos[3] = {0,0,0}; float epos[3] = {0,0,0}; - float mpos[3] = {0,0,0}; float hitPos[3] = {0,0,0}; float hitNormal[3] = {0,0,0}; float distanceToWall = 0; bool sposSet = false, eposSet = false; - bool mposSet = false; static const float startCol[4] = { 0.5f, 0.1f, 0.0f, 0.75f }; static const float endCol[4] = { 0.2f, 0.4f, 0.0f, 0.75f }; bool recalcTool = false; @@ -990,7 +981,7 @@ int main(int argc, char *argv[]) glEnable(GL_CULL_FACE); // float fogCol[4] = { 0.1f,0.12f,0.14f,1 }; - float fogCol[4] = { 0.32f,0.25f,0.07f,1 }; + float fogCol[4] = { 0.32f,0.25f,0.25f,1 }; glEnable(GL_FOG); glFogi(GL_FOG_MODE, GL_LINEAR); glFogf(GL_FOG_START, 0); @@ -1015,30 +1006,6 @@ int main(int argc, char *argv[]) { done = true; } - else if (event.key.keysym.sym == SDLK_TAB) - { - showCurSlide = !showCurSlide; - } - else if (event.key.keysym.sym == SDLK_2) - { - showSlides = !showSlides; - } - else if (event.key.keysym.sym == SDLK_1) - { - showMenu = !showMenu; - } - else if (event.key.keysym.sym == SDLK_LEFT) - { - nextSlide--; - if (nextSlide < 0) - nextSlide = 0; - } - else if (event.key.keysym.sym == SDLK_RIGHT) - { - nextSlide++; - if (nextSlide >= slidesList.size) - nextSlide = slidesList.size-1; - } break; case SDL_MOUSEBUTTONDOWN: @@ -1062,14 +1029,7 @@ int main(int argc, char *argv[]) float t; if (raycast(*g_mesh, rays, raye, t)) { - if (SDL_GetModState() & KMOD_CTRL) - { - mposSet = true; - mpos[0] = rays[0] + (raye[0] - rays[0])*t; - mpos[1] = rays[1] + (raye[1] - rays[1])*t; - mpos[2] = rays[2] + (raye[2] - rays[2])*t; - } - else if (SDL_GetModState() & KMOD_SHIFT) + if (SDL_GetModState() & KMOD_SHIFT) { sposSet = true; spos[0] = rays[0] + (raye[0] - rays[0])*t; @@ -1090,13 +1050,6 @@ int main(int argc, char *argv[]) recalcTool = true; } } - else - { - if (SDL_GetModState() & KMOD_CTRL) - { - mposSet = false; - } - } } } } @@ -1136,25 +1089,7 @@ int main(int argc, char *argv[]) lastTime = time; t += dt; - - float slideAlphaTarget = showCurSlide ? 1 : 0; - if (curSlide != nextSlide) - slideAlphaTarget = 0; - - if (slideAlphaTarget > slideAlpha) - slideAlpha = rcMin(slideAlpha+dt*4,1.0f); - else if (slideAlphaTarget < slideAlpha) - slideAlpha = rcMax(slideAlpha-dt*4,0.0f); - - if (curSlide != nextSlide && slideAlpha < 0.01f) - { - curSlide = nextSlide; - char path[256]; - strcpy(path, "slides/"); - strcat(path, slidesList.files[curSlide]); - slideTex.create(path); - } - + // Update and render glViewport(0, 0, width, height); glClearColor(0.3f, 0.3f, 0.32f, 1.0f); @@ -1214,12 +1149,12 @@ int main(int argc, char *argv[]) if (drawMode == DRAWMODE_MESH) { if (g_mesh) - rcDebugDrawMeshSlope(*g_mesh, agentMaxSlope, g_meshBMin[1], g_meshBMax[1]); + rcDebugDrawMeshSlope(*g_mesh, agentMaxSlope); } else if (drawMode != DRAWMODE_NAVMESH_TRANS) { if (g_mesh) - rcDebugDrawMesh(*g_mesh, 0, g_meshBMin[1], g_meshBMax[1]); + rcDebugDrawMesh(*g_mesh, 0); } glDisable(GL_FOG); @@ -1366,7 +1301,7 @@ int main(int argc, char *argv[]) for (int i = 0; i < g_tileSet->width*g_tileSet->height; ++i) { if (g_tileSet->tiles[i].solid) - rcDebugDrawHeightfieldSolid(*g_tileSet->tiles[i].solid, g_tileSet->bmin, g_tileSet->cs, g_tileSet->ch); + rcDebugDrawHeightfieldSolid(*g_tileSet->tiles[i].solid); } } glDisable(GL_FOG); @@ -1379,7 +1314,7 @@ int main(int argc, char *argv[]) for (int i = 0; i < g_tileSet->width*g_tileSet->height; ++i) { if (g_tileSet->tiles[i].solid) - rcDebugDrawHeightfieldWalkable(*g_tileSet->tiles[i].solid, g_tileSet->bmin, g_tileSet->cs, g_tileSet->ch); + rcDebugDrawHeightfieldWalkable(*g_tileSet->tiles[i].solid); } } glDisable(GL_FOG); @@ -1568,7 +1503,7 @@ int main(int argc, char *argv[]) { static int propScroll = 0; - if (imguiBeginScrollArea(GENID, "Properties", width - 250 - 10, 10, 250, height-20, &propScroll)) + if (imguiBeginScrollArea(GENID, "Properties", width - (250+menuOffset) - 10, 10, 250, height-20, &propScroll)) mouseOverMenu = true; if (imguiButton(GENID, curLevel)) @@ -1672,6 +1607,8 @@ int main(int argc, char *argv[]) int gw = 0, gh = 0; rcCalcGridSize(g_meshBMin, g_meshBMax, cellSize, &gw, &gh); char text[64]; + snprintf(text, 64, "Verts: %.1fk Tris: %.1fk", g_mesh->getVertCount()/1000.0f, g_mesh->getTriCount()/1000.0f); + imguiValue(GENID, text); snprintf(text, 64, "Grid %d x %d", gw, gh); imguiValue(GENID, text); } @@ -1679,7 +1616,7 @@ int main(int argc, char *argv[]) imguiSeparator(); imguiLabel(GENID, "Agent"); imguiSlider(GENID, "Height", &agentHeight, 0.1f, 5.0f, 0.1f); - imguiSlider(GENID, "Ragius", &agentRadius, 0.1f, 5.0f, 0.1f); + imguiSlider(GENID, "Radius", &agentRadius, 0.0f, 5.0f, 0.1f); imguiSlider(GENID, "Max Climb", &agentMaxClimb, 0.1f, 5.0f, 0.1f); imguiSlider(GENID, "Max Slope", &agentMaxSlope, 0.0f, 90.0f, 1.0f); @@ -1716,7 +1653,7 @@ int main(int argc, char *argv[]) drawMode = DRAWMODE_COMPACT_DISTANCE; if (imguiCheck(GENID, "Compact Regions", drawMode == DRAWMODE_COMPACT_REGIONS)) drawMode = DRAWMODE_COMPACT_REGIONS; - if (imguiCheck(GENID, "Region Conections", drawMode == DRAWMODE_REGION_CONNECTIONS)) + if (imguiCheck(GENID, "Region Connections", drawMode == DRAWMODE_REGION_CONNECTIONS)) drawMode = DRAWMODE_REGION_CONNECTIONS; if (imguiCheck(GENID, "Raw Contours", drawMode == DRAWMODE_RAW_CONTOURS)) drawMode = DRAWMODE_RAW_CONTOURS; @@ -1920,65 +1857,12 @@ int main(int argc, char *argv[]) } - if (showSlides) + { - static int slidesScroll = 0; - if (imguiBeginScrollArea(GENID, "Slides", 10, height - 10 - 200 - 20 - 250, 150, 250, &slidesScroll)) - mouseOverMenu = true; - - int slideToLoad = -1; - for (int i = 0; i < slidesList.size; ++i) - { - char msg[256]; - snprintf(msg,256,"%s%s", i == curSlide ? ">> " : (i == nextSlide ? ">" : ""), slidesList.files[i]); - if (imguiItem(GENID1(i), msg)) - slideToLoad = i; - } - if (slideToLoad >= 0) - { - nextSlide = slideToLoad; - showSlides = false; - } - - imguiEndScrollArea(); - } - - if (slideAlpha > 0.01f && curSlide >= 0 && curSlide < slidesList.size) - { - unsigned char alpha = (unsigned char)(slideAlpha*255.0f); -/* const char* file = slidesList.files[curSlide]; - const float len = g_font.getTextLength(file); - g_font.drawText(width/2-len/2, (float)height/2, file, GLFont::RGBA(255,255,255,alpha));*/ - - glEnable(GL_TEXTURE_RECTANGLE_ARB); - slideTex.bind(); - - const float tw = slideTex.getWidth(); - const float th = slideTex.getHeight(); - const float hw = tw/2; //width*0.5f; - const float hh = th/2; //height*0.5f; - - glColor4ub(255,255,255,alpha); - glBegin(GL_QUADS); - glTexCoord2f(0,th); - glVertex2f(hw-tw/2,hh-th/2); - glTexCoord2f(tw,th); - glVertex2f(hw+tw/2,hh-th/2); - glTexCoord2f(tw,0); - glVertex2f(hw+tw/2,hh+th/2); - glTexCoord2f(0,0); - glVertex2f(hw-tw/2,hh+th/2); - glEnd(); - - glDisable(GL_TEXTURE_RECTANGLE_ARB); - } - - -/* { const char msg[] = "W/S/A/D: Move RMB: Rotate LMB: Place Start LMB+SHIFT: Place End"; const float len = g_font.getTextLength(msg); g_font.drawText(width/2-len/2, (float)height-20.0f, msg, GLFont::RGBA(255,255,255,128)); - }*/ + } // Draw start and end point labels if (sposSet && gluProject((GLdouble)spos[0], (GLdouble)spos[1], (GLdouble)spos[2], @@ -1996,25 +1880,6 @@ int main(int argc, char *argv[]) glDisable(GL_TEXTURE_2D); - // Marker - if (mposSet && gluProject((GLdouble)mpos[0], (GLdouble)mpos[1], (GLdouble)mpos[2], - model, proj, view, &x, &y, &z)) - { - // Draw marker circle - glLineWidth(5.0f); - glColor4ub(240,16,0,196); - glBegin(GL_LINE_LOOP); - const float r = 25.0f; - for (int i = 0; i < 20; ++i) - { - const float a = (float)i / 20.0f * M_PI*2; - const float fx = (float)x + cosf(a)*r; - const float fy = (float)y + sinf(a)*r; - glVertex2f(fx,fy); - } - glEnd(); - glLineWidth(1.0f); - } imguiEndFrame(); imguiRender(&drawText);