diff --git a/Detour/Source/DetourStatNavMesh.cpp b/Detour/Source/DetourStatNavMesh.cpp
index b3f23f8..e251963 100755
--- a/Detour/Source/DetourStatNavMesh.cpp
+++ b/Detour/Source/DetourStatNavMesh.cpp
@@ -572,19 +572,16 @@ dtStatNavMesh::~dtStatNavMesh()
bool dtStatNavMesh::init(unsigned char* data, int dataSize, bool ownsData)
{
- m_header = (dtStatNavMeshHeader*)data;
- if (m_header->magic != DT_NAVMESH_MAGIC)
- {
+ dtStatNavMeshHeader* header = (dtStatNavMeshHeader*)data;
+
+ if (header->magic != DT_NAVMESH_MAGIC)
return false;
- }
- if (m_header->version != DT_NAVMESH_VERSION)
- {
+ if (header->version != DT_NAVMESH_VERSION)
return false;
- }
const int headerSize = sizeof(dtStatNavMeshHeader);
- const int vertsSize = sizeof(float)*3*m_header->nverts;
- const int polysSize = sizeof(dtPoly)*m_header->npolys;
+ const int vertsSize = sizeof(float)*3*header->nverts;
+ const int polysSize = sizeof(dtPoly)*header->npolys;
m_verts = (float*)(data + headerSize);
m_polys = (dtPoly*)(data + headerSize + vertsSize);
@@ -604,6 +601,8 @@ bool dtStatNavMesh::init(unsigned char* data, int dataSize, bool ownsData)
m_dataSize = dataSize;
}
+ m_header = header;
+
return true;
}
@@ -629,6 +628,8 @@ const dtPoly* dtStatNavMesh::getPolyByRef(dtPolyRef ref) const
int dtStatNavMesh::findPath(dtPolyRef startRef, dtPolyRef endRef,
dtPolyRef* path, const int maxPathSize)
{
+ if (!m_header) return 0;
+
if (!startRef || !endRef)
return 0;
@@ -769,6 +770,8 @@ int dtStatNavMesh::findStraightPath(const float* startPos, const float* endPos,
const dtPolyRef* path, const int pathSize,
float* straightPath, const int maxStraightPathSize)
{
+ if (!m_header) return 0;
+
if (!maxStraightPathSize)
return 0;
@@ -910,9 +913,9 @@ int dtStatNavMesh::findStraightPath(const float* startPos, const float* endPos,
int dtStatNavMesh::getPolyVerts(dtPolyRef ref, float* verts)
{
+ if (!m_header) return 0;
const dtPoly* poly = getPolyByRef(ref);
- if (!poly)
- return 0;
+ if (!poly) return 0;
float* v = verts;
for (int i = 0; i < (int)poly->nv; ++i)
{
@@ -927,10 +930,10 @@ int dtStatNavMesh::getPolyVerts(dtPolyRef ref, float* verts)
bool dtStatNavMesh::raycast(dtPolyRef centerRef, const float* startPos, const float* endPos,
float& t, dtPolyRef& endRef)
{
- endRef = centerRef;
+ if (!m_header) return 0;
+ if (!centerRef) return 0;
- if (!centerRef)
- return 0;
+ endRef = centerRef;
dtPolyRef prevRef = centerRef;
dtPolyRef curRef = centerRef;
@@ -982,8 +985,8 @@ bool dtStatNavMesh::raycast(dtPolyRef centerRef, const float* startPos, const fl
float dtStatNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos, float maxRadius,
float* hitPos, float* hitNormal)
{
- if (!centerRef)
- return 0;
+ if (!m_header) return 0;
+ if (!centerRef) return 0;
m_nodePool->clear();
m_openList->clear();
@@ -1097,8 +1100,8 @@ int dtStatNavMesh::findPolysAround(dtPolyRef centerRef, const float* centerPos,
unsigned short* resultCost, unsigned short* resultDepth,
const int maxResult)
{
- if (!centerRef)
- return 0;
+ if (!m_header) return 0;
+ if (!centerRef) return 0;
m_nodePool->clear();
m_openList->clear();
@@ -1202,6 +1205,8 @@ int dtStatNavMesh::findPolysAround(dtPolyRef centerRef, const float* centerPos,
int dtStatNavMesh::queryPolygons(const float* center, const float* extents,
unsigned short* ids, const int maxIds)
{
+ if (!m_header) return 0;
+
const dtBVNode* node = &m_bvtree[0];
const dtBVNode* end = &m_bvtree[m_header->nnodes];
@@ -1253,6 +1258,8 @@ int dtStatNavMesh::queryPolygons(const float* center, const float* extents,
dtPolyRef dtStatNavMesh::findNearestPoly(const float* center, const float* extents)
{
+ if (!m_header) return 0;
+
// Get nearby polygons from proximity grid.
unsigned short polys[128];
int npolys = queryPolygons(center, extents, polys, 128);
diff --git a/Recast/Include/RecastDebugDraw.h b/Recast/Include/RecastDebugDraw.h
index 4c4d018..12cf119 100644
--- a/Recast/Include/RecastDebugDraw.h
+++ b/Recast/Include/RecastDebugDraw.h
@@ -40,13 +40,14 @@ void rcDebugDrawHeightfieldSolid(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);
-void rcDebugDrawMeshSlope(const class rcMeshLoaderObj& mesh, const float walkableSlopeAngle);
+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 rcDebugDrawCompactHeightfieldSolid(const struct rcCompactHeightfield& chf);
void rcDebugDrawCompactHeightfieldRegions(const struct rcCompactHeightfield& chf);
void rcDebugDrawCompactHeightfieldDistance(const struct rcCompactHeightfield& chf);
+void rcDebugDrawRegionConnections(const struct rcContourSet& cset, const float* orig, float cs, float ch, const float alpha = 1.0f);
void rcDebugDrawRawContours(const struct rcContourSet& cset, const float* orig, float cs, float ch, const float alpha = 1.0f);
void rcDebugDrawContours(const struct rcContourSet& cset, const float* orig, float cs, float ch);
void rcDebugDrawPolyMesh(const struct rcPolyMesh& mesh);
diff --git a/Recast/Source/RecastContour.cpp b/Recast/Source/RecastContour.cpp
index 73f850f..0fa7a18 100644
--- a/Recast/Source/RecastContour.cpp
+++ b/Recast/Source/RecastContour.cpp
@@ -719,32 +719,6 @@ static bool insertPoint(rcContour* c, int idx, const int* v)
return true;
}
-static void calcBox(const int* v0, const int* v1, int* bounds)
-{
- bounds[0] = rcMin(v0[0], v1[0]);
- bounds[1] = rcMin(v0[1], v1[1]);
- bounds[2] = rcMin(v0[2], v1[2]);
- bounds[3] = rcMax(v0[0], v1[0]);
- bounds[4] = rcMax(v0[1], v1[1]);
- bounds[5] = rcMax(v0[2], v1[2]);
-}
-
-/*inline bool checkOverlapBoxY(const int* a, const int* b)
-{
- bool overlap = true;
- overlap = (a[0] >= b[3+0] || a[3+0] <= b[0]) ? false : overlap;
- overlap = (a[1] >= b[3+1] || a[3+1] <= b[1]) ? false : overlap;
- overlap = (a[2] >= b[3+2] || a[3+2] <= b[2]) ? false : overlap;
- return overlap;
-}*/
-
-inline bool checkOverlapBoxY(const int* a, const int* b)
-{
- bool overlap = true;
- overlap = (a[1] > b[3+1] || a[3+1] < b[1]) ? false : overlap;
- return overlap;
-}
-
static bool conformVertex(rcContourSet* cset, const int* v,
const int pminy, const int pmaxy,
const int nminy, const int nmaxy,
@@ -800,8 +774,6 @@ bool rcFixupAdjacentContours(rcContourSet* cseta, rcContourSet* csetb,
rcTimeVal startTime = rcGetPerformanceTimer();
-// int nbox[6], pbox[6];
-
for (int i = 0; i < cseta->nconts; ++i)
{
const rcContour& c = cseta->conts[i];
diff --git a/Recast/Source/RecastDebugDraw.cpp b/Recast/Source/RecastDebugDraw.cpp
index 7e84eb2..a67b259 100644
--- a/Recast/Source/RecastDebugDraw.cpp
+++ b/Recast/Source/RecastDebugDraw.cpp
@@ -24,16 +24,20 @@
#include "MeshLoaderObj.h"
#include "Recast.h"
-void rcDebugDrawMesh(const rcMeshLoaderObj& mesh, const unsigned char* flags)
+void rcDebugDrawMesh(const rcMeshLoaderObj& mesh, const unsigned char* flags, const float miny, const float maxy)
{
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
@@ -45,7 +49,7 @@ void rcDebugDrawMesh(const rcMeshLoaderObj& mesh, const unsigned char* flags)
glEnd();
}
-void rcDebugDrawMeshSlope(const rcMeshLoaderObj& mesh, const float walkableSlopeAngle)
+void rcDebugDrawMeshSlope(const rcMeshLoaderObj& mesh, const float walkableSlopeAngle, const float miny, const float maxy)
{
const float walkableThr = cosf(walkableSlopeAngle/180.0f*(float)M_PI);
@@ -54,11 +58,14 @@ 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
@@ -148,6 +155,41 @@ 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;
@@ -273,10 +315,11 @@ void rcDebugDrawCompactHeightfieldSolid(const rcCompactHeightfield& chf)
{
const rcCompactSpan& s = chf.spans[i];
const float fy = chf.bmin[1] + (s.y+1)*ch;
- glVertex3f(fx, fy, fz);
+ drawBox2(fx, fy-ch*2, fz, fx+cs, fy, fz+cs);
+/* 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);*/
}
}
}
@@ -308,12 +351,16 @@ void rcDebugDrawCompactHeightfieldRegions(const rcCompactHeightfield& chf)
glColor4fv(col);
}
else
- glColor4ub(0,0,0,128);
+ {
+// glColor4ub(0,0,0,128);
+ glColor3ub(128,128,128);
+ }
const float fy = chf.bmin[1] + (s.y+1)*ch;
- glVertex3f(fx, fy, fz);
+ drawBox2(fx, fy-ch*2, fz, fx+cs, fy, fz+cs);
+/* 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);*/
}
}
}
@@ -345,16 +392,123 @@ 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);
- glVertex3f(fx, fy, fz);
+ drawBox2(fx, fy-ch*2, fz, fx+cs, fy, fz+cs);
+/* 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);*/
}
}
}
glEnd();
}
+static void getContourCenter(const rcContour* cont, const float* orig, float cs, float ch, float* center)
+{
+ center[0] = 0;
+ center[1] = 0;
+ center[2] = 0;
+ if (!cont->nverts)
+ return;
+ for (int i = 0; i < cont->nverts; ++i)
+ {
+ const int* v = &cont->verts[i*4];
+ center[0] += (float)v[0];
+ center[1] += (float)v[1];
+ center[2] += (float)v[2];
+ }
+ const float s = 1.0f / cont->nverts;
+ center[0] *= s * cs;
+ center[1] *= s * ch;
+ center[2] *= s * cs;
+ center[0] += orig[0];
+ center[1] += orig[1] + 4*ch;
+ center[2] += orig[2];
+}
+
+static const rcContour* findContourFromSet(const rcContourSet& cset, unsigned short reg)
+{
+ for (int i = 0; i < cset.nconts; ++i)
+ {
+ if (cset.conts[i].reg == reg)
+ return &cset.conts[i];
+ }
+ return 0;
+}
+
+static void drawArc(const float* p0, const float* p1)
+{
+ static const int NPTS = 8;
+ float pts[NPTS*3];
+ float dir[3];
+ vsub(dir, p1, p0);
+ const float len = sqrtf(vdistSqr(p0, p1));
+ for (int i = 0; i < NPTS; ++i)
+ {
+ float u = (float)i / (float)(NPTS-1);
+ float* p = &pts[i*3];
+ p[0] = p0[0] + dir[0] * u;
+ p[1] = p0[1] + dir[1] * u + (len/4) * (1-rcSqr(u*2-1));
+ p[2] = p0[2] + dir[2] * u;
+ }
+ for (int i = 0; i < NPTS-1; ++i)
+ {
+ glVertex3fv(&pts[i*3]);
+ glVertex3fv(&pts[(i+1)*3]);
+ }
+}
+
+void rcDebugDrawRegionConnections(const rcContourSet& cset, const float* orig, float cs, float ch, const float alpha)
+{
+ // Draw centers
+ float pos[3], pos2[3];
+
+ glColor4ub(0,0,0,196);
+
+ glLineWidth(2.0f);
+ glBegin(GL_LINES);
+ for (int i = 0; i < cset.nconts; ++i)
+ {
+ const rcContour* cont = &cset.conts[i];
+ getContourCenter(cont, orig, cs, ch, pos);
+ for (int j = 0; j < cont->nverts; ++j)
+ {
+ const int* v = &cont->verts[j*4];
+ if (v[3] == 0 || (unsigned short)v[3] < cont->reg) continue;
+ const rcContour* cont2 = findContourFromSet(cset, (unsigned short)v[3]);
+ if (cont2)
+ {
+ getContourCenter(cont2, orig, cs, ch, pos2);
+ drawArc(pos, pos2);
+// glVertex3fv(pos);
+// glVertex3fv(pos2);
+ }
+ }
+ }
+ glEnd();
+
+ float col[4] = { 1,1,1,alpha };
+
+ glPointSize(7.0f);
+ glBegin(GL_POINTS);
+ for (int i = 0; i < cset.nconts; ++i)
+ {
+ const rcContour* cont = &cset.conts[i];
+ intToCol(cont->reg, col);
+ col[0] *= 0.5f;
+ col[1] *= 0.5f;
+ col[2] *= 0.5f;
+ glColor4fv(col);
+ getContourCenter(cont, orig, cs, ch, pos);
+ glVertex3fv(pos);
+ }
+ glEnd();
+
+
+ glLineWidth(1.0f);
+ glPointSize(1.0f);
+}
+
void rcDebugDrawRawContours(const rcContourSet& cset, const float* orig, float cs, float ch, const float alpha)
{
float col[4] = { 1,1,1,alpha };
diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser
index 8c472ea..17d1c6e 100644
--- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser
+++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser
@@ -99,8 +99,8 @@
PBXFileDataSource_Target_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 265705984;
- PBXWorkspaceStateSaveDate = 265705984;
+ PBXPerProjectTemplateStateSaveDate = 265812916;
+ PBXWorkspaceStateSaveDate = 265812916;
};
perUserProjectItems = {
6B09CDFF0FD5563E005637D5 = 6B09CDFF0FD5563E005637D5 /* PBXTextBookmark */;
@@ -145,6 +145,35 @@
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 */;
@@ -170,6 +199,62 @@
6B8DB2D70F93A7A5007FA9E1 = 6B8DB2D70F93A7A5007FA9E1 /* 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 */;
6BB7876B0FC03EAD003C24DB = 6BB7876B0FC03EAD003C24DB /* PBXTextBookmark */;
@@ -191,6 +276,47 @@
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 = {
@@ -339,7 +465,7 @@
fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */;
name = "RecastContour.cpp: 797";
rLen = 0;
- rLoc = 21273;
+ rLoc = 20511;
rType = 0;
vrLen = 742;
vrLoc = 18804;
@@ -349,7 +475,7 @@
fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */;
name = "demo.cpp: 638";
rLen = 0;
- rLoc = 16356;
+ rLoc = 13575;
rType = 0;
vrLen = 1081;
vrLoc = 15593;
@@ -359,7 +485,7 @@
fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */;
name = "RecastContour.cpp: 735";
rLen = 0;
- rLoc = 18404;
+ rLoc = 17834;
rType = 0;
vrLen = 746;
vrLoc = 17754;
@@ -399,7 +525,7 @@
fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */;
name = "RecastContour.cpp: 767";
rLen = 0;
- rLoc = 19212;
+ rLoc = 18476;
rType = 0;
vrLen = 957;
vrLoc = 20651;
@@ -459,7 +585,7 @@
fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */;
name = "RecastContour.cpp: 767";
rLen = 0;
- rLoc = 19212;
+ rLoc = 18476;
rType = 0;
vrLen = 957;
vrLoc = 20651;
@@ -479,7 +605,7 @@
fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */;
name = "demo.cpp: 709";
rLen = 19;
- rLoc = 18154;
+ rLoc = 15373;
rType = 0;
vrLen = 834;
vrLoc = 17855;
@@ -549,7 +675,7 @@
fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */;
name = "demo.cpp: 714";
rLen = 0;
- rLoc = 18427;
+ rLoc = 15646;
rType = 0;
vrLen = 997;
vrLoc = 17616;
@@ -579,7 +705,7 @@
fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */;
name = "demo.cpp: 742";
rLen = 0;
- rLoc = 19583;
+ rLoc = 16802;
rType = 0;
vrLen = 2052;
vrLoc = 18613;
@@ -599,7 +725,7 @@
fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */;
name = "demo.cpp: 742";
rLen = 0;
- rLoc = 19583;
+ rLoc = 16802;
rType = 0;
vrLen = 2052;
vrLoc = 18613;
@@ -619,16 +745,16 @@
fRef = 6B137C6A0F7FCBBB00459200 /* demo.cpp */;
name = "demo.cpp: 1044";
rLen = 0;
- rLoc = 29307;
+ rLoc = 26541;
rType = 0;
vrLen = 812;
vrLoc = 28927;
};
6B137C6A0F7FCBBB00459200 /* demo.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {969, 31664}}";
- sepNavSelRange = "{29222, 0}";
- sepNavVisRange = "{28927, 812}";
+ sepNavIntBoundsRect = "{{0, 0}, {969, 31872}}";
+ sepNavSelRange = "{25878, 0}";
+ sepNavVisRange = "{25484, 807}";
};
};
6B137C6B0F7FCBBB00459200 /* glfont.cpp */ = {
@@ -661,16 +787,16 @@
};
6B137C7E0F7FCBFE00459200 /* Recast.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {969, 5872}}";
- sepNavSelRange = "{12894, 15}";
- sepNavVisRange = "{12216, 1116}";
+ sepNavIntBoundsRect = "{{0, 0}, {969, 6928}}";
+ sepNavSelRange = "{6131, 8}";
+ sepNavVisRange = "{6012, 638}";
};
};
6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {969, 960}}";
- sepNavSelRange = "{1066, 0}";
- sepNavVisRange = "{1034, 1604}";
+ sepNavIntBoundsRect = "{{0, 0}, {969, 976}}";
+ sepNavSelRange = "{2031, 28}";
+ sepNavVisRange = "{1036, 1807}";
};
};
6B137C800F7FCBFE00459200 /* RecastLog.h */ = {
@@ -697,16 +823,16 @@
};
6B137C830F7FCC1100459200 /* RecastContour.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1219, 13632}}";
- sepNavSelRange = "{19267, 0}";
- sepNavVisRange = "{18939, 582}";
+ sepNavIntBoundsRect = "{{0, 0}, {969, 13360}}";
+ sepNavSelRange = "{9576, 0}";
+ sepNavVisRange = "{8864, 937}";
};
};
6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {969, 8112}}";
- sepNavSelRange = "{10218, 0}";
- sepNavVisRange = "{9726, 759}";
+ sepNavIntBoundsRect = "{{0, 0}, {969, 10976}}";
+ sepNavSelRange = "{8149, 0}";
+ sepNavVisRange = "{6919, 807}";
};
};
6B137C850F7FCC1100459200 /* RecastFilter.cpp */ = {
@@ -720,7 +846,7 @@
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {969, 1248}}";
sepNavSelRange = "{1703, 0}";
- sepNavVisRange = "{1527, 299}";
+ sepNavVisRange = "{1314, 512}";
};
};
6B137C870F7FCC1100459200 /* RecastMesh.cpp */ = {
@@ -751,6 +877,317 @@
sepNavVisRange = "{0, 574}";
};
};
+ 6B164AFD0FD6687600D2F919 /* glimage.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {969, 1440}}";
+ sepNavSelRange = "{947, 0}";
+ sepNavVisRange = "{554, 900}";
+ };
+ };
+ 6B164AFF0FD6688000D2F919 /* glimage.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {969, 592}}";
+ sepNavSelRange = "{110, 7}";
+ sepNavVisRange = "{0, 494}";
+ };
+ };
+ 6B164B000FD668B700D2F919 /* stb_image.c */ = {
+ 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 */;
+ name = "glimage.cpp: 55";
+ rLen = 0;
+ rLoc = 947;
+ rType = 0;
+ vrLen = 900;
+ vrLoc = 554;
+ };
+ 6B164B250FD678A500D2F919 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B164AFF0FD6688000D2F919 /* glimage.h */;
+ name = "glimage.h: 12";
+ rLen = 7;
+ rLoc = 110;
+ rType = 0;
+ vrLen = 494;
+ vrLoc = 0;
+ };
+ 6B164B260FD678A500D2F919 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B164B000FD668B700D2F919 /* stb_image.c */;
+ name = "stb_image.c: 3612";
+ rLen = 30;
+ rLoc = 120397;
+ rType = 0;
+ 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 */;
+ name = "glimage.h: 26";
+ rLen = 0;
+ rLoc = 191;
+ rType = 0;
+ vrLen = 606;
+ vrLoc = 104;
+ };
+ 6B164B330FD678A500D2F919 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B164AFD0FD6687600D2F919 /* glimage.cpp */;
+ name = "glimage.cpp: 74";
+ rLen = 0;
+ rLoc = 1364;
+ rType = 0;
+ 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 */;
+ name = "stb_image.c: 3612";
+ rLen = 30;
+ rLoc = 120397;
+ rType = 0;
+ 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 */;
@@ -946,7 +1383,7 @@
hitCount = 0;
ignoreCount = 0;
lineNumber = 5;
- modificationTime = 265642840.2117;
+ modificationTime = 265812977.276666;
state = 0;
};
6B7708F20FBDA96300D21BAE /* PBXTextBookmark */ = {
@@ -1057,7 +1494,7 @@
fRef = 6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */;
name = "DetourDebugDraw.cpp: 151";
rLen = 0;
- rLoc = 4057;
+ rLoc = 4059;
rType = 0;
vrLen = 820;
vrLoc = 3643;
@@ -1067,7 +1504,7 @@
fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */;
name = "RecastDebugDraw.cpp: 356";
rLen = 19;
- rLoc = 9641;
+ rLoc = 13447;
rType = 0;
vrLen = 696;
vrLoc = 8752;
@@ -1092,6 +1529,566 @@
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 */;
+ name = "RecastContour.cpp: 388";
+ rLen = 0;
+ rLoc = 9576;
+ rType = 0;
+ 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;
+ rType = 0;
+ vrLen = 1807;
+ vrLoc = 1036;
+ };
+ 6B8FD19C0FD7ED310059D643 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */;
+ name = "RecastLog.cpp: 68";
+ rLen = 0;
+ rLoc = 1703;
+ rType = 0;
+ 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;
+ 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;
+ rType = 0;
+ vrLen = 697;
+ vrLoc = 9976;
+ };
+ 6B8FD1A30FD7ED310059D643 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */;
+ name = "RecastLog.cpp: 68";
+ rLen = 0;
+ rLoc = 1703;
+ rType = 0;
+ vrLen = 512;
+ vrLoc = 1314;
+ };
+ 6B8FD1A40FD7ED310059D643 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */;
+ name = "RecastFilter.cpp: 235";
+ rLen = 0;
+ rLoc = 6932;
+ 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 */;
+ name = "DetourDebugDraw.cpp: 148";
+ rLen = 0;
+ rLoc = 4022;
+ rType = 0;
+ vrLen = 723;
+ vrLoc = 3786;
+ };
+ 6B8FD1D00FD7F56C0059D643 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */;
+ name = "RecastDebugDraw.cpp: 445";
+ rLen = 0;
+ rLoc = 12111;
+ rType = 0;
+ vrLen = 774;
+ vrLoc = 10865;
+ };
+ 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 */;
@@ -1271,7 +2268,7 @@
fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */;
name = "RecastDebugDraw.cpp: 404";
rLen = 0;
- rLoc = 10218;
+ rLoc = 14072;
rType = 0;
vrLen = 759;
vrLoc = 9726;
@@ -1330,6 +2327,412 @@
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;
+ 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;
+ 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}}";
@@ -1353,16 +2756,16 @@
};
6BDD9E070F91113800904EEF /* DetourDebugDraw.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {969, 2864}}";
- sepNavSelRange = "{4057, 0}";
- sepNavVisRange = "{3643, 820}";
+ sepNavIntBoundsRect = "{{0, 0}, {969, 2880}}";
+ sepNavSelRange = "{4022, 0}";
+ sepNavVisRange = "{3786, 723}";
};
};
6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {969, 19648}}";
- sepNavSelRange = "{26982, 0}";
- sepNavVisRange = "{26481, 1391}";
+ sepNavIntBoundsRect = "{{0, 0}, {969, 19744}}";
+ sepNavSelRange = "{26901, 0}";
+ sepNavVisRange = "{26544, 1426}";
};
};
6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */ = {
diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3
index 63295c0..b9b5094 100644
--- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3
+++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3
@@ -278,13 +278,13 @@
PBXSmartGroupTreeModuleOutlineStateSelectionKey
- 31
+ 34
1
0
PBXSmartGroupTreeModuleOutlineStateVisibleRectKey
- {{0, 0}, {228, 660}}
+ {{0, 24}, {228, 660}}
PBXTopSmartGroupGIDs
@@ -331,7 +331,7 @@
_historyCapacity
0
bookmark
- 6B09CE770FD5BEC6005637D5
+ 6B8FD1DD0FD7F69A0059D643
history
6B8633370F7813A600E2684A
@@ -340,29 +340,32 @@
6B7707EF0FBD90F100D21BAE
6B7707F00FBD90F100D21BAE
6B7708F20FBDA96300D21BAE
- 6BB787680FC03EAD003C24DB
6BB7876A0FC03EAD003C24DB
6BB7876B0FC03EAD003C24DB
6BB7876D0FC03EAD003C24DB
6BB787710FC03EAD003C24DB
6BB7881E0FC0593E003C24DB
6BB7881F0FC0593E003C24DB
- 6BB788220FC0593E003C24DB
6BB788230FC0593E003C24DB
6B8171D70FC327630022159F
- 6B8AD2EA0FCDE25800016452
- 6BB85D1A0FCEA5BD00758966
- 6BB85D2F0FCEA8BE00758966
6BB85D3A0FCEAA6300758966
6B09CDFF0FD5563E005637D5
- 6B09CE5A0FD5BDE6005637D5
- 6B09CE5B0FD5BDE6005637D5
6B09CE5C0FD5BDE6005637D5
6B09CE5D0FD5BDE6005637D5
- 6B09CE5E0FD5BDE6005637D5
6B09CE5F0FD5BDE6005637D5
6B09CE730FD5BEC3005637D5
- 6B09CE740FD5BEC3005637D5
+ 6B164B210FD678A500D2F919
+ 6B164B240FD678A500D2F919
+ 6B164B250FD678A500D2F919
+ 6B164B260FD678A500D2F919
+ 6B8FD18D0FD7C4D10059D643
+ 6B8FD19B0FD7ED310059D643
+ 6B8FD19C0FD7ED310059D643
+ 6B8FD19D0FD7ED310059D643
+ 6B8FD19E0FD7ED310059D643
+ 6B8FD1CF0FD7F56C0059D643
+ 6B8FD1DA0FD7F69A0059D643
+ 6B8FD1DB0FD7F69A0059D643
prevStack
@@ -371,11 +374,8 @@
6B1E02750F924A8500CC0038
6B1E028F0F924D5A00CC0038
6B1E029B0F924D8B00CC0038
- 6B1E02AE0F92530C00CC0038
- 6B1E02BB0F92547D00CC0038
6B1E02FC0F92563500CC0038
6B1E032E0F925D9100CC0038
- 6B8DB2D70F93A7A5007FA9E1
6B8DB38F0F9798DE007FA9E1
6B8DB3900F9798DE007FA9E1
6BB87E0E0F9DE8A300E33F12
@@ -385,45 +385,34 @@
6B7707F70FBD90F100D21BAE
6B7707F90FBD90F100D21BAE
6B7708F70FBDA96300D21BAE
- 6BB787BD0FC03EAD003C24DB
6BB787C30FC03EAD003C24DB
6BB787D40FC03EAD003C24DB
6BB788290FC0593E003C24DB
6BB7882A0FC0593E003C24DB
6BB7882B0FC0593E003C24DB
6BB85D3E0FCEAA6300758966
- 6B09CE050FD5563E005637D5
- 6B09CE060FD5563E005637D5
- 6B09CE070FD5563E005637D5
- 6B09CE080FD5563E005637D5
- 6B09CE090FD5563E005637D5
- 6B09CE0A0FD5563E005637D5
- 6B09CE0B0FD5563E005637D5
- 6B09CE0C0FD5563E005637D5
- 6B09CE0D0FD5563E005637D5
- 6B09CE100FD5563E005637D5
- 6B09CE130FD5563E005637D5
6B09CE1E0FD55805005637D5
6B09CE2D0FD55B4D005637D5
- 6B09CE360FD55B99005637D5
- 6B09CE470FD55FA2005637D5
- 6B09CE480FD55FA2005637D5
- 6B09CE490FD55FA2005637D5
- 6B09CE4A0FD55FA2005637D5
- 6B09CE620FD5BDE6005637D5
- 6B09CE630FD5BDE6005637D5
- 6B09CE640FD5BDE6005637D5
- 6B09CE650FD5BDE6005637D5
- 6B09CE660FD5BDE6005637D5
- 6B09CE670FD5BDE6005637D5
- 6B09CE680FD5BDE6005637D5
- 6B09CE690FD5BDE6005637D5
- 6B09CE6A0FD5BDE6005637D5
- 6B09CE6B0FD5BDE6005637D5
- 6B09CE6C0FD5BDE6005637D5
- 6B09CE6D0FD5BDE6005637D5
- 6B09CE6E0FD5BDE6005637D5
- 6B09CE750FD5BEC3005637D5
+ 6B164B320FD678A500D2F919
+ 6B164B330FD678A500D2F919
+ 6B164B3C0FD678A500D2F919
+ 6BC620900FD7C2380022CACF
+ 6BC620920FD7C2380022CACF
+ 6B8FD1830FD7C3F10059D643
+ 6B8FD1900FD7C4D10059D643
+ 6B8FD1A00FD7ED310059D643
+ 6B8FD1A10FD7ED310059D643
+ 6B8FD1A20FD7ED310059D643
+ 6B8FD1A30FD7ED310059D643
+ 6B8FD1A40FD7ED310059D643
+ 6B8FD1A50FD7ED310059D643
+ 6B8FD1A60FD7ED310059D643
+ 6B8FD1B40FD7EFAB0059D643
+ 6B8FD1BA0FD7F05F0059D643
+ 6B8FD1C10FD7F15D0059D643
+ 6B8FD1D10FD7F56C0059D643
+ 6B8FD1D20FD7F56C0059D643
+ 6B8FD1DC0FD7F69A0059D643
SplitCount
@@ -463,6 +452,8 @@
Frame
{{10, 27}, {1030, 61}}
+ RubberWindowFrame
+ 0 59 1280 719 0 0 1280 778
Module
XCDetailModule
@@ -517,8 +508,6 @@
Frame
{{10, 27}, {1030, 61}}
- RubberWindowFrame
- 0 59 1280 719 0 0 1280 778
Module
PBXBuildResultsModule
@@ -546,11 +535,11 @@
TableOfContents
- 6B09CDD80FD52128005637D5
+ 6B8FD17C0FD7C3230059D643
1CA23ED40692098700951B8B
- 6B09CDD90FD52128005637D5
+ 6B8FD17D0FD7C3230059D643
6B8632A30F78115100E2684A
- 6B09CDDA0FD52128005637D5
+ 6B8FD17E0FD7C3230059D643
1CA23EDF0692099D00951B8B
1CA23EE00692099D00951B8B
1CA23EE10692099D00951B8B
@@ -697,14 +686,14 @@
TableOfContents
- 6B09CDDB0FD52128005637D5
+ 6B8FD1850FD7C3F10059D643
1CCC7628064C1048000F2A68
1CCC7629064C1048000F2A68
- 6B09CDDC0FD52128005637D5
- 6B09CDDD0FD52128005637D5
- 6B09CDDE0FD52128005637D5
- 6B09CDDF0FD52128005637D5
- 6B09CDE00FD52128005637D5
+ 6B8FD1860FD7C3F10059D643
+ 6B8FD1870FD7C3F10059D643
+ 6B8FD1880FD7C3F10059D643
+ 6B8FD1890FD7C3F10059D643
+ 6B8FD18A0FD7C3F10059D643
ToolbarConfiguration
xcode.toolbar.config.debugV3
@@ -734,8 +723,6 @@
5
WindowOrderList
- 6B09CE700FD5BDE6005637D5
- 6B09CE710FD5BDE6005637D5
/Users/memon/Code/recastnavigation/RecastDemo/Build/Xcode/Recast.xcodeproj
WindowString
diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj
index 8ac178c..e6fef95 100644
--- a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj
+++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj
@@ -22,6 +22,8 @@
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 */; };
@@ -62,6 +64,9 @@
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; };
@@ -93,6 +98,9 @@
080E96DDFE201D6D7F000001 /* Classes */ = {
isa = PBXGroup;
children = (
+ 6B164B000FD668B700D2F919 /* stb_image.c */,
+ 6B164AFF0FD6688000D2F919 /* glimage.h */,
+ 6B164AFD0FD6687600D2F919 /* glimage.cpp */,
6BDD9E030F91110C00904EEF /* Detour */,
6B137C7D0F7FCBE800459200 /* Recast */,
6B137C790F7FCBE400459200 /* glfont.h */,
@@ -283,6 +291,8 @@
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/Source/demo.cpp b/RecastDemo/Source/demo.cpp
index 6688f9d..aad4256 100644
--- a/RecastDemo/Source/demo.cpp
+++ b/RecastDemo/Source/demo.cpp
@@ -29,6 +29,7 @@
#include "SDL.h"
#include "SDL_Opengl.h"
#include "GLFont.h"
+#include "GLImage.h"
#include "RecastTimer.h"
#include "MeshLoaderObj.h"
#include "ChunkyTriMesh.h"
@@ -144,6 +145,17 @@ struct FileList
size++;
}
+ static int cmp(const void* a, const void* b)
+ {
+ return strcmp(*(const char**)a, *(const char**)b);
+ }
+
+ void sort()
+ {
+ if (size > 1)
+ qsort(files, size, sizeof(char*), cmp);
+ }
+
char* files[MAX_FILES];
int size;
};
@@ -184,6 +196,7 @@ void scanDirectory(const char* path, const char* ext, FileList& list)
}
closedir(dp);
#endif
+ list.sort();
}
@@ -199,6 +212,7 @@ enum DrawMode
DRAWMODE_COMPACT,
DRAWMODE_COMPACT_DISTANCE,
DRAWMODE_COMPACT_REGIONS,
+ DRAWMODE_REGION_CONNECTIONS,
DRAWMODE_RAW_CONTOURS,
DRAWMODE_BOTH_CONTOURS,
DRAWMODE_CONTOURS,
@@ -257,123 +271,6 @@ rcLog g_log;
rcBuildTimes g_buildTimes;
-struct Portal
-{
- float bmin[3], bmax[3];
-};
-static const int MAX_PORTALS = 2000;
-
-Portal g_portals[MAX_PORTALS];
-int g_portalCount = 0;
-
-Portal g_cportals[MAX_PORTALS];
-int g_cportalCount = 0;
-
-void findContourPortals(const rcContour* cont, const int tx, const int tz, const int tileSize,
- const int climb, const float* bmin, const float cs, const float ch)
-{
- if (!cont) return;
- if (!cont->nverts) return;
- for (int i = 0, j = cont->nverts-1; i < cont->nverts; j=i++)
- {
- const int* vj = &cont->verts[j*4];
- const int* vi = &cont->verts[i*4];
- int edge = 0;
- if (vj[0] == tx && vi[0] == tx)
- edge = 1;
- else if (vj[0] == tx+tileSize && vi[0] == tx+tileSize)
- edge = 2;
- else if (vj[2] == tz && vi[2] == tz)
- edge = 3;
- else if (vj[2] == tz+tileSize && vi[2] == tz+tileSize)
- edge = 4;
-
- if (edge != 0)
- {
- if (g_portalCount >= MAX_PORTALS)
- return;
- Portal& p = g_portals[g_portalCount];
- g_portalCount++;
-
- float v0[3], v1[3];
- v0[0] = bmin[0] + vj[0]*cs;
- v0[1] = bmin[1] + vj[1]*ch;
- v0[2] = bmin[2] + vj[2]*cs;
- v1[0] = bmin[0] + vi[0]*cs;
- v1[1] = bmin[1] + vi[1]*ch;
- v1[2] = bmin[2] + vi[2]*cs;
- vcopy(p.bmin, v0);
- vcopy(p.bmax, v0);
- vmin(p.bmin, v1);
- vmax(p.bmax, v1);
-
- if (edge == 1)
- {
- p.bmin[2] += cs/4;
- p.bmax[2] -= cs/4;
- p.bmax[1] += climb*ch;
- p.bmin[0] -= cs/4;
- p.bmax[0] += cs/4;
- }
- else if (edge == 2)
- {
- p.bmin[2] += cs/4;
- p.bmax[2] -= cs/4;
- p.bmax[1] += climb*ch;
- p.bmin[0] -= cs/4;
- p.bmax[0] += cs/4;
- }
- else if (edge == 3)
- {
- p.bmin[0] += cs/4;
- p.bmax[0] -= cs/4;
- p.bmax[1] += climb*ch;
- p.bmin[2] -= cs/4;
- p.bmax[2] += cs/4;
- }
- else if (edge == 4)
- {
- p.bmin[0] += cs/4;
- p.bmax[0] -= cs/4;
- p.bmax[1] += climb*ch;
- p.bmin[2] -= cs/4;
- p.bmax[2] += cs/4;
- }
- }
- }
-}
-
-void findPortals(const rcContourSet* cset, const int tx, const int ty, const int tileSize,
- const int climb, const float* bmin, const float cs, const float ch)
-{
- if (!cset) return;
- if (!cset->nconts) return;
- for (int i = 0; i < cset->nconts; ++i)
- findContourPortals(&cset->conts[i], tx, ty, tileSize, climb, bmin, cs, ch);
-}
-
-void connectPortals()
-{
- for (int i = 0; i < g_portalCount-1; ++i)
- {
- for (int j = i+1; j < g_portalCount; ++j)
- {
- if (g_portalCount >= MAX_PORTALS)
- return;
- Portal& pi = g_portals[i];
- Portal& pj = g_portals[j];
- Portal& p = g_cportals[g_cportalCount];
- vcopy(p.bmin, pi.bmin);
- vcopy(p.bmax, pi.bmax);
- vmax(p.bmin, pj.bmin);
- vmin(p.bmax, pj.bmax);
- if (p.bmin[0] >= p.bmax[0] || p.bmin[1] >= p.bmax[1] || p.bmin[2] >= p.bmax[2])
- continue;
- g_cportalCount++;
- }
- }
-}
-
bool buildTiledNavigation(const rcConfig& cfg,
const rcMeshLoaderObj* mesh,
const rcChunkyTriMesh* chunkyMesh,
@@ -601,18 +498,6 @@ bool buildTiledNavigation(const rcConfig& cfg,
delete solid;
delete chf;
- g_portalCount = 0;
- g_cportalCount = 0;
-/* for (int y = 0; y < tileSet->height; ++y)
- {
- for (int x = 0; x < tileSet->width; ++x)
- {
- findPortals(tileSet->tiles[x + y*tileSet->width].cset,
- x*tileCfg.tileSize, y*tileCfg.tileSize, tileCfg.tileSize,
- cfg.walkableClimb, cfg.bmin, cfg.cs, cfg.ch);
- }
- }
- connectPortals();*/
for (int y = 0; y < tileSet->height; ++y)
{
@@ -1013,8 +898,8 @@ int main(int argc, char *argv[])
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
- int width = 1024; //1200;
- int height = 768; //700;
+ int width = 1280; //1024; //1200;
+ int height = 800; //768; //700;
SDL_Surface* screen = SDL_SetVideoMode(width, height, 0, SDL_OPENGL /*| SDL_FULLSCREEN*/);
if (!screen)
{
@@ -1045,13 +930,29 @@ int main(int argc, char *argv[])
float tileSize = 0.0f;
int drawMode = DRAWMODE_NAVMESH;
int toolMode = TOOLMODE_PATHFIND;
+ bool showMenu = false;
bool showLevels = false;
bool showLog = false;
- bool showTools = true;
+ bool showTools = false;
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);
+
dtPolyRef startRef = 0, endRef = 0;
@@ -1082,8 +983,8 @@ int main(int argc, char *argv[])
float distanceToWall = 0;
bool sposSet = false, eposSet = false;
bool mposSet = false;
- static const float startCol[4] = { 0.6f, 0.1f, 0.1f, 0.75f };
- static const float endCol[4] = { 0.1f, 0.6f, 0.1f, 0.75f };
+ 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;
glEnable(GL_CULL_FACE);
@@ -1110,10 +1011,34 @@ int main(int argc, char *argv[])
{
case SDL_KEYDOWN:
// Handle any key presses here.
- if(event.key.keysym.sym == SDLK_ESCAPE)
+ if (event.key.keysym.sym == SDLK_ESCAPE)
{
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:
@@ -1212,6 +1137,23 @@ int main(int argc, char *argv[])
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);
@@ -1272,12 +1214,12 @@ int main(int argc, char *argv[])
if (drawMode == DRAWMODE_MESH)
{
if (g_mesh)
- rcDebugDrawMeshSlope(*g_mesh, agentMaxSlope);
+ rcDebugDrawMeshSlope(*g_mesh, agentMaxSlope, g_meshBMin[1], g_meshBMax[1]);
}
else if (drawMode != DRAWMODE_NAVMESH_TRANS)
{
if (g_mesh)
- rcDebugDrawMesh(*g_mesh, 0);
+ rcDebugDrawMesh(*g_mesh, 0, g_meshBMin[1], g_meshBMax[1]);
}
glDisable(GL_FOG);
@@ -1301,13 +1243,13 @@ int main(int argc, char *argv[])
if (npolys)
{
- const float pathCol[4] = {1,0.75f,0,0.25f};
+ const float pathCol[4] = {0,0,0,0.25f}; //{1,0.75f,0,0.25f};
for (int i = 1; i < npolys-1; ++i)
dtDebugDrawStatNavMeshPoly(g_navMesh, polys[i], pathCol);
}
if (nstraightPath)
{
- glColor4ub(220,16,0,220);
+ glColor4ub(128,16,0,220);
glLineWidth(3.0f);
glBegin(GL_LINE_STRIP);
for (int i = 0; i < nstraightPath; ++i)
@@ -1331,7 +1273,7 @@ int main(int argc, char *argv[])
const float pathCol[4] = {1,0.75f,0,0.25f};
dtDebugDrawStatNavMeshPoly(g_navMesh, polys[0], pathCol);
- glColor4ub(220,16,0,220);
+ glColor4ub(128,16,0,220);
glLineWidth(3.0f);
glBegin(GL_LINE_STRIP);
for (int i = 0; i < nstraightPath; ++i)
@@ -1362,7 +1304,7 @@ int main(int argc, char *argv[])
}
else if (toolMode == TOOLMODE_FIND_POLYS_AROUND)
{
- const float pathCol[4] = {1,0.75f,0,0.25f};
+ const float pathCol[4] = {0,0,0,0.25f}; //{1,0.75f,0,0.25f};
for (int i = 0; i < npolys; ++i)
dtDebugDrawStatNavMeshPoly(g_navMesh, polys[i], pathCol);
@@ -1484,6 +1426,29 @@ int main(int argc, char *argv[])
}
glDepthMask(GL_TRUE);
}
+ if (drawMode == DRAWMODE_REGION_CONNECTIONS)
+ {
+ if (g_tileSet)
+ {
+ for (int i = 0; i < g_tileSet->width*g_tileSet->height; ++i)
+ {
+ if (g_tileSet->tiles[i].chf)
+ rcDebugDrawCompactHeightfieldRegions(*(g_tileSet->tiles[i].chf));
+ }
+ glDepthMask(GL_TRUE);
+
+ glDepthMask(GL_FALSE);
+ for (int i = 0; i < g_tileSet->width*g_tileSet->height; ++i)
+ {
+ if (g_tileSet->tiles[i].cset)
+ {
+ // rcDebugDrawRawContours(*(g_tileSet->tiles[i].cset), g_tileSet->bmin, g_tileSet->cs, g_tileSet->ch);
+ rcDebugDrawRegionConnections(*(g_tileSet->tiles[i].cset), g_tileSet->bmin, g_tileSet->cs, g_tileSet->ch);
+ }
+ }
+ glDepthMask(GL_TRUE);
+ }
+ }
if (drawMode == DRAWMODE_POLYMESH)
{
glDepthMask(GL_FALSE);
@@ -1581,19 +1546,7 @@ int main(int argc, char *argv[])
rcDebugDrawBoxWire(g_meshBMin[0], g_meshBMin[1], g_meshBMin[2],
g_meshBMax[0], g_meshBMax[1], g_meshBMax[2], col);
-
- col[0] = 0.1f; col[1] = 0.5f; col[2] = 0.75f; col[3] = 0.5f;
- /* for (int i = 0; i < g_portalCount; ++i)
- {
- rcDebugDrawBoxWire(g_portals[i].bmin[0], g_portals[i].bmin[1], g_portals[i].bmin[2],
- g_portals[i].bmax[0], g_portals[i].bmax[1], g_portals[i].bmax[2], col);
- }*/
- for (int i = 0; i < g_cportalCount; ++i)
- {
- rcDebugDrawBoxWire(g_cportals[i].bmin[0], g_cportals[i].bmin[1], g_cportals[i].bmin[2],
- g_cportals[i].bmax[0], g_cportals[i].bmax[1], g_cportals[i].bmax[2], col);
- }
-
+
glDepthMask(GL_TRUE);
}
@@ -1611,6 +1564,9 @@ int main(int argc, char *argv[])
mouseOverMenu = false;
+ if (showMenu)
+ {
+
static int propScroll = 0;
if (imguiBeginScrollArea(GENID, "Properties", width - 250 - 10, 10, 250, height-20, &propScroll))
mouseOverMenu = true;
@@ -1628,6 +1584,7 @@ int main(int argc, char *argv[])
}
}
+
imguiSeparator();
if (g_mesh)
@@ -1743,12 +1700,12 @@ int main(int argc, char *argv[])
drawMode = DRAWMODE_MESH;
if (imguiCheck(GENID, "Navmesh", drawMode == DRAWMODE_NAVMESH))
drawMode = DRAWMODE_NAVMESH;
- if (imguiCheck(GENID, "Navmesh BVTree", drawMode == DRAWMODE_NAVMESH_BVTREE))
- drawMode = DRAWMODE_NAVMESH_BVTREE;
if (imguiCheck(GENID, "Navmesh Invis", drawMode == DRAWMODE_NAVMESH_INVIS))
drawMode = DRAWMODE_NAVMESH_INVIS;
if (imguiCheck(GENID, "Navmesh Trans", drawMode == DRAWMODE_NAVMESH_TRANS))
drawMode = DRAWMODE_NAVMESH_TRANS;
+ if (imguiCheck(GENID, "Navmesh BVTree", drawMode == DRAWMODE_NAVMESH_BVTREE))
+ drawMode = DRAWMODE_NAVMESH_BVTREE;
if (imguiCheck(GENID, "Voxels", drawMode == DRAWMODE_VOXELS))
drawMode = DRAWMODE_VOXELS;
if (imguiCheck(GENID, "Walkable Voxels", drawMode == DRAWMODE_VOXELS_WALKABLE))
@@ -1759,6 +1716,8 @@ 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))
+ drawMode = DRAWMODE_REGION_CONNECTIONS;
if (imguiCheck(GENID, "Raw Contours", drawMode == DRAWMODE_RAW_CONTOURS))
drawMode = DRAWMODE_RAW_CONTOURS;
if (imguiCheck(GENID, "Both Contours", drawMode == DRAWMODE_BOTH_CONTOURS))
@@ -1769,12 +1728,14 @@ int main(int argc, char *argv[])
drawMode = DRAWMODE_POLYMESH;
imguiEndScrollArea();
+
+ }
// Tools
if (showTools)
{
static int toolsScroll = 0;
- if (imguiBeginScrollArea(GENID, "Tools", 10, 450, 150, 200, &toolsScroll))
+ if (imguiBeginScrollArea(GENID, "Tools", 10, height - 10 - 200, 150, 200, &toolsScroll))
mouseOverMenu = true;
if (imguiCheck(GENID, "Pathfind", toolMode == TOOLMODE_PATHFIND))
@@ -1800,7 +1761,7 @@ int main(int argc, char *argv[])
imguiEndScrollArea();
}
-
+
if (g_navMesh && recalcTool)
{
recalcTool = false;
@@ -1959,7 +1920,65 @@ int main(int argc, char *argv[])
}
- g_font.drawText(10.0f, (float)height-20.0f, "W/S/A/D: Move RMB: Rotate LMB: Place Start LMB+SHIFT: Place End", GLFont::RGBA(255,255,255,128));
+ 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],