diff --git a/Detour/Source/DetourAlloc.cpp b/Detour/Source/DetourAlloc.cpp index e96ab19e..5f671df5 100644 --- a/Detour/Source/DetourAlloc.cpp +++ b/Detour/Source/DetourAlloc.cpp @@ -45,5 +45,6 @@ void* dtAlloc(int size, dtAllocHint hint) void dtFree(void* ptr) { - sFreeFunc(ptr); + if (ptr) + sFreeFunc(ptr); } diff --git a/Recast/Include/Recast.h b/Recast/Include/Recast.h index 08861d58..040653ea 100644 --- a/Recast/Include/Recast.h +++ b/Recast/Include/Recast.h @@ -62,19 +62,6 @@ struct rcSpanPool // Dynamic span-heightfield. struct rcHeightfield { - inline rcHeightfield() : width(0), height(0), spans(0), pools(0), freelist(0) {} - inline ~rcHeightfield() - { - // Delete span array. - delete [] spans; - // Delete span pools. - while (pools) - { - rcSpanPool* next = pools->next; - delete [] reinterpret_cast(pools); - pools = next; - } - } int width, height; // Dimension of the heightfield. float bmin[3], bmax[3]; // Bounding box of the heightfield float cs, ch; // Cell size and height. @@ -100,16 +87,9 @@ struct rcCompactSpan // Compact static heightfield. struct rcCompactHeightfield { - inline rcCompactHeightfield() : - maxDistance(0), maxRegions(0), cells(0), - spans(0), dist(0), areas(0) {} - inline ~rcCompactHeightfield() - { - delete [] cells; - delete [] spans; - delete [] dist; - delete [] areas; - } + rcCompactHeightfield(); + ~rcCompactHeightfield(); + int width, height; // Width and height of the heighfield. int spanCount; // Number of spans in the heightfield. int walkableHeight, walkableClimb; // Agent properties. @@ -125,8 +105,6 @@ struct rcCompactHeightfield struct rcContour { - inline rcContour() : verts(0), nverts(0), rverts(0), nrverts(0) { } - inline ~rcContour() { delete [] verts; delete [] rverts; } int* verts; // Vertex coordinates, each vertex contains 4 components. int nverts; // Number of vertices. int* rverts; // Raw vertex coordinates, each vertex contains 4 components. @@ -137,8 +115,6 @@ struct rcContour struct rcContourSet { - inline rcContourSet() : conts(0), nconts(0) {} - inline ~rcContourSet() { delete [] conts; } rcContour* conts; // Pointer to all contours. int nconts; // Number of contours. float bmin[3], bmax[3]; // Bounding box of the heightfield. @@ -157,11 +133,7 @@ struct rcContourSet // y = bmin[1] + verts[i*3+1]*ch; // z = bmin[2] + verts[i*3+2]*cs; struct rcPolyMesh -{ - inline rcPolyMesh() : verts(0), polys(0), regs(0), flags(0), areas(0), nverts(0), npolys(0), maxpolys(0), nvp(3) {} - - inline ~rcPolyMesh() { delete [] verts; delete [] polys; delete [] regs; delete [] flags; delete [] areas; } - +{ unsigned short* verts; // Vertices of the mesh, 3 elements per vertex. unsigned short* polys; // Polygons of the mesh, nvp*2 elements per polygon. unsigned short* regs; // Region ID of the polygons. @@ -187,14 +159,6 @@ struct rcPolyMesh struct rcPolyMeshDetail { - inline rcPolyMeshDetail() : - meshes(0), verts(0), tris(0), - nmeshes(0), nverts(0), ntris(0) {} - inline ~rcPolyMeshDetail() - { - delete [] meshes; delete [] verts; delete [] tris; - } - unsigned short* meshes; // Pointer to all mesh data. float* verts; // Pointer to all vertex data. unsigned char* tris; // Pointer to all triangle data. @@ -203,35 +167,22 @@ struct rcPolyMeshDetail int ntris; // Number of triangles. }; +// Allocators and destructors for Recast objects. +rcHeightfield* rcAllocHeightfield(); +void rcFreeHeightField(rcHeightfield* hf); -// Simple dynamic array ints. -class rcIntArray -{ - int* m_data; - int m_size, m_cap; -public: - inline rcIntArray() : m_data(0), m_size(0), m_cap(0) {} - inline rcIntArray(int n) : m_data(0), m_size(0), m_cap(n) { m_data = new int[n]; } - inline ~rcIntArray() { delete [] m_data; } - void resize(int n); - inline void push(int item) { resize(m_size+1); m_data[m_size-1] = item; } - inline int pop() { if (m_size > 0) m_size--; return m_data[m_size]; } - inline const int& operator[](int i) const { return m_data[i]; } - inline int& operator[](int i) { return m_data[i]; } - inline int size() const { return m_size; } -}; +rcCompactHeightfield* rcAllocCompactHeightfield(); +void rcFreeCompactHeightfield(rcCompactHeightfield* chf); + +rcContourSet* rcAllocContourSet(); +void rcFreeContourSet(rcContourSet* cset); + +rcPolyMesh* rcAllocPolyMesh(); +void rcFreePolyMesh(rcPolyMesh* pmesh); + +rcPolyMeshDetail* rcAllocPolyMeshDetail(); +void rcFreePolyMeshDetail(rcPolyMeshDetail* dmesh); -// Simple helper class to delete array in scope -template class rcScopedDelete -{ - T* ptr; -public: - inline rcScopedDelete() : ptr(0) {} - inline rcScopedDelete(T* p) : ptr(p) {} - inline ~rcScopedDelete() { delete [] ptr; } - inline operator T*() { return ptr; } - inline T* operator=(T* p) { ptr = p; return ptr; } -}; enum rcSpanFlags { @@ -391,6 +342,10 @@ inline bool rcVequal(const float* p0, const float* p1) return d < thr; } +// Alloc helpers for different Recast objects. +rcHeightfield* rcAllocHeightfield(); +void rcFreeHeightField(rcHeightfield* hf); + // Calculated bounding box of array of vertices. // Params: diff --git a/Recast/Include/RecastAlloc.h b/Recast/Include/RecastAlloc.h new file mode 100644 index 00000000..20dfef19 --- /dev/null +++ b/Recast/Include/RecastAlloc.h @@ -0,0 +1,67 @@ +// +// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#ifndef RECASTALLOC_H +#define RECASTALLOC_H + +enum rcAllocHint +{ + RC_ALLOC_PERM, // Memory persist after a function call. + RC_ALLOC_TEMP // Memory used temporarily within a function. +}; + +typedef void* (rcAllocFunc)(int size, rcAllocHint hint); +typedef void (rcFreeFunc)(void* ptr); + +void rcAllocSetCustom(rcAllocFunc *allocFunc, rcFreeFunc *freeFunc); + +void* rcAlloc(int size, rcAllocHint hint); +void rcFree(void* ptr); + + + +// Simple dynamic array ints. +class rcIntArray +{ + int* m_data; + int m_size, m_cap; +public: + inline rcIntArray() : m_data(0), m_size(0), m_cap(0) {} + inline rcIntArray(int n) : m_data(0), m_size(0), m_cap(n) { m_data = new int[n]; } + inline ~rcIntArray() { delete [] m_data; } + void resize(int n); + inline void push(int item) { resize(m_size+1); m_data[m_size-1] = item; } + inline int pop() { if (m_size > 0) m_size--; return m_data[m_size]; } + inline const int& operator[](int i) const { return m_data[i]; } + inline int& operator[](int i) { return m_data[i]; } + inline int size() const { return m_size; } +}; + +// Simple internal helper class to delete array in scope +template class rcScopedDelete +{ + T* ptr; + inline T* operator=(T* p) { /*ptr = p; return ptr;*/ } +public: + inline rcScopedDelete() : ptr(0) {} + inline rcScopedDelete(T* p) : ptr(p) {} + inline ~rcScopedDelete() { rcFree(ptr); } + inline operator T*() { return ptr; } +}; + +#endif diff --git a/Recast/Source/Recast.cpp b/Recast/Source/Recast.cpp index a41db4a4..481ed356 100644 --- a/Recast/Source/Recast.cpp +++ b/Recast/Source/Recast.cpp @@ -25,26 +25,106 @@ #include "Recast.h" #include "RecastLog.h" #include "RecastTimer.h" +#include "RecastAlloc.h" float rcSqrt(float x) { return sqrtf(x); } -void rcIntArray::resize(int n) +rcHeightfield* rcAllocHeightfield() { - if (n > m_cap) - { - if (!m_cap) m_cap = 8; - while (m_cap < n) m_cap *= 2; - int* newData = new int[m_cap]; - if (m_size && newData) memcpy(newData, m_data, m_size*sizeof(int)); - delete [] m_data; - m_data = newData; - } - m_size = n; + rcHeightfield* hf = (rcHeightfield*)rcAlloc(sizeof(rcHeightfield), RC_ALLOC_PERM); + memset(hf, 0, sizeof(rcHeightfield)); + return hf; } +void rcFreeHeightField(rcHeightfield* hf) +{ + if (!hf) return; + // Delete span array. + rcFree(hf->spans); + // Delete span pools. + while (hf->pools) + { + rcSpanPool* next = hf->pools->next; + rcFree(hf->pools); + hf->pools = next; + } + rcFree(hf); +} + +rcCompactHeightfield* rcAllocCompactHeightfield() +{ + rcCompactHeightfield* chf = (rcCompactHeightfield*)rcAlloc(sizeof(rcCompactHeightfield), RC_ALLOC_PERM); + memset(chf, 0, sizeof(rcCompactHeightfield)); + return chf; +} + +void rcFreeCompactHeightfield(rcCompactHeightfield* chf) +{ + if (!chf) return; + rcFree(chf->cells); + rcFree(chf->spans); + rcFree(chf->dist); + rcFree(chf->areas); + rcFree(chf); +} + +rcContourSet* rcAllocContourSet() +{ + rcContourSet* cset = (rcContourSet*)rcAlloc(sizeof(rcContourSet), RC_ALLOC_PERM); + memset(cset, 0, sizeof(rcContourSet)); + return cset; +} + +void rcFreeContourSet(rcContourSet* cset) +{ + if (!cset) return; + for (int i = 0; i < cset->nconts; ++i) + { + rcFree(cset->conts[i].verts); + rcFree(cset->conts[i].rverts); + } + rcFree(cset->conts); + rcFree(cset); +} + +rcPolyMesh* rcAllocPolyMesh() +{ + rcPolyMesh* pmesh = (rcPolyMesh*)rcAlloc(sizeof(rcPolyMesh), RC_ALLOC_PERM); + memset(pmesh, 0, sizeof(rcPolyMesh)); + return pmesh; +} + +void rcFreePolyMesh(rcPolyMesh* pmesh) +{ + if (!pmesh) return; + rcFree(pmesh->verts); + rcFree(pmesh->polys); + rcFree(pmesh->regs); + rcFree(pmesh->flags); + rcFree(pmesh->areas); + rcFree(pmesh); +} + +rcPolyMeshDetail* rcAllocPolyMeshDetail() +{ + rcPolyMeshDetail* dmesh = (rcPolyMeshDetail*)rcAlloc(sizeof(rcPolyMeshDetail), RC_ALLOC_PERM); + memset(dmesh, 0, sizeof(rcPolyMeshDetail)); + return dmesh; +} + +void rcFreePolyMeshDetail(rcPolyMeshDetail* dmesh) +{ + if (!dmesh) return; + rcFree(dmesh->meshes); + rcFree(dmesh->verts); + rcFree(dmesh->tris); + rcFree(dmesh); +} + + void rcCalcBounds(const float* verts, int nv, float* bmin, float* bmax) { // Calculate bounding box. @@ -70,11 +150,11 @@ bool rcCreateHeightfield(rcHeightfield& hf, int width, int height, { hf.width = width; hf.height = height; - hf.spans = new rcSpan*[hf.width*hf.height]; rcVcopy(hf.bmin, bmin); rcVcopy(hf.bmax, bmax); hf.cs = cs; hf.ch = ch; + hf.spans = (rcSpan**)rcAlloc(sizeof(rcSpan*)*hf.width*hf.height, RC_ALLOC_PERM); if (!hf.spans) return false; memset(hf.spans, 0, sizeof(rcSpan*)*hf.width*hf.height); @@ -150,7 +230,7 @@ bool rcBuildCompactHeightfield(const int walkableHeight, const int walkableClimb chf.bmax[1] += walkableHeight*hf.ch; chf.cs = hf.cs; chf.ch = hf.ch; - chf.cells = new rcCompactCell[w*h]; + chf.cells = (rcCompactCell*)rcAlloc(sizeof(rcCompactCell)*w*h, RC_ALLOC_PERM); if (!chf.cells) { if (rcGetLog()) @@ -158,7 +238,7 @@ bool rcBuildCompactHeightfield(const int walkableHeight, const int walkableClimb return false; } memset(chf.cells, 0, sizeof(rcCompactCell)*w*h); - chf.spans = new rcCompactSpan[spanCount]; + chf.spans = (rcCompactSpan*)rcAlloc(sizeof(rcCompactSpan)*spanCount, RC_ALLOC_PERM); if (!chf.spans) { if (rcGetLog()) @@ -166,7 +246,7 @@ bool rcBuildCompactHeightfield(const int walkableHeight, const int walkableClimb return false; } memset(chf.spans, 0, sizeof(rcCompactSpan)*spanCount); - chf.areas = new unsigned char[spanCount]; + chf.areas = (unsigned char*)rcAlloc(sizeof(unsigned char)*spanCount, RC_ALLOC_PERM); if (!chf.areas) { if (rcGetLog()) diff --git a/Recast/Source/RecastAlloc.cpp b/Recast/Source/RecastAlloc.cpp new file mode 100644 index 00000000..71e347ae --- /dev/null +++ b/Recast/Source/RecastAlloc.cpp @@ -0,0 +1,67 @@ +// +// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include +#include +#include "RecastAlloc.h" + +static void *rcAllocDefault(int size, rcAllocHint) +{ + return malloc(size); +} + +static void rcFreeDefault(void *ptr) +{ + free(ptr); +} + +static rcAllocFunc* sRecastAllocFunc = rcAllocDefault; +static rcFreeFunc* sRecastFreeFunc = rcFreeDefault; + +void rcAllocSetCustom(rcAllocFunc *allocFunc, rcFreeFunc *freeFunc) +{ + sRecastAllocFunc = allocFunc ? allocFunc : rcAllocDefault; + sRecastFreeFunc = freeFunc ? freeFunc : rcFreeDefault; +} + +void* rcAlloc(int size, rcAllocHint hint) +{ + return sRecastAllocFunc(size, hint); +} + +void rcFree(void* ptr) +{ + if (ptr) + sRecastFreeFunc(ptr); +} + + +void rcIntArray::resize(int n) +{ + if (n > m_cap) + { + if (!m_cap) m_cap = 8; + while (m_cap < n) m_cap *= 2; + int* newData = (int*)rcAlloc(m_cap*sizeof(int), RC_ALLOC_TEMP); + if (m_size && newData) memcpy(newData, m_data, m_size*sizeof(int)); + rcFree(m_data); + m_data = newData; + } + m_size = n; +} + diff --git a/Recast/Source/RecastArea.cpp b/Recast/Source/RecastArea.cpp index a8b49e75..da994acb 100644 --- a/Recast/Source/RecastArea.cpp +++ b/Recast/Source/RecastArea.cpp @@ -25,6 +25,7 @@ #include "Recast.h" #include "RecastLog.h" #include "RecastTimer.h" +#include "RecastAlloc.h" bool rcErodeArea(unsigned char areaId, int radius, rcCompactHeightfield& chf) @@ -34,7 +35,7 @@ bool rcErodeArea(unsigned char areaId, int radius, rcCompactHeightfield& chf) rcTimeVal startTime = rcGetPerformanceTimer(); - unsigned char* dist = new unsigned char[chf.spanCount]; + unsigned char* dist = (unsigned char*)rcAlloc(sizeof(unsigned char)*chf.spanCount, RC_ALLOC_TEMP); if (!dist) return false; @@ -195,7 +196,7 @@ bool rcErodeArea(unsigned char areaId, int radius, rcCompactHeightfield& chf) if (dist[i] < thr) chf.areas[i] = 0; - delete [] dist; + rcFree(dist); rcTimeVal endTime = rcGetPerformanceTimer(); diff --git a/Recast/Source/RecastContour.cpp b/Recast/Source/RecastContour.cpp index 632c18f5..6a58f488 100644 --- a/Recast/Source/RecastContour.cpp +++ b/Recast/Source/RecastContour.cpp @@ -23,6 +23,7 @@ #include "Recast.h" #include "RecastLog.h" #include "RecastTimer.h" +#include "RecastAlloc.h" static int getCornerHeight(int x, int y, int i, int dir, @@ -551,7 +552,7 @@ static void getClosestIndices(const int* vertsa, const int nvertsa, static bool mergeContours(rcContour& ca, rcContour& cb, int ia, int ib) { const int maxVerts = ca.nverts + cb.nverts + 2; - int* verts = new int[maxVerts*4]; + int* verts = (int*)rcAlloc(sizeof(int)*maxVerts*4, RC_ALLOC_PERM); if (!verts) return false; @@ -581,11 +582,11 @@ static bool mergeContours(rcContour& ca, rcContour& cb, int ia, int ib) nv++; } - delete [] ca.verts; + rcFree(ca.verts); ca.verts = verts; ca.nverts = nv; - delete [] cb.verts; + rcFree(cb.verts); cb.verts = 0; cb.nverts = 0; @@ -607,16 +608,16 @@ bool rcBuildContours(rcCompactHeightfield& chf, cset.ch = chf.ch; int maxContours = rcMax((int)chf.maxRegions, 8); - cset.conts = new rcContour[maxContours]; + cset.conts = (rcContour*)rcAlloc(sizeof(rcContour)*maxContours, RC_ALLOC_PERM); if (!cset.conts) return false; cset.nconts = 0; - rcScopedDelete flags = new unsigned char[chf.spanCount]; + rcScopedDelete flags = (unsigned char*)rcAlloc(sizeof(unsigned char)*chf.spanCount, RC_ALLOC_TEMP); if (!flags) { if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildContours: Out of memory 'flags'."); + rcGetLog()->log(RC_LOG_ERROR, "rcBuildContours: Out of memory 'flags' (%d).", chf.spanCount); return false; } @@ -696,7 +697,7 @@ bool rcBuildContours(rcCompactHeightfield& chf, // This can happen when there are tiny holes in the heighfield. const int oldMax = maxContours; maxContours *= 2; - rcContour* newConts = new rcContour[maxContours]; + rcContour* newConts = (rcContour*)rcAlloc(sizeof(rcContour)*maxContours, RC_ALLOC_PERM); for (int j = 0; j < cset.nconts; ++j) { newConts[j] = cset.conts[j]; @@ -704,7 +705,7 @@ bool rcBuildContours(rcCompactHeightfield& chf, cset.conts[j].verts = 0; cset.conts[j].rverts = 0; } - delete [] cset.conts; + rcFree(cset.conts); cset.conts = newConts; if (rcGetLog()) @@ -714,11 +715,23 @@ bool rcBuildContours(rcCompactHeightfield& chf, rcContour* cont = &cset.conts[cset.nconts++]; cont->nverts = simplified.size()/4; - cont->verts = new int[cont->nverts*4]; + cont->verts = (int*)rcAlloc(sizeof(int)*cont->nverts*4, RC_ALLOC_PERM); + if (!cont->verts) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildContours: Out of memory 'verts' (%d).", cont->nverts); + return false; + } memcpy(cont->verts, &simplified[0], sizeof(int)*cont->nverts*4); cont->nrverts = verts.size()/4; - cont->rverts = new int[cont->nrverts*4]; + cont->rverts = (int*)rcAlloc(sizeof(int)*cont->nrverts*4, RC_ALLOC_PERM); + if (!cont->rverts) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildContours: Out of memory 'rverts' (%d).", cont->nrverts); + return false; + } memcpy(cont->rverts, &verts[0], sizeof(int)*cont->nrverts*4); /* cont->cx = cont->cy = cont->cz = 0; diff --git a/Recast/Source/RecastMesh.cpp b/Recast/Source/RecastMesh.cpp index 6d3ee188..6c42b01b 100644 --- a/Recast/Source/RecastMesh.cpp +++ b/Recast/Source/RecastMesh.cpp @@ -23,7 +23,7 @@ #include "Recast.h" #include "RecastLog.h" #include "RecastTimer.h" - +#include "RecastAlloc.h" struct rcEdge { @@ -39,15 +39,18 @@ static bool buildMeshAdjacency(unsigned short* polys, const int npolys, // http://www.terathon.com/code/edges.php int maxEdgeCount = npolys*vertsPerPoly; - unsigned short* firstEdge = new unsigned short[nverts + maxEdgeCount]; + unsigned short* firstEdge = (unsigned short*)rcAlloc(sizeof(unsigned short)*(nverts + maxEdgeCount), RC_ALLOC_TEMP); if (!firstEdge) return false; unsigned short* nextEdge = firstEdge + nverts; int edgeCount = 0; - rcEdge* edges = new rcEdge[maxEdgeCount]; + rcEdge* edges = (rcEdge*)rcAlloc(sizeof(rcEdge)*maxEdgeCount, RC_ALLOC_TEMP); if (!edges) + { + rcFree(firstEdge); return false; + } for (int i = 0; i < nverts; i++) firstEdge[i] = RC_MESH_NULL_IDX; @@ -112,8 +115,8 @@ static bool buildMeshAdjacency(unsigned short* polys, const int npolys, } } - delete [] firstEdge; - delete [] edges; + rcFree(firstEdge); + rcFree(edges); return true; } @@ -518,7 +521,7 @@ static int removeVertex(rcPolyMesh& mesh, const unsigned short rem, const int ma return -1; int nedges = 0; - rcScopedDelete edges = new int[numRemovedVerts*nvp*4]; + rcScopedDelete edges = (int*)rcAlloc(sizeof(int)*numRemovedVerts*nvp*4, RC_ALLOC_TEMP); if (!edges) { if (rcGetLog()) @@ -527,7 +530,7 @@ static int removeVertex(rcPolyMesh& mesh, const unsigned short rem, const int ma } int nhole = 0; - rcScopedDelete hole = new int[numRemovedVerts*nvp]; + rcScopedDelete hole = (int*)rcAlloc(sizeof(int)*numRemovedVerts*nvp, RC_ALLOC_TEMP); if (!hole) { if (rcGetLog()) @@ -536,7 +539,7 @@ static int removeVertex(rcPolyMesh& mesh, const unsigned short rem, const int ma } int nhreg = 0; - rcScopedDelete hreg = new int[numRemovedVerts*nvp]; + rcScopedDelete hreg = (int*)rcAlloc(sizeof(int)*numRemovedVerts*nvp, RC_ALLOC_TEMP); if (!hreg) { if (rcGetLog()) @@ -545,7 +548,7 @@ static int removeVertex(rcPolyMesh& mesh, const unsigned short rem, const int ma } int nharea = 0; - rcScopedDelete harea = new int[numRemovedVerts*nvp]; + rcScopedDelete harea = (int*)rcAlloc(sizeof(int)*numRemovedVerts*nvp, RC_ALLOC_TEMP); if (!harea) { if (rcGetLog()) @@ -662,7 +665,7 @@ static int removeVertex(rcPolyMesh& mesh, const unsigned short rem, const int ma break; } - rcScopedDelete tris = new int[nhole*3]; + rcScopedDelete tris = (int*)rcAlloc(sizeof(int)*nhole*3, RC_ALLOC_TEMP); if (!tris) { if (rcGetLog()) @@ -670,7 +673,7 @@ static int removeVertex(rcPolyMesh& mesh, const unsigned short rem, const int ma return 0; } - rcScopedDelete tverts = new int[nhole*4]; + rcScopedDelete tverts = (int*)rcAlloc(sizeof(int)*nhole*4, RC_ALLOC_TEMP); if (!tverts) { if (rcGetLog()) @@ -678,7 +681,7 @@ static int removeVertex(rcPolyMesh& mesh, const unsigned short rem, const int ma return 0; } - rcScopedDelete thole = new int[nhole]; + rcScopedDelete thole = (int*)rcAlloc(sizeof(int)*nhole, RC_ALLOC_TEMP); if (!tverts) { if (rcGetLog()) @@ -707,21 +710,21 @@ static int removeVertex(rcPolyMesh& mesh, const unsigned short rem, const int ma } // Merge the hole triangles back to polygons. - rcScopedDelete polys = new unsigned short[(ntris+1)*nvp]; + rcScopedDelete polys = (unsigned short*)rcAlloc(sizeof(unsigned short)*(ntris+1)*nvp, RC_ALLOC_TEMP); if (!polys) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "removeVertex: Out of memory 'polys' (%d).", (ntris+1)*nvp); return 0; } - rcScopedDelete pregs = new unsigned short[ntris]; + rcScopedDelete pregs = (unsigned short*)rcAlloc(sizeof(unsigned short)*ntris, RC_ALLOC_TEMP); if (!pregs) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "removeVertex: Out of memory 'pregs' (%d).", ntris); return 0; } - rcScopedDelete pareas = new unsigned char[ntris]; + rcScopedDelete pareas = (unsigned char*)rcAlloc(sizeof(unsigned char)*ntris, RC_ALLOC_TEMP); if (!pregs) { if (rcGetLog()) @@ -848,7 +851,7 @@ bool rcBuildPolyMesh(rcContourSet& cset, int nvp, rcPolyMesh& mesh) return false; } - rcScopedDelete vflags = new unsigned char[maxVertices]; + rcScopedDelete vflags = (unsigned char*)rcAlloc(sizeof(unsigned char)*maxVertices, RC_ALLOC_TEMP); if (!vflags) { if (rcGetLog()) @@ -857,28 +860,28 @@ bool rcBuildPolyMesh(rcContourSet& cset, int nvp, rcPolyMesh& mesh) } memset(vflags, 0, maxVertices); - mesh.verts = new unsigned short[maxVertices*3]; + mesh.verts = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxVertices*3, RC_ALLOC_PERM); if (!mesh.verts) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'mesh.verts' (%d).", maxVertices); return false; } - mesh.polys = new unsigned short[maxTris*nvp*2*2]; + mesh.polys = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxTris*nvp*2*2, RC_ALLOC_PERM); if (!mesh.polys) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'mesh.polys' (%d).", maxTris*nvp*2); return false; } - mesh.regs = new unsigned short[maxTris]; + mesh.regs = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxTris, RC_ALLOC_PERM); if (!mesh.regs) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'mesh.regs' (%d).", maxTris); return false; } - mesh.areas = new unsigned char[maxTris]; + mesh.areas = (unsigned char*)rcAlloc(sizeof(unsigned char)*maxTris, RC_ALLOC_PERM); if (!mesh.areas) { if (rcGetLog()) @@ -896,7 +899,7 @@ bool rcBuildPolyMesh(rcContourSet& cset, int nvp, rcPolyMesh& mesh) memset(mesh.regs, 0, sizeof(unsigned short)*maxTris); memset(mesh.areas, 0, sizeof(unsigned char)*maxTris); - rcScopedDelete nextVert = new int[maxVertices]; + rcScopedDelete nextVert = (int*)rcAlloc(sizeof(int)*maxVertices, RC_ALLOC_TEMP); if (!nextVert) { if (rcGetLog()) @@ -905,7 +908,7 @@ bool rcBuildPolyMesh(rcContourSet& cset, int nvp, rcPolyMesh& mesh) } memset(nextVert, 0, sizeof(int)*maxVertices); - rcScopedDelete firstVert = new int[VERTEX_BUCKET_COUNT]; + rcScopedDelete firstVert = (int*)rcAlloc(sizeof(int)*VERTEX_BUCKET_COUNT, RC_ALLOC_TEMP); if (!firstVert) { if (rcGetLog()) @@ -915,21 +918,21 @@ bool rcBuildPolyMesh(rcContourSet& cset, int nvp, rcPolyMesh& mesh) for (int i = 0; i < VERTEX_BUCKET_COUNT; ++i) firstVert[i] = -1; - rcScopedDelete indices = new int[maxVertsPerCont]; + rcScopedDelete indices = (int*)rcAlloc(sizeof(int)*maxVertsPerCont, RC_ALLOC_TEMP); if (!indices) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'indices' (%d).", maxVertsPerCont); return false; } - rcScopedDelete tris = new int[maxVertsPerCont*3]; + rcScopedDelete tris = (int*)rcAlloc(sizeof(int)*maxVertsPerCont*3, RC_ALLOC_TEMP); if (!tris) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'tris' (%d).", maxVertsPerCont*3); return false; } - rcScopedDelete polys = new unsigned short[(maxVertsPerCont+1)*nvp]; + rcScopedDelete polys = (unsigned short*)rcAlloc(sizeof(unsigned short)*(maxVertsPerCont+1)*nvp, RC_ALLOC_TEMP); if (!polys) { if (rcGetLog()) @@ -964,6 +967,8 @@ bool rcBuildPolyMesh(rcContourSet& cset, int nvp, rcPolyMesh& mesh) printf("\t\t%d,%d,%d,%d,\n", v[0], v[1], v[2], v[3]); } printf("\t};\n\tconst int nverts = sizeof(verts)/(sizeof(int)*4);\n");*/ + if (rcGetLog()) + rcGetLog()->log(RC_LOG_WARNING, "rcBuildPolyMesh: Bad triangulation Contour %d.", i); ntris = -ntris; } @@ -1100,7 +1105,7 @@ bool rcBuildPolyMesh(rcContourSet& cset, int nvp, rcPolyMesh& mesh) } // Just allocate the mesh flags array. The user is resposible to fill it. - mesh.flags = new unsigned short[mesh.npolys]; + mesh.flags = (unsigned short*)rcAlloc(sizeof(unsigned short)*mesh.npolys, RC_ALLOC_PERM); if (!mesh.flags) { if (rcGetLog()) @@ -1145,7 +1150,7 @@ bool rcMergePolyMeshes(rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh) } mesh.nverts = 0; - mesh.verts = new unsigned short[maxVerts*3]; + mesh.verts = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxVerts*3, RC_ALLOC_PERM); if (!mesh.verts) { if (rcGetLog()) @@ -1154,7 +1159,7 @@ bool rcMergePolyMeshes(rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh) } mesh.npolys = 0; - mesh.polys = new unsigned short[maxPolys*2*mesh.nvp]; + mesh.polys = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxPolys*2*mesh.nvp, RC_ALLOC_PERM); if (!mesh.polys) { if (rcGetLog()) @@ -1163,7 +1168,7 @@ bool rcMergePolyMeshes(rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh) } memset(mesh.polys, 0xff, sizeof(unsigned short)*maxPolys*2*mesh.nvp); - mesh.regs = new unsigned short[maxPolys]; + mesh.regs = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxPolys, RC_ALLOC_PERM); if (!mesh.regs) { if (rcGetLog()) @@ -1172,7 +1177,7 @@ bool rcMergePolyMeshes(rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh) } memset(mesh.regs, 0, sizeof(unsigned short)*maxPolys); - mesh.areas = new unsigned char[maxPolys]; + mesh.areas = (unsigned char*)rcAlloc(sizeof(unsigned char)*maxPolys, RC_ALLOC_PERM); if (!mesh.areas) { if (rcGetLog()) @@ -1181,7 +1186,7 @@ bool rcMergePolyMeshes(rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh) } memset(mesh.areas, 0, sizeof(unsigned char)*maxPolys); - mesh.flags = new unsigned short[maxPolys]; + mesh.flags = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxPolys, RC_ALLOC_PERM); if (!mesh.flags) { if (rcGetLog()) @@ -1190,7 +1195,7 @@ bool rcMergePolyMeshes(rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh) } memset(mesh.flags, 0, sizeof(unsigned short)*maxPolys); - rcScopedDelete nextVert = new int[maxVerts]; + rcScopedDelete nextVert = (int*)rcAlloc(sizeof(int)*maxVerts, RC_ALLOC_TEMP); if (!nextVert) { if (rcGetLog()) @@ -1199,7 +1204,7 @@ bool rcMergePolyMeshes(rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh) } memset(nextVert, 0, sizeof(int)*maxVerts); - rcScopedDelete firstVert = new int[VERTEX_BUCKET_COUNT]; + rcScopedDelete firstVert = (int*)rcAlloc(sizeof(int)*VERTEX_BUCKET_COUNT, RC_ALLOC_TEMP); if (!firstVert) { if (rcGetLog()) @@ -1209,7 +1214,7 @@ bool rcMergePolyMeshes(rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh) for (int i = 0; i < VERTEX_BUCKET_COUNT; ++i) firstVert[i] = -1; - rcScopedDelete vremap = new unsigned short[maxVertsPerMesh]; + rcScopedDelete vremap = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxVertsPerMesh, RC_ALLOC_PERM); if (!vremap) { if (rcGetLog()) diff --git a/Recast/Source/RecastMeshDetail.cpp b/Recast/Source/RecastMeshDetail.cpp index 85af89ca..c776f286 100644 --- a/Recast/Source/RecastMeshDetail.cpp +++ b/Recast/Source/RecastMeshDetail.cpp @@ -25,6 +25,7 @@ #include "Recast.h" #include "RecastLog.h" #include "RecastTimer.h" +#include "RecastAlloc.h" static const unsigned RC_UNSET_HEIGHT = 0xffff; @@ -32,7 +33,7 @@ static const unsigned RC_UNSET_HEIGHT = 0xffff; struct rcHeightPatch { inline rcHeightPatch() : data(0), xmin(0), ymin(0), width(0), height(0) {} - inline ~rcHeightPatch() { delete [] data; } + inline ~rcHeightPatch() { rcFree(data); } unsigned short* data; int xmin, ymin, width, height; }; @@ -940,14 +941,14 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c int nPolyVerts = 0; int maxhw = 0, maxhh = 0; - rcScopedDelete bounds = new int[mesh.npolys*4]; + rcScopedDelete bounds = (int*)rcAlloc(sizeof(int)*mesh.npolys*4, RC_ALLOC_TEMP); if (!bounds) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMeshDetail: Out of memory 'bounds' (%d).", mesh.npolys*4); return false; } - rcScopedDelete poly = new float[nvp*3]; + rcScopedDelete poly = (float*)rcAlloc(sizeof(float)*nvp*3, RC_ALLOC_TEMP); if (!poly) { if (rcGetLog()) @@ -986,7 +987,7 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c maxhh = rcMax(maxhh, ymax-ymin); } - hp.data = new unsigned short[maxhw*maxhh]; + hp.data = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxhw*maxhh, RC_ALLOC_TEMP); if (!hp.data) { if (rcGetLog()) @@ -997,7 +998,7 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c dmesh.nmeshes = mesh.npolys; dmesh.nverts = 0; dmesh.ntris = 0; - dmesh.meshes = new unsigned short[dmesh.nmeshes*4]; + dmesh.meshes = (unsigned short*)rcAlloc(sizeof(unsigned short)*dmesh.nmeshes*4, RC_ALLOC_PERM); if (!dmesh.meshes) { if (rcGetLog()) @@ -1009,7 +1010,7 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c int tcap = vcap*2; dmesh.nverts = 0; - dmesh.verts = new float[vcap*3]; + dmesh.verts = (float*)rcAlloc(sizeof(float)*vcap*3, RC_ALLOC_PERM); if (!dmesh.verts) { if (rcGetLog()) @@ -1017,7 +1018,7 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c return false; } dmesh.ntris = 0; - dmesh.tris = new unsigned char[tcap*4]; + dmesh.tris = (unsigned char*)rcAlloc(sizeof(unsigned char*)*tcap*4, RC_ALLOC_PERM); if (!dmesh.tris) { if (rcGetLog()) @@ -1087,7 +1088,7 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c while (dmesh.nverts+nverts > vcap) vcap += 256; - float* newv = new float[vcap*3]; + float* newv = (float*)rcAlloc(vcap*3, RC_ALLOC_PERM); if (!newv) { if (rcGetLog()) @@ -1096,7 +1097,7 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c } if (dmesh.nverts) memcpy(newv, dmesh.verts, sizeof(float)*3*dmesh.nverts); - delete [] dmesh.verts; + rcFree(dmesh.verts); dmesh.verts = newv; } for (int j = 0; j < nverts; ++j) @@ -1112,7 +1113,7 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c { while (dmesh.ntris+ntris > tcap) tcap += 256; - unsigned char* newt = new unsigned char[tcap*4]; + unsigned char* newt = (unsigned char*)rcAlloc(sizeof(unsigned char)*tcap*4, RC_ALLOC_PERM); if (!newt) { if (rcGetLog()) @@ -1121,7 +1122,7 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c } if (dmesh.ntris) memcpy(newt, dmesh.tris, sizeof(unsigned char)*4*dmesh.ntris); - delete [] dmesh.tris; + rcFree(dmesh.tris); dmesh.tris = newt; } for (int j = 0; j < ntris; ++j) @@ -1160,7 +1161,7 @@ bool rcMergePolyMeshDetails(rcPolyMeshDetail** meshes, const int nmeshes, rcPoly } mesh.nmeshes = 0; - mesh.meshes = new unsigned short[maxMeshes*4]; + mesh.meshes = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxMeshes*4, RC_ALLOC_PERM); if (!mesh.meshes) { if (rcGetLog()) @@ -1169,7 +1170,7 @@ bool rcMergePolyMeshDetails(rcPolyMeshDetail** meshes, const int nmeshes, rcPoly } mesh.ntris = 0; - mesh.tris = new unsigned char[maxTris*4]; + mesh.tris = (unsigned char*)rcAlloc(sizeof(unsigned char)*maxTris*4, RC_ALLOC_PERM); if (!mesh.tris) { if (rcGetLog()) @@ -1178,7 +1179,7 @@ bool rcMergePolyMeshDetails(rcPolyMeshDetail** meshes, const int nmeshes, rcPoly } mesh.nverts = 0; - mesh.verts = new float[maxVerts*3]; + mesh.verts = (float*)rcAlloc(sizeof(float)*maxVerts*3, RC_ALLOC_PERM); if (!mesh.verts) { if (rcGetLog()) diff --git a/Recast/Source/RecastRasterization.cpp b/Recast/Source/RecastRasterization.cpp index 05c131f1..8c1093db 100644 --- a/Recast/Source/RecastRasterization.cpp +++ b/Recast/Source/RecastRasterization.cpp @@ -22,6 +22,7 @@ #include "Recast.h" #include "RecastTimer.h" #include "RecastLog.h" +#include "RecastAlloc.h" inline bool overlapBounds(const float* amin, const float* amax, const float* bmin, const float* bmax) { @@ -49,7 +50,7 @@ static rcSpan* allocSpan(rcHeightfield& hf) // Create new page. // Allocate memory for the new pool. const int size = (sizeof(rcSpanPool)-sizeof(rcSpan)) + sizeof(rcSpan)*RC_SPANS_PER_POOL; - rcSpanPool* pool = reinterpret_cast(new unsigned char[size]); + rcSpanPool* pool = (rcSpanPool*)rcAlloc(size, RC_ALLOC_PERM); if (!pool) return 0; pool->next = 0; // Add the pool into the list of pools. diff --git a/Recast/Source/RecastRegion.cpp b/Recast/Source/RecastRegion.cpp index 8928dc83..a3a06449 100644 --- a/Recast/Source/RecastRegion.cpp +++ b/Recast/Source/RecastRegion.cpp @@ -25,6 +25,8 @@ #include "Recast.h" #include "RecastLog.h" #include "RecastTimer.h" +#include "RecastAlloc.h" +#include static void calculateDistanceField(rcCompactHeightfield& chf, unsigned short* src, unsigned short& maxDist) @@ -694,8 +696,8 @@ static bool filterSmallRegions(int minRegionSize, int mergeRegionSize, const int w = chf.width; const int h = chf.height; - int nreg = maxRegionId+1; - rcRegion* regions = new rcRegion[nreg]; + const int nreg = maxRegionId+1; + rcRegion* regions = new(rcAlloc(sizeof(rcRegion)*nreg, RC_ALLOC_TEMP)) rcRegion[nreg]; if (!regions) { if (rcGetLog()) @@ -877,7 +879,9 @@ static bool filterSmallRegions(int minRegionSize, int mergeRegionSize, srcReg[i] = regions[srcReg[i]].id; } - delete [] regions; + for (int i = 0; i < nreg; ++i) + regions[i].~rcRegion(); + rcFree(regions); return true; } @@ -889,29 +893,26 @@ bool rcBuildDistanceField(rcCompactHeightfield& chf) if (chf.dist) { - delete [] chf.dist; + rcFree(chf.dist); chf.dist = 0; } - unsigned short* dist0 = new unsigned short[chf.spanCount]; - if (!dist0) + unsigned short* src = (unsigned short*)rcAlloc(sizeof(unsigned short)*chf.spanCount, RC_ALLOC_TEMP); + if (!src) { if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildDistanceField: Out of memory 'dist0' (%d).", chf.spanCount); + rcGetLog()->log(RC_LOG_ERROR, "rcBuildDistanceField: Out of memory 'src' (%d).", chf.spanCount); return false; } - unsigned short* dist1 = new unsigned short[chf.spanCount]; - if (!dist1) + unsigned short* dst = (unsigned short*)rcAlloc(sizeof(unsigned short)*chf.spanCount, RC_ALLOC_TEMP); + if (!dst) { if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildDistanceField: Out of memory 'dist1' (%d).", chf.spanCount); - delete [] dist0; + rcGetLog()->log(RC_LOG_ERROR, "rcBuildDistanceField: Out of memory 'dst' (%d).", chf.spanCount); + rcFree(src); return false; } - unsigned short* src = dist0; - unsigned short* dst = dist1; - unsigned short maxDist = 0; rcTimeVal distStartTime = rcGetPerformanceTimer(); @@ -932,7 +933,7 @@ bool rcBuildDistanceField(rcCompactHeightfield& chf) rcTimeVal blurEndTime = rcGetPerformanceTimer(); - delete [] dst; + rcFree(dst); rcTimeVal endTime = rcGetPerformanceTimer(); @@ -991,7 +992,7 @@ bool rcBuildRegionsMonotone(rcCompactHeightfield& chf, const int h = chf.height; unsigned short id = 1; - rcScopedDelete srcReg = new unsigned short[chf.spanCount]; + rcScopedDelete srcReg = (unsigned short*)rcAlloc(sizeof(unsigned short)*chf.spanCount, RC_ALLOC_TEMP); if (!srcReg) { if (rcGetLog()) @@ -1000,11 +1001,12 @@ bool rcBuildRegionsMonotone(rcCompactHeightfield& chf, } memset(srcReg,0,sizeof(unsigned short)*chf.spanCount); - rcScopedDelete sweeps = new rcSweepSpan[rcMax(chf.width,chf.height)]; + const int nsweeps = rcMax(chf.width,chf.height); + rcScopedDelete sweeps = (rcSweepSpan*)rcAlloc(sizeof(rcSweepSpan)*nsweeps, RC_ALLOC_TEMP); if (!sweeps) { if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "rcBuildRegionsMonotone: Out of memory 'sweeps' (%d).", chf.width); + rcGetLog()->log(RC_LOG_ERROR, "rcBuildRegionsMonotone: Out of memory 'sweeps' (%d).", nsweeps); return false; } @@ -1141,8 +1143,8 @@ bool rcBuildRegions(rcCompactHeightfield& chf, const int w = chf.width; const int h = chf.height; - rcScopedDelete tmp = new unsigned short[chf.spanCount*4]; - if (!tmp) + rcScopedDelete buf = (unsigned short*)rcAlloc(sizeof(unsigned short)*chf.spanCount*4, RC_ALLOC_TEMP); + if (!buf) { if (rcGetLog()) rcGetLog()->log(RC_LOG_ERROR, "rcBuildRegions: Out of memory 'tmp' (%d).", chf.spanCount*4); @@ -1154,10 +1156,10 @@ bool rcBuildRegions(rcCompactHeightfield& chf, rcIntArray stack(1024); rcIntArray visited(1024); - unsigned short* srcReg = tmp; - unsigned short* srcDist = tmp+chf.spanCount; - unsigned short* dstReg = tmp+chf.spanCount*2; - unsigned short* dstDist = tmp+chf.spanCount*3; + unsigned short* srcReg = buf; + unsigned short* srcDist = buf+chf.spanCount; + unsigned short* dstReg = buf+chf.spanCount*2; + unsigned short* dstDist = buf+chf.spanCount*3; memset(srcReg, 0, sizeof(unsigned short)*chf.spanCount); memset(srcDist, 0, sizeof(unsigned short)*chf.spanCount); diff --git a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast index 1b3b9f3a..b5639f85 100755 Binary files a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast and b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast differ diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 9f669bc8..1d072ba9 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -21,7 +21,7 @@ 6BBB4C4C115B7BAD00CF791D /* Sample_TileMesh.cpp:276 */, 6B42164711806B2F006C347B /* DetourDebugDraw.cpp:413 */, 6B5562791193EF9600843384 /* Sample_Debug.cpp:60 */, - 6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1267 */, + 6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1272 */, ); codeSenseManager = 6B8632AA0F78115100E2684A /* Code sense */; executables = ( @@ -549,6 +549,163 @@ 6B98470111E7285500FA177B /* PBXTextBookmark */ = 6B98470111E7285500FA177B /* PBXTextBookmark */; 6B98470211E7285500FA177B /* PBXTextBookmark */ = 6B98470211E7285500FA177B /* PBXTextBookmark */; 6B98470311E7285500FA177B /* PBXTextBookmark */ = 6B98470311E7285500FA177B /* PBXTextBookmark */; + 6B98470911E734A100FA177B /* PBXTextBookmark */ = 6B98470911E734A100FA177B /* PBXTextBookmark */; + 6B98470A11E734A100FA177B /* PBXTextBookmark */ = 6B98470A11E734A100FA177B /* PBXTextBookmark */; + 6B98470B11E734A100FA177B /* PBXTextBookmark */ = 6B98470B11E734A100FA177B /* PBXTextBookmark */; + 6B98470C11E734A100FA177B /* PBXTextBookmark */ = 6B98470C11E734A100FA177B /* PBXTextBookmark */; + 6B98470D11E734A100FA177B /* PBXTextBookmark */ = 6B98470D11E734A100FA177B /* PBXTextBookmark */; + 6B98470E11E734A100FA177B /* PBXTextBookmark */ = 6B98470E11E734A100FA177B /* PBXTextBookmark */; + 6B98470F11E734A100FA177B /* PBXTextBookmark */ = 6B98470F11E734A100FA177B /* PBXTextBookmark */; + 6B98471011E734A100FA177B /* PBXTextBookmark */ = 6B98471011E734A100FA177B /* PBXTextBookmark */; + 6B98471111E734A100FA177B /* PBXTextBookmark */ = 6B98471111E734A100FA177B /* PBXTextBookmark */; + 6B98471211E734A100FA177B /* PBXTextBookmark */ = 6B98471211E734A100FA177B /* PBXTextBookmark */; + 6B98471311E734A100FA177B /* PBXTextBookmark */ = 6B98471311E734A100FA177B /* PBXTextBookmark */; + 6B98471411E734A100FA177B /* PBXTextBookmark */ = 6B98471411E734A100FA177B /* PBXTextBookmark */; + 6B98471511E734A100FA177B /* PBXTextBookmark */ = 6B98471511E734A100FA177B /* PBXTextBookmark */; + 6B98471611E734A100FA177B /* PBXTextBookmark */ = 6B98471611E734A100FA177B /* PBXTextBookmark */; + 6B98471711E734A100FA177B /* PBXTextBookmark */ = 6B98471711E734A100FA177B /* PBXTextBookmark */; + 6B98471811E734A100FA177B /* PBXTextBookmark */ = 6B98471811E734A100FA177B /* PBXTextBookmark */; + 6B98471911E734A100FA177B /* PBXTextBookmark */ = 6B98471911E734A100FA177B /* PBXTextBookmark */; + 6B98471A11E734DF00FA177B /* PBXTextBookmark */ = 6B98471A11E734DF00FA177B /* PBXTextBookmark */; + 6B98471B11E734DF00FA177B /* PBXTextBookmark */ = 6B98471B11E734DF00FA177B /* PBXTextBookmark */; + 6B98471C11E734DF00FA177B /* PBXTextBookmark */ = 6B98471C11E734DF00FA177B /* PBXTextBookmark */; + 6B98471D11E734DF00FA177B /* PBXTextBookmark */ = 6B98471D11E734DF00FA177B /* PBXTextBookmark */; + 6B98471E11E734DF00FA177B /* PBXTextBookmark */ = 6B98471E11E734DF00FA177B /* PBXTextBookmark */; + 6B98471F11E734DF00FA177B /* PBXTextBookmark */ = 6B98471F11E734DF00FA177B /* PBXTextBookmark */; + 6B98472011E734DF00FA177B /* PBXTextBookmark */ = 6B98472011E734DF00FA177B /* PBXTextBookmark */; + 6B98472111E734DF00FA177B /* PBXTextBookmark */ = 6B98472111E734DF00FA177B /* PBXTextBookmark */; + 6B98472211E734DF00FA177B /* PBXTextBookmark */ = 6B98472211E734DF00FA177B /* PBXTextBookmark */; + 6B98472311E734DF00FA177B /* PBXTextBookmark */ = 6B98472311E734DF00FA177B /* PBXTextBookmark */; + 6B98472411E7356200FA177B /* PBXTextBookmark */ = 6B98472411E7356200FA177B /* PBXTextBookmark */; + 6B98472511E7356200FA177B /* PBXTextBookmark */ = 6B98472511E7356200FA177B /* PBXTextBookmark */; + 6B98472611E7356200FA177B /* PBXTextBookmark */ = 6B98472611E7356200FA177B /* PBXTextBookmark */; + 6B98472711E735A300FA177B /* PBXTextBookmark */ = 6B98472711E735A300FA177B /* PBXTextBookmark */; + 6B98472811E735A300FA177B /* PBXTextBookmark */ = 6B98472811E735A300FA177B /* PBXTextBookmark */; + 6B98472911E735A300FA177B /* PBXTextBookmark */ = 6B98472911E735A300FA177B /* PBXTextBookmark */; + 6B98472A11E7366600FA177B /* PBXTextBookmark */ = 6B98472A11E7366600FA177B /* PBXTextBookmark */; + 6B98472B11E7366600FA177B /* PBXTextBookmark */ = 6B98472B11E7366600FA177B /* PBXTextBookmark */; + 6B98472C11E7366600FA177B /* PBXTextBookmark */ = 6B98472C11E7366600FA177B /* PBXTextBookmark */; + 6B98472D11E7366600FA177B /* PBXTextBookmark */ = 6B98472D11E7366600FA177B /* PBXTextBookmark */; + 6B98472E11E7366600FA177B /* PBXTextBookmark */ = 6B98472E11E7366600FA177B /* PBXTextBookmark */; + 6B98472F11E737D800FA177B /* PBXTextBookmark */ = 6B98472F11E737D800FA177B /* PBXTextBookmark */; + 6B98473011E737D800FA177B /* PBXTextBookmark */ = 6B98473011E737D800FA177B /* PBXTextBookmark */; + 6B98473111E737D800FA177B /* PBXTextBookmark */ = 6B98473111E737D800FA177B /* PBXTextBookmark */; + 6B98473211E737D800FA177B /* PBXTextBookmark */ = 6B98473211E737D800FA177B /* PBXTextBookmark */; + 6B98473311E737D800FA177B /* PBXTextBookmark */ = 6B98473311E737D800FA177B /* PBXTextBookmark */; + 6B98473411E737D800FA177B /* PBXTextBookmark */ = 6B98473411E737D800FA177B /* PBXTextBookmark */; + 6B98473511E737D800FA177B /* PBXTextBookmark */ = 6B98473511E737D800FA177B /* PBXTextBookmark */; + 6B98473611E737D800FA177B /* PBXTextBookmark */ = 6B98473611E737D800FA177B /* PBXTextBookmark */; + 6B98473711E737D800FA177B /* PBXTextBookmark */ = 6B98473711E737D800FA177B /* PBXTextBookmark */; + 6B98473811E737D800FA177B /* PBXTextBookmark */ = 6B98473811E737D800FA177B /* PBXTextBookmark */; + 6B98473911E737D800FA177B /* PBXTextBookmark */ = 6B98473911E737D800FA177B /* PBXTextBookmark */; + 6B98473A11E737D800FA177B /* PBXTextBookmark */ = 6B98473A11E737D800FA177B /* PBXTextBookmark */; + 6B98473B11E737D800FA177B /* PBXTextBookmark */ = 6B98473B11E737D800FA177B /* PBXTextBookmark */; + 6B98473C11E737D800FA177B /* PBXTextBookmark */ = 6B98473C11E737D800FA177B /* PBXTextBookmark */; + 6B98473D11E737D800FA177B /* PBXTextBookmark */ = 6B98473D11E737D800FA177B /* PBXTextBookmark */; + 6B98473E11E737D800FA177B /* PBXTextBookmark */ = 6B98473E11E737D800FA177B /* PBXTextBookmark */; + 6B98473F11E737D800FA177B /* PBXTextBookmark */ = 6B98473F11E737D800FA177B /* PBXTextBookmark */; + 6B98474011E737D800FA177B /* PBXTextBookmark */ = 6B98474011E737D800FA177B /* PBXTextBookmark */; + 6B98474111E73ABF00FA177B /* PBXTextBookmark */ = 6B98474111E73ABF00FA177B /* PBXTextBookmark */; + 6B98474211E73ABF00FA177B /* PBXTextBookmark */ = 6B98474211E73ABF00FA177B /* PBXTextBookmark */; + 6B98474311E73ABF00FA177B /* PBXTextBookmark */ = 6B98474311E73ABF00FA177B /* PBXTextBookmark */; + 6B98474411E73ABF00FA177B /* PBXTextBookmark */ = 6B98474411E73ABF00FA177B /* PBXTextBookmark */; + 6B98474511E73ABF00FA177B /* PBXTextBookmark */ = 6B98474511E73ABF00FA177B /* PBXTextBookmark */; + 6B98474611E73ABF00FA177B /* PBXTextBookmark */ = 6B98474611E73ABF00FA177B /* PBXTextBookmark */; + 6B98474711E73ABF00FA177B /* PBXTextBookmark */ = 6B98474711E73ABF00FA177B /* PBXTextBookmark */; + 6B98474811E73ABF00FA177B /* PBXTextBookmark */ = 6B98474811E73ABF00FA177B /* PBXTextBookmark */; + 6B98474911E73ABF00FA177B /* PBXTextBookmark */ = 6B98474911E73ABF00FA177B /* PBXTextBookmark */; + 6B98474A11E73ABF00FA177B /* PBXTextBookmark */ = 6B98474A11E73ABF00FA177B /* PBXTextBookmark */; + 6B98474B11E73ABF00FA177B /* PBXTextBookmark */ = 6B98474B11E73ABF00FA177B /* PBXTextBookmark */; + 6B98474C11E73ABF00FA177B /* PBXTextBookmark */ = 6B98474C11E73ABF00FA177B /* PBXTextBookmark */; + 6B98474D11E73ABF00FA177B /* PBXTextBookmark */ = 6B98474D11E73ABF00FA177B /* PBXTextBookmark */; + 6B98474E11E73ABF00FA177B /* PBXTextBookmark */ = 6B98474E11E73ABF00FA177B /* PBXTextBookmark */; + 6B98474F11E73ABF00FA177B /* PBXTextBookmark */ = 6B98474F11E73ABF00FA177B /* PBXTextBookmark */; + 6B98475011E73ABF00FA177B /* PBXTextBookmark */ = 6B98475011E73ABF00FA177B /* PBXTextBookmark */; + 6B98475111E73ABF00FA177B /* PBXTextBookmark */ = 6B98475111E73ABF00FA177B /* PBXTextBookmark */; + 6B98475211E73ABF00FA177B /* PBXTextBookmark */ = 6B98475211E73ABF00FA177B /* PBXTextBookmark */; + 6B98475311E73ABF00FA177B /* PBXTextBookmark */ = 6B98475311E73ABF00FA177B /* PBXTextBookmark */; + 6B98475411E73ABF00FA177B /* PBXTextBookmark */ = 6B98475411E73ABF00FA177B /* PBXTextBookmark */; + 6B98475511E73ABF00FA177B /* PBXTextBookmark */ = 6B98475511E73ABF00FA177B /* PBXTextBookmark */; + 6B98475611E73ABF00FA177B /* PBXTextBookmark */ = 6B98475611E73ABF00FA177B /* PBXTextBookmark */; + 6B98475711E73ABF00FA177B /* PBXTextBookmark */ = 6B98475711E73ABF00FA177B /* PBXTextBookmark */; + 6B98475811E73ABF00FA177B /* PBXTextBookmark */ = 6B98475811E73ABF00FA177B /* PBXTextBookmark */; + 6B98475D11E73D0100FA177B /* PBXTextBookmark */ = 6B98475D11E73D0100FA177B /* PBXTextBookmark */; + 6B98475E11E73D0100FA177B /* PBXTextBookmark */ = 6B98475E11E73D0100FA177B /* PBXTextBookmark */; + 6B98475F11E73D0100FA177B /* PBXTextBookmark */ = 6B98475F11E73D0100FA177B /* PBXTextBookmark */; + 6B98476011E73D0100FA177B /* PBXTextBookmark */ = 6B98476011E73D0100FA177B /* PBXTextBookmark */; + 6B98476111E73D0100FA177B /* PBXTextBookmark */ = 6B98476111E73D0100FA177B /* PBXTextBookmark */; + 6B98476211E73D0100FA177B /* PBXTextBookmark */ = 6B98476211E73D0100FA177B /* PBXTextBookmark */; + 6B98476311E73D0100FA177B /* PBXTextBookmark */ = 6B98476311E73D0100FA177B /* PBXTextBookmark */; + 6B98476411E73D0100FA177B /* PBXTextBookmark */ = 6B98476411E73D0100FA177B /* PBXTextBookmark */; + 6B98476511E73D0100FA177B /* PBXTextBookmark */ = 6B98476511E73D0100FA177B /* PBXTextBookmark */; + 6B98476611E73D0100FA177B /* PBXTextBookmark */ = 6B98476611E73D0100FA177B /* PBXTextBookmark */; + 6B98476B11E73EC100FA177B /* PBXTextBookmark */ = 6B98476B11E73EC100FA177B /* PBXTextBookmark */; + 6B98476C11E73EC100FA177B /* PBXTextBookmark */ = 6B98476C11E73EC100FA177B /* PBXTextBookmark */; + 6B98476D11E73EC100FA177B /* PBXTextBookmark */ = 6B98476D11E73EC100FA177B /* PBXTextBookmark */; + 6B98476E11E73EC100FA177B /* PBXTextBookmark */ = 6B98476E11E73EC100FA177B /* PBXTextBookmark */; + 6B98477211E7406900FA177B /* PBXTextBookmark */ = 6B98477211E7406900FA177B /* PBXTextBookmark */; + 6B98477311E7406900FA177B /* PBXTextBookmark */ = 6B98477311E7406900FA177B /* PBXTextBookmark */; + 6B98477411E7406900FA177B /* PBXTextBookmark */ = 6B98477411E7406900FA177B /* PBXTextBookmark */; + 6B98477511E7406900FA177B /* PBXTextBookmark */ = 6B98477511E7406900FA177B /* PBXTextBookmark */; + 6B98477611E7406900FA177B /* PBXTextBookmark */ = 6B98477611E7406900FA177B /* PBXTextBookmark */; + 6B98477711E7433F00FA177B /* PBXTextBookmark */ = 6B98477711E7433F00FA177B /* PBXTextBookmark */; + 6B98477811E7433F00FA177B /* PBXTextBookmark */ = 6B98477811E7433F00FA177B /* PBXTextBookmark */; + 6B98477911E7433F00FA177B /* PBXTextBookmark */ = 6B98477911E7433F00FA177B /* PBXTextBookmark */; + 6B98477A11E7433F00FA177B /* PBXTextBookmark */ = 6B98477A11E7433F00FA177B /* PBXTextBookmark */; + 6B98477B11E7444F00FA177B /* PBXTextBookmark */ = 6B98477B11E7444F00FA177B /* PBXTextBookmark */; + 6B98477C11E745E500FA177B /* PBXTextBookmark */ = 6B98477C11E745E500FA177B /* PBXTextBookmark */; + 6B98478311E74AB100FA177B /* PBXTextBookmark */ = 6B98478311E74AB100FA177B /* PBXTextBookmark */; + 6B98478411E74AB100FA177B /* PBXTextBookmark */ = 6B98478411E74AB100FA177B /* PBXTextBookmark */; + 6B98478511E74AB100FA177B /* PBXTextBookmark */ = 6B98478511E74AB100FA177B /* PBXTextBookmark */; + 6B98478611E74AB100FA177B /* PBXTextBookmark */ = 6B98478611E74AB100FA177B /* PBXTextBookmark */; + 6B98478711E74AB100FA177B /* PBXTextBookmark */ = 6B98478711E74AB100FA177B /* PBXTextBookmark */; + 6B98478811E74AB100FA177B /* PBXTextBookmark */ = 6B98478811E74AB100FA177B /* PBXTextBookmark */; + 6B98478911E74AB100FA177B /* PBXTextBookmark */ = 6B98478911E74AB100FA177B /* PBXTextBookmark */; + 6B98478A11E74AB100FA177B /* PBXTextBookmark */ = 6B98478A11E74AB100FA177B /* PBXTextBookmark */; + 6B98478B11E74AB100FA177B /* PBXTextBookmark */ = 6B98478B11E74AB100FA177B /* PBXTextBookmark */; + 6B98478C11E74AB100FA177B /* PBXTextBookmark */ = 6B98478C11E74AB100FA177B /* PBXTextBookmark */; + 6B98478D11E74AB100FA177B /* PBXTextBookmark */ = 6B98478D11E74AB100FA177B /* PBXTextBookmark */; + 6B98478E11E74AB100FA177B /* PBXTextBookmark */ = 6B98478E11E74AB100FA177B /* PBXTextBookmark */; + 6B98478F11E74AB100FA177B /* PBXTextBookmark */ = 6B98478F11E74AB100FA177B /* PBXTextBookmark */; + 6B98479011E74AB100FA177B /* PBXTextBookmark */ = 6B98479011E74AB100FA177B /* PBXTextBookmark */; + 6B98479111E74AB100FA177B /* PBXTextBookmark */ = 6B98479111E74AB100FA177B /* PBXTextBookmark */; + 6B98479211E74AB100FA177B /* PBXTextBookmark */ = 6B98479211E74AB100FA177B /* PBXTextBookmark */; + 6B98479311E74AB100FA177B /* PBXTextBookmark */ = 6B98479311E74AB100FA177B /* PBXTextBookmark */; + 6B98479411E74AB100FA177B /* PBXTextBookmark */ = 6B98479411E74AB100FA177B /* PBXTextBookmark */; + 6B98479511E74AB100FA177B /* PBXTextBookmark */ = 6B98479511E74AB100FA177B /* PBXTextBookmark */; + 6B98479611E74AB100FA177B /* PBXTextBookmark */ = 6B98479611E74AB100FA177B /* PBXTextBookmark */; + 6B98479711E74AB100FA177B /* PBXTextBookmark */ = 6B98479711E74AB100FA177B /* PBXTextBookmark */; + 6B98479911E74B4D00FA177B /* PBXTextBookmark */ = 6B98479911E74B4D00FA177B /* PBXTextBookmark */; + 6B9847A011E74BC100FA177B /* PBXTextBookmark */ = 6B9847A011E74BC100FA177B /* PBXTextBookmark */; + 6B9847A111E74BC100FA177B /* PBXTextBookmark */ = 6B9847A111E74BC100FA177B /* PBXTextBookmark */; + 6B9847A211E74BC100FA177B /* PBXTextBookmark */ = 6B9847A211E74BC100FA177B /* PBXTextBookmark */; + 6B9847A311E74BC100FA177B /* PBXTextBookmark */ = 6B9847A311E74BC100FA177B /* PBXTextBookmark */; + 6B9847A411E74BC100FA177B /* PBXTextBookmark */ = 6B9847A411E74BC100FA177B /* PBXTextBookmark */; + 6B9847A511E74BC100FA177B /* PBXTextBookmark */ = 6B9847A511E74BC100FA177B /* PBXTextBookmark */; + 6B9847A611E74BC100FA177B /* PBXTextBookmark */ = 6B9847A611E74BC100FA177B /* PBXTextBookmark */; + 6B9847A711E74BC100FA177B /* PBXTextBookmark */ = 6B9847A711E74BC100FA177B /* PBXTextBookmark */; + 6B9847A811E74BC100FA177B /* PBXTextBookmark */ = 6B9847A811E74BC100FA177B /* PBXTextBookmark */; + 6B9847A911E74BC100FA177B /* PBXTextBookmark */ = 6B9847A911E74BC100FA177B /* PBXTextBookmark */; + 6B9847AE11E74FAB00FA177B /* PBXTextBookmark */ = 6B9847AE11E74FAB00FA177B /* PBXTextBookmark */; + 6B9847AF11E74FAB00FA177B /* PBXTextBookmark */ = 6B9847AF11E74FAB00FA177B /* PBXTextBookmark */; + 6B9847B011E74FAB00FA177B /* PBXTextBookmark */ = 6B9847B011E74FAB00FA177B /* PBXTextBookmark */; + 6B9847B111E74FAB00FA177B /* PBXTextBookmark */ = 6B9847B111E74FAB00FA177B /* PBXTextBookmark */; + 6B9847B311E74FC000FA177B /* PBXTextBookmark */ = 6B9847B311E74FC000FA177B /* PBXTextBookmark */; + 6B9847B511E750E400FA177B /* PBXTextBookmark */ = 6B9847B511E750E400FA177B /* PBXTextBookmark */; + 6B9847B611E750E400FA177B /* PBXTextBookmark */ = 6B9847B611E750E400FA177B /* PBXTextBookmark */; + 6B9847B911E751AC00FA177B /* PBXTextBookmark */ = 6B9847B911E751AC00FA177B /* PBXTextBookmark */; + 6B9847BA11E751AC00FA177B /* PBXTextBookmark */ = 6B9847BA11E751AC00FA177B /* PBXTextBookmark */; + 6B9847BB11E751AC00FA177B /* PBXTextBookmark */ = 6B9847BB11E751AC00FA177B /* PBXTextBookmark */; + 6B9847BC11E751AC00FA177B /* PBXTextBookmark */ = 6B9847BC11E751AC00FA177B /* PBXTextBookmark */; + 6B9847BD11E751AC00FA177B /* PBXTextBookmark */ = 6B9847BD11E751AC00FA177B /* PBXTextBookmark */; + 6B9847BE11E751AC00FA177B /* PBXTextBookmark */ = 6B9847BE11E751AC00FA177B /* PBXTextBookmark */; + 6B9847BF11E751AC00FA177B /* PBXTextBookmark */ = 6B9847BF11E751AC00FA177B /* PBXTextBookmark */; + 6B9847C011E751AC00FA177B /* PBXTextBookmark */ = 6B9847C011E751AC00FA177B /* PBXTextBookmark */; + 6B9847C111E751AC00FA177B /* PBXTextBookmark */ = 6B9847C111E751AC00FA177B /* PBXTextBookmark */; + 6B9847C311E752CC00FA177B /* PBXTextBookmark */ = 6B9847C311E752CC00FA177B /* PBXTextBookmark */; + 6B9847C411E752CC00FA177B /* PBXTextBookmark */ = 6B9847C411E752CC00FA177B /* PBXTextBookmark */; + 6B9847C511E752CC00FA177B /* PBXTextBookmark */ = 6B9847C511E752CC00FA177B /* PBXTextBookmark */; + 6B9847C611E752CC00FA177B /* PBXTextBookmark */ = 6B9847C611E752CC00FA177B /* PBXTextBookmark */; 6BBB4A96115B4F3400CF791D = 6BBB4A96115B4F3400CF791D /* PBXTextBookmark */; 6BBB4AA1115B4F3400CF791D = 6BBB4AA1115B4F3400CF791D /* PBXTextBookmark */; 6BBB4AA4115B4F3400CF791D = 6BBB4AA4115B4F3400CF791D /* PBXTextBookmark */; @@ -664,7 +821,7 @@ fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 1412"; rLen = 0; - rLoc = 33043; + rLoc = 34410; rType = 0; vrLen = 0; vrLoc = 33043; @@ -719,7 +876,7 @@ vrLen = 470; vrLoc = 1361; }; - 6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1267 */ = { + 6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1272 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -731,9 +888,9 @@ functionName = "rcMergeInternalVertices(rcPolyMesh& mesh, const int mergeThreshold)"; hitCount = 0; ignoreCount = 0; - lineNumber = 1267; + lineNumber = 1272; location = Recast; - modificationTime = 300290792.874095; + modificationTime = 300371830.330569; state = 0; }; 6B10016C11AD1DE70098A59A /* PBXTextBookmark */ = { @@ -741,7 +898,7 @@ fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; name = "RecastArea.cpp: 310"; rLen = 0; - rLoc = 8677; + rLoc = 8743; rType = 0; vrLen = 720; vrLoc = 8170; @@ -751,7 +908,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 606"; rLen = 0; - rLoc = 22981; + rLoc = 21548; rType = 0; vrLen = 1288; vrLoc = 21932; @@ -761,7 +918,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 586"; rLen = 0; - rLoc = 13715; + rLoc = 13781; rType = 0; vrLen = 717; vrLoc = 13456; @@ -848,9 +1005,9 @@ }; 6B137C7E0F7FCBFE00459200 /* Recast.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 10528}}"; - sepNavSelRange = "{11289, 0}"; - sepNavVisRange = "{10558, 1044}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 9600}}"; + sepNavSelRange = "{6865, 0}"; + sepNavVisRange = "{6532, 831}"; }; }; 6B137C800F7FCBFE00459200 /* RecastLog.h */ = { @@ -870,24 +1027,24 @@ }; 6B137C820F7FCC1100459200 /* Recast.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 4624}}"; - sepNavSelRange = "{1156, 0}"; - sepNavVisRange = "{711, 720}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 6112}}"; + sepNavSelRange = "{2627, 0}"; + sepNavVisRange = "{2399, 618}"; }; }; 6B137C830F7FCC1100459200 /* RecastContour.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {845, 13104}}"; - sepNavSelRange = "{8307, 0}"; - sepNavVisRange = "{8008, 654}"; + sepNavIntBoundsRect = "{{0, 0}, {985, 13104}}"; + sepNavSelRange = "{18992, 0}"; + sepNavVisRange = "{18553, 1104}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; 6B137C850F7FCC1100459200 /* RecastFilter.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 2912}}"; - sepNavSelRange = "{2060, 0}"; - sepNavVisRange = "{1563, 681}"; + sepNavIntBoundsRect = "{{0, 0}, {831, 3008}}"; + sepNavSelRange = "{949, 0}"; + sepNavVisRange = "{4932, 852}"; sepNavWindowFrame = "{{15, 78}, {1011, 695}}"; }; }; @@ -900,23 +1057,23 @@ }; 6B137C870F7FCC1100459200 /* RecastMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {909, 20160}}"; - sepNavSelRange = "{3475, 0}"; - sepNavVisRange = "{3208, 916}"; + sepNavIntBoundsRect = "{{0, 0}, {880, 20384}}"; + sepNavSelRange = "{30784, 0}"; + sepNavVisRange = "{30504, 1001}"; }; }; 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {909, 5360}}"; - sepNavSelRange = "{7091, 0}"; - sepNavVisRange = "{6309, 1035}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 5728}}"; + sepNavSelRange = "{9492, 1}"; + sepNavVisRange = "{9046, 878}"; }; }; 6B137C890F7FCC1100459200 /* RecastRegion.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 19760}}"; - sepNavSelRange = "{28706, 0}"; - sepNavVisRange = "{27945, 1195}"; + sepNavIntBoundsRect = "{{0, 0}, {866, 20224}}"; + sepNavSelRange = "{16630, 0}"; + sepNavVisRange = "{16253, 760}"; }; }; 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */ = { @@ -928,9 +1085,9 @@ }; 6B25B6100FFA62AD004F1BC4 /* Sample.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {909, 2368}}"; - sepNavSelRange = "{1197, 0}"; - sepNavVisRange = "{923, 824}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 2320}}"; + sepNavSelRange = "{1152, 0}"; + sepNavVisRange = "{923, 743}"; }; }; 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = { @@ -942,25 +1099,25 @@ }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1112, 14816}}"; + sepNavIntBoundsRect = "{{0, 0}, {1112, 14896}}"; sepNavSelRange = "{5616, 0}"; - sepNavVisRange = "{5105, 520}"; + sepNavVisRange = "{5294, 515}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 1264}}"; - sepNavSelRange = "{922, 0}"; - sepNavVisRange = "{596, 736}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 1360}}"; + sepNavSelRange = "{1406, 0}"; + sepNavVisRange = "{1143, 643}"; sepNavWindowFrame = "{{15, 78}, {1011, 695}}"; }; }; 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 16976}}"; - sepNavSelRange = "{6549, 0}"; - sepNavVisRange = "{6434, 613}"; + sepNavIntBoundsRect = "{{0, 0}, {1160, 16496}}"; + sepNavSelRange = "{30409, 1}"; + sepNavVisRange = "{28200, 2229}"; sepNavWindowFrame = "{{38, 30}, {1214, 722}}"; }; }; @@ -979,7 +1136,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 269"; rLen = 0; - rLoc = 6424; + rLoc = 6457; rType = 0; vrLen = 894; vrLoc = 5630; @@ -989,7 +1146,7 @@ fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; name = "Sample_Debug.cpp: 256"; rLen = 0; - rLoc = 6110; + rLoc = 6143; rType = 0; vrLen = 903; vrLoc = 5645; @@ -999,7 +1156,7 @@ fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; name = "RecastContour.cpp: 386"; rLen = 0; - rLoc = 10329; + rLoc = 10354; rType = 0; vrLen = 799; vrLoc = 9978; @@ -1009,7 +1166,7 @@ fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; name = "RecastContour.cpp: 386"; rLen = 0; - rLoc = 10329; + rLoc = 10354; rType = 0; vrLen = 799; vrLoc = 9978; @@ -1029,7 +1186,7 @@ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; name = "Recast.cpp: 204"; rLen = 0; - rLoc = 5484; + rLoc = 7346; rType = 0; vrLen = 854; vrLoc = 4824; @@ -1039,17 +1196,17 @@ fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; name = "RecastArea.cpp: 492"; rLen = 0; - rLoc = 8890; + rLoc = 8956; rType = 0; - vrLen = 492; - vrLoc = 13431; + vrLen = 0; + vrLoc = 8890; }; 6B2CDD94119818F90090FA4D /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; name = "RecastRegion.cpp: 986"; rLen = 0; - rLoc = 23628; + rLoc = 23784; rType = 0; vrLen = 727; vrLoc = 23143; @@ -1059,7 +1216,7 @@ fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; name = "RecastRegion.cpp: 986"; rLen = 0; - rLoc = 23628; + rLoc = 23784; rType = 0; vrLen = 727; vrLoc = 23143; @@ -1110,7 +1267,7 @@ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 192"; rLen = 0; - rLoc = 4886; + rLoc = 4910; rType = 0; vrLen = 888; vrLoc = 4552; @@ -1149,7 +1306,7 @@ ignoreCount = 0; lineNumber = 413; location = Recast; - modificationTime = 300290792.873728; + modificationTime = 300371830.33011; state = 0; }; 6B4216881180725E006C347B /* PBXTextBookmark */ = { @@ -1198,7 +1355,7 @@ fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; name = "RecastRasterization.cpp: 266"; rLen = 0; - rLoc = 7091; + rLoc = 7103; rType = 0; vrLen = 1035; vrLoc = 6309; @@ -1208,7 +1365,7 @@ fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; name = "RecastRasterization.cpp: 266"; rLen = 0; - rLoc = 7091; + rLoc = 7103; rType = 0; vrLen = 1035; vrLoc = 6309; @@ -1287,7 +1444,7 @@ ignoreCount = 0; lineNumber = 60; location = Recast; - modificationTime = 300290792.873903; + modificationTime = 300371830.330298; state = 0; }; 6B5562DF1193F2A300843384 /* PBXTextBookmark */ = { @@ -1315,7 +1472,7 @@ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 206"; rLen = 65; - rLoc = 5121; + rLoc = 5145; rType = 0; vrLen = 852; vrLoc = 4552; @@ -1335,7 +1492,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 576"; rLen = 0; - rLoc = 20552; + rLoc = 19119; rType = 0; vrLen = 1582; vrLoc = 20271; @@ -1355,7 +1512,7 @@ fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; name = "RecastMesh.cpp: 125"; rLen = 0; - rLoc = 3475; + rLoc = 3604; rType = 0; vrLen = 916; vrLoc = 3208; @@ -1372,9 +1529,9 @@ }; 6B624169103434880002E346 /* RecastMeshDetail.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {909, 19904}}"; - sepNavSelRange = "{20057, 0}"; - sepNavVisRange = "{19690, 691}"; + sepNavIntBoundsRect = "{{0, 0}, {866, 19664}}"; + sepNavSelRange = "{1390, 0}"; + sepNavVisRange = "{969, 651}"; sepNavWindowFrame = "{{61, 36}, {1011, 695}}"; }; }; @@ -1433,7 +1590,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 689"; rLen = 6; - rLoc = 22916; + rLoc = 23037; rType = 0; vrLen = 2394; vrLoc = 20806; @@ -1500,7 +1657,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 689"; rLen = 6; - rLoc = 22916; + rLoc = 23037; rType = 0; vrLen = 2394; vrLoc = 20806; @@ -1527,16 +1684,16 @@ }; 6B8036AC113BAABE005ED67B /* Sample_Debug.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {815, 896}}"; - sepNavSelRange = "{1224, 0}"; - sepNavVisRange = "{981, 430}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 912}}"; + sepNavSelRange = "{1180, 5}"; + sepNavVisRange = "{1048, 640}"; }; }; 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {909, 5200}}"; - sepNavSelRange = "{6110, 0}"; - sepNavVisRange = "{5645, 903}"; + sepNavIntBoundsRect = "{{0, 0}, {852, 5360}}"; + sepNavSelRange = "{3540, 0}"; + sepNavVisRange = "{3263, 355}"; }; }; 6B8632970F78114600E2684A /* Recast */ = { @@ -1558,7 +1715,7 @@ ); executableSystemSymbolLevel = 0; executableUserSymbolLevel = 0; - libgmallocEnabled = 0; + libgmallocEnabled = 1; name = Recast; savedGlobals = { }; @@ -1590,9 +1747,9 @@ }; 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 40592}}"; - sepNavSelRange = "{5878, 0}"; - sepNavVisRange = "{5353, 818}"; + sepNavIntBoundsRect = "{{0, 0}, {929, 40640}}"; + sepNavSelRange = "{4326, 66}"; + sepNavVisRange = "{3822, 682}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; @@ -1605,9 +1762,9 @@ }; 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 8912}}"; - sepNavSelRange = "{973, 26}"; - sepNavVisRange = "{322, 995}"; + sepNavIntBoundsRect = "{{0, 0}, {845, 9056}}"; + sepNavSelRange = "{23131, 14}"; + sepNavVisRange = "{22056, 1160}"; }; }; 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */ = { @@ -1652,7 +1809,7 @@ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; name = "Recast.cpp: 108"; rLen = 76; - rLoc = 2971; + rLoc = 4704; rType = 0; vrLen = 638; vrLoc = 2864; @@ -1662,7 +1819,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 530"; rLen = 0; - rLoc = 18853; + rLoc = 17420; rType = 0; vrLen = 1271; vrLoc = 18406; @@ -1822,7 +1979,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 187"; rLen = 0; - rLoc = 7437; + rLoc = 6507; rType = 0; vrLen = 930; vrLoc = 7051; @@ -1832,7 +1989,7 @@ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; name = "Recast.cpp: 108"; rLen = 76; - rLoc = 2971; + rLoc = 4704; rType = 0; vrLen = 638; vrLoc = 2864; @@ -1842,7 +1999,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 530"; rLen = 0; - rLoc = 18853; + rLoc = 17420; rType = 0; vrLen = 1271; vrLoc = 18406; @@ -2710,7 +2867,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 631"; rLen = 61; - rLoc = 19363; + rLoc = 19484; rType = 0; vrLen = 744; vrLoc = 19048; @@ -2798,7 +2955,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 631"; rLen = 61; - rLoc = 19363; + rLoc = 19484; rType = 0; vrLen = 744; vrLoc = 19048; @@ -2918,7 +3075,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 79"; rLen = 0; - rLoc = 2051; + rLoc = 2115; rType = 0; vrLen = 442; vrLoc = 1857; @@ -3026,7 +3183,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 292"; rLen = 0; - rLoc = 6433; + rLoc = 6499; rType = 0; vrLen = 405; vrLoc = 6130; @@ -3056,7 +3213,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 638"; rLen = 0; - rLoc = 19569; + rLoc = 19690; rType = 0; vrLen = 495; vrLoc = 19531; @@ -3096,7 +3253,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 638"; rLen = 32; - rLoc = 19541; + rLoc = 19662; rType = 0; vrLen = 495; vrLoc = 19531; @@ -3106,7 +3263,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 525"; rLen = 0; - rLoc = 12116; + rLoc = 12182; rType = 0; vrLen = 451; vrLoc = 11924; @@ -3136,7 +3293,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 79"; rLen = 0; - rLoc = 2051; + rLoc = 2115; rType = 0; vrLen = 442; vrLoc = 1857; @@ -3146,7 +3303,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 1005"; rLen = 0; - rLoc = 26405; + rLoc = 26528; rType = 0; vrLen = 1651; vrLoc = 28719; @@ -3206,7 +3363,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 309"; rLen = 0; - rLoc = 6755; + rLoc = 6821; rType = 0; vrLen = 653; vrLoc = 6426; @@ -3216,7 +3373,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 300"; rLen = 0; - rLoc = 6549; + rLoc = 6615; rType = 0; vrLen = 653; vrLoc = 6426; @@ -3236,7 +3393,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 300"; rLen = 0; - rLoc = 6549; + rLoc = 6615; rType = 0; vrLen = 653; vrLoc = 6426; @@ -3443,7 +3600,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 527"; rLen = 9; - rLoc = 12181; + rLoc = 12247; rType = 0; vrLen = 554; vrLoc = 11996; @@ -3453,7 +3610,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 79"; rLen = 0; - rLoc = 2051; + rLoc = 2115; rType = 0; vrLen = 442; vrLoc = 1857; @@ -3473,7 +3630,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 527"; rLen = 9; - rLoc = 12181; + rLoc = 12247; rType = 0; vrLen = 554; vrLoc = 11996; @@ -3483,7 +3640,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 125"; rLen = 0; - rLoc = 3007; + rLoc = 3071; rType = 0; vrLen = 764; vrLoc = 2885; @@ -3493,7 +3650,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 134"; rLen = 0; - rLoc = 3279; + rLoc = 3343; rType = 0; vrLen = 811; vrLoc = 2885; @@ -3503,7 +3660,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 134"; rLen = 0; - rLoc = 3279; + rLoc = 3343; rType = 0; vrLen = 919; vrLoc = 2912; @@ -3523,7 +3680,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 134"; rLen = 0; - rLoc = 3279; + rLoc = 3343; rType = 0; vrLen = 583; vrLoc = 3020; @@ -3533,7 +3690,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 126"; rLen = 0; - rLoc = 3047; + rLoc = 3111; rType = 0; vrLen = 838; vrLoc = 2811; @@ -3543,7 +3700,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 142"; rLen = 0; - rLoc = 3636; + rLoc = 3700; rType = 0; vrLen = 925; vrLoc = 3060; @@ -3560,7 +3717,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 142"; rLen = 0; - rLoc = 3636; + rLoc = 3700; rType = 0; vrLen = 925; vrLoc = 3060; @@ -3580,7 +3737,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 134"; rLen = 0; - rLoc = 3279; + rLoc = 3343; rType = 0; vrLen = 589; vrLoc = 3060; @@ -3654,16 +3811,16 @@ }; 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 1712}}"; - sepNavSelRange = "{1171, 0}"; - sepNavVisRange = "{672, 771}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 2016}}"; + sepNavSelRange = "{3122, 0}"; + sepNavVisRange = "{2643, 707}"; }; }; 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1048, 19104}}"; - sepNavSelRange = "{32897, 0}"; - sepNavVisRange = "{32601, 564}"; + sepNavIntBoundsRect = "{{0, 0}, {1160, 18864}}"; + sepNavSelRange = "{37042, 0}"; + sepNavVisRange = "{36667, 643}"; }; }; 6B98464311E6F9B400FA177B /* PBXTextBookmark */ = { @@ -3701,7 +3858,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 603"; rLen = 22; - rLoc = 22480; + rLoc = 21047; rType = 0; vrLen = 1693; vrLoc = 21104; @@ -3711,7 +3868,7 @@ fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; name = "RecastContour.cpp: 303"; rLen = 0; - rLoc = 8307; + rLoc = 8332; rType = 0; vrLen = 654; vrLoc = 8008; @@ -3721,7 +3878,7 @@ fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; name = "RecastRegion.cpp: 1172"; rLen = 0; - rLoc = 28706; + rLoc = 29019; rType = 0; vrLen = 1195; vrLoc = 27945; @@ -3771,7 +3928,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 643"; rLen = 0; - rLoc = 19637; + rLoc = 19758; rType = 0; vrLen = 819; vrLoc = 19384; @@ -3781,7 +3938,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1107"; rLen = 0; - rLoc = 32990; + rLoc = 33112; rType = 0; vrLen = 1542; vrLoc = 32814; @@ -3791,7 +3948,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 725"; rLen = 0; - rLoc = 17697; + rLoc = 17763; rType = 0; vrLen = 1420; vrLoc = 17300; @@ -3831,7 +3988,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 482"; rLen = 5; - rLoc = 14825; + rLoc = 14907; rType = 0; vrLen = 924; vrLoc = 14303; @@ -3841,7 +3998,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 711"; rLen = 0; - rLoc = 20517; + rLoc = 20541; rType = 0; vrLen = 1336; vrLoc = 19893; @@ -3851,7 +4008,7 @@ fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; name = "RecastRegion.cpp: 1172"; rLen = 0; - rLoc = 28705; + rLoc = 29018; rType = 0; vrLen = 1197; vrLoc = 27943; @@ -3861,7 +4018,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 715"; rLen = 0; - rLoc = 20753; + rLoc = 20777; rType = 0; vrLen = 1335; vrLoc = 19895; @@ -3871,7 +4028,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 603"; rLen = 22; - rLoc = 22480; + rLoc = 21047; rType = 0; vrLen = 1693; vrLoc = 21104; @@ -3881,7 +4038,7 @@ fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; name = "RecastContour.cpp: 303"; rLen = 0; - rLoc = 8307; + rLoc = 8332; rType = 0; vrLen = 654; vrLoc = 8008; @@ -3891,7 +4048,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 712"; rLen = 0; - rLoc = 20562; + rLoc = 20586; rType = 0; vrLen = 1334; vrLoc = 19895; @@ -3901,7 +4058,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 725"; rLen = 0; - rLoc = 17697; + rLoc = 17763; rType = 0; vrLen = 1294; vrLoc = 17426; @@ -3911,7 +4068,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 712"; rLen = 0; - rLoc = 20562; + rLoc = 20586; rType = 0; vrLen = 1334; vrLoc = 19895; @@ -3921,7 +4078,7 @@ fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; name = "RecastRegion.cpp: 1172"; rLen = 0; - rLoc = 28706; + rLoc = 29019; rType = 0; vrLen = 1195; vrLoc = 27945; @@ -3931,7 +4088,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 725"; rLen = 0; - rLoc = 17697; + rLoc = 17763; rType = 0; vrLen = 1211; vrLoc = 17426; @@ -3941,7 +4098,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 712"; rLen = 0; - rLoc = 20564; + rLoc = 20588; rType = 0; vrLen = 1348; vrLoc = 19933; @@ -4011,7 +4168,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 643"; rLen = 0; - rLoc = 19637; + rLoc = 19758; rType = 0; vrLen = 819; vrLoc = 19384; @@ -4021,7 +4178,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1107"; rLen = 0; - rLoc = 32990; + rLoc = 33112; rType = 0; vrLen = 1542; vrLoc = 32814; @@ -4031,7 +4188,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 669"; rLen = 0; - rLoc = 15832; + rLoc = 15898; rType = 0; vrLen = 974; vrLoc = 15440; @@ -4041,7 +4198,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 672"; rLen = 0; - rLoc = 15851; + rLoc = 15917; rType = 0; vrLen = 1014; vrLoc = 15721; @@ -4051,7 +4208,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 524"; rLen = 0; - rLoc = 12130; + rLoc = 12196; rType = 0; vrLen = 432; vrLoc = 11999; @@ -4061,7 +4218,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 322"; rLen = 0; - rLoc = 9733; + rLoc = 9797; rType = 0; vrLen = 400; vrLoc = 9402; @@ -4071,7 +4228,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 651"; rLen = 0; - rLoc = 18749; + rLoc = 18773; rType = 0; vrLen = 490; vrLoc = 18608; @@ -4111,7 +4268,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 524"; rLen = 0; - rLoc = 12130; + rLoc = 12196; rType = 0; vrLen = 432; vrLoc = 11999; @@ -4121,7 +4278,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 322"; rLen = 0; - rLoc = 9733; + rLoc = 9797; rType = 0; vrLen = 400; vrLoc = 9402; @@ -4131,7 +4288,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 651"; rLen = 0; - rLoc = 18749; + rLoc = 18773; rType = 0; vrLen = 490; vrLoc = 18608; @@ -4231,7 +4388,7 @@ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; name = "Recast.cpp: 31"; rLen = 0; - rLoc = 1156; + rLoc = 1181; rType = 0; vrLen = 720; vrLoc = 711; @@ -4241,7 +4398,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 306"; rLen = 23; - rLoc = 11085; + rLoc = 9524; rType = 0; vrLen = 1045; vrLoc = 10558; @@ -4271,7 +4428,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 306"; rLen = 23; - rLoc = 11085; + rLoc = 9524; rType = 0; vrLen = 1045; vrLoc = 10558; @@ -4281,7 +4438,7 @@ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; name = "Recast.cpp: 31"; rLen = 0; - rLoc = 1156; + rLoc = 1181; rType = 0; vrLen = 720; vrLoc = 711; @@ -4291,7 +4448,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 310"; rLen = 0; - rLoc = 11213; + rLoc = 9652; rType = 0; vrLen = 1045; vrLoc = 10558; @@ -4301,7 +4458,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 312"; rLen = 0; - rLoc = 11289; + rLoc = 9728; rType = 0; vrLen = 1044; vrLoc = 10558; @@ -4331,7 +4488,7 @@ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; name = "Recast.h: 312"; rLen = 0; - rLoc = 11289; + rLoc = 9728; rType = 0; vrLen = 1044; vrLoc = 10558; @@ -4963,7 +5120,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 646"; rLen = 0; - rLoc = 19727; + rLoc = 19848; rType = 0; vrLen = 510; vrLoc = 19424; @@ -5011,7 +5168,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 317"; rLen = 0; - rLoc = 9611; + rLoc = 9675; rType = 0; vrLen = 475; vrLoc = 9368; @@ -5021,7 +5178,7 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 597"; rLen = 0; - rLoc = 13861; + rLoc = 13927; rType = 0; vrLen = 667; vrLoc = 13404; @@ -5041,7 +5198,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 646"; rLen = 0; - rLoc = 19727; + rLoc = 19848; rType = 0; vrLen = 510; vrLoc = 19424; @@ -5071,17 +5228,31 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1102"; rLen = 0; - rLoc = 32897; + rLoc = 33019; rType = 0; vrLen = 564; vrLoc = 32601; }; + 6B9846ED11E718F800FA177B /* DetourAlloc.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {826, 592}}"; + sepNavSelRange = "{976, 1}"; + sepNavVisRange = "{322, 1039}"; + }; + }; + 6B9846EE11E718F800FA177B /* DetourAlloc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {826, 816}}"; + sepNavSelRange = "{1491, 0}"; + sepNavVisRange = "{970, 539}"; + }; + }; 6B9846F111E7282C00FA177B /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1102"; rLen = 0; - rLoc = 32897; + rLoc = 33019; rType = 0; vrLen = 564; vrLoc = 32601; @@ -5111,7 +5282,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 518"; rLen = 0; - rLoc = 16035; + rLoc = 16120; rType = 0; vrLen = 632; vrLoc = 15651; @@ -5148,7 +5319,7 @@ fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; name = "Sample_SoloMeshTiled.cpp: 1102"; rLen = 0; - rLoc = 32897; + rLoc = 33019; rType = 0; vrLen = 564; vrLoc = 32601; @@ -5178,7 +5349,7 @@ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; name = "Sample_SoloMeshSimple.cpp: 518"; rLen = 0; - rLoc = 16035; + rLoc = 16120; rType = 0; vrLen = 632; vrLoc = 15651; @@ -5227,7 +5398,7 @@ isa = PBXTextBookmark; fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; rLen = 0; - rLoc = 6779; + rLoc = 6845; rType = 0; }; 6B98470211E7285500FA177B /* PBXTextBookmark */ = { @@ -5245,16 +5416,1608 @@ fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; name = "Sample_TileMesh.cpp: 300"; rLen = 0; - rLoc = 6549; + rLoc = 6615; rType = 0; vrLen = 613; vrLoc = 6434; }; + 6B98470511E733B600FA177B /* RecastAlloc.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {826, 1088}}"; + sepNavSelRange = "{1672, 0}"; + sepNavVisRange = "{1431, 867}"; + }; + }; + 6B98470611E733CF00FA177B /* RecastAlloc.cpp */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.cpp.cpp; + name = RecastAlloc.cpp; + path = /Users/memon/Code/recastnavigation/Detour/Include/RecastAlloc.cpp; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {826, 1136}}"; + sepNavSelRange = "{922, 0}"; + sepNavVisRange = "{249, 928}"; + }; + }; + 6B98470911E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 304"; + rLen = 0; + rLoc = 6701; + rType = 0; + vrLen = 613; + vrLoc = 6434; + }; + 6B98470A11E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9846ED11E718F800FA177B /* DetourAlloc.h */; + name = "DetourAlloc.h: 1"; + rLen = 1361; + rLoc = 0; + rType = 0; + vrLen = 689; + vrLoc = 672; + }; + 6B98470B11E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9846EE11E718F800FA177B /* DetourAlloc.cpp */; + name = "DetourAlloc.cpp: 1"; + rLen = 1509; + rLoc = 0; + rType = 0; + vrLen = 1045; + vrLoc = 0; + }; + 6B98470C11E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 33"; + rLen = 0; + rLoc = 1304; + rType = 0; + vrLen = 1031; + vrLoc = 322; + }; + 6B98470D11E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 41"; + rLen = 0; + rLoc = 1455; + rType = 0; + vrLen = 565; + vrLoc = 969; + }; + 6B98470E11E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 411"; + rLen = 0; + rLoc = 12001; + rType = 0; + vrLen = 1075; + vrLoc = 13086; + }; + 6B98470F11E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 304"; + rLen = 0; + rLoc = 6701; + rType = 0; + vrLen = 613; + vrLoc = 6434; + }; + 6B98471011E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 1"; + rLen = 0; + rLoc = 2298; + rType = 0; + vrLen = 0; + vrLoc = 0; + }; + 6B98471111E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 1"; + rLen = 0; + rLoc = 1869; + rType = 0; + vrLen = 0; + vrLoc = 0; + }; + 6B98471211E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9846ED11E718F800FA177B /* DetourAlloc.h */; + name = "DetourAlloc.h: 1"; + rLen = 1361; + rLoc = 0; + rType = 0; + vrLen = 689; + vrLoc = 672; + }; + 6B98471311E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1054; + vrLoc = 0; + }; + 6B98471411E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9846EE11E718F800FA177B /* DetourAlloc.cpp */; + name = "DetourAlloc.cpp: 1"; + rLen = 1509; + rLoc = 0; + rType = 0; + vrLen = 1045; + vrLoc = 0; + }; + 6B98471511E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 22"; + rLen = 0; + rLoc = 1005; + rType = 0; + vrLen = 1134; + vrLoc = 64; + }; + 6B98471611E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 33"; + rLen = 0; + rLoc = 1304; + rType = 0; + vrLen = 1031; + vrLoc = 322; + }; + 6B98471711E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 41"; + rLen = 0; + rLoc = 1455; + rType = 0; + vrLen = 565; + vrLoc = 969; + }; + 6B98471811E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 411"; + rLen = 0; + rLoc = 12001; + rType = 0; + vrLen = 1075; + vrLoc = 13086; + }; + 6B98471911E734A100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 68"; + rLen = 0; + rLoc = 3556; + rType = 0; + vrLen = 670; + vrLoc = 1685; + }; + 6B98471A11E734DF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 552"; + rLen = 14; + rLoc = 23131; + rType = 0; + vrLen = 1160; + vrLoc = 22056; + }; + 6B98471B11E734DF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 156"; + rLen = 66; + rLoc = 4326; + rType = 0; + vrLen = 682; + vrLoc = 3822; + }; + 6B98471C11E734DF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 41"; + rLen = 0; + rLoc = 1455; + rType = 0; + vrLen = 590; + vrLoc = 944; + }; + 6B98471D11E734DF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 69"; + rLen = 0; + rLoc = 3556; + rType = 0; + vrLen = 620; + vrLoc = 1685; + }; + 6B98471E11E734DF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 69"; + rLen = 0; + rLoc = 3556; + rType = 0; + vrLen = 636; + vrLoc = 1685; + }; + 6B98471F11E734DF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 224"; + rLen = 0; + rLoc = 5791; + rType = 0; + vrLen = 919; + vrLoc = 5296; + }; + 6B98472011E734DF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 552"; + rLen = 14; + rLoc = 23131; + rType = 0; + vrLen = 1160; + vrLoc = 22056; + }; + 6B98472111E734DF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 156"; + rLen = 66; + rLoc = 4326; + rType = 0; + vrLen = 682; + vrLoc = 3822; + }; + 6B98472211E734DF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 41"; + rLen = 0; + rLoc = 1455; + rType = 0; + vrLen = 590; + vrLoc = 944; + }; + 6B98472311E734DF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 68"; + rLen = 0; + rLoc = 3556; + rType = 0; + vrLen = 681; + vrLoc = 1685; + }; + 6B98472411E7356200FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 75"; + rLen = 0; + rLoc = 3556; + rType = 0; + vrLen = 681; + vrLoc = 1685; + }; + 6B98472511E7356200FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 75"; + rLen = 0; + rLoc = 3556; + rType = 0; + vrLen = 681; + vrLoc = 1685; + }; + 6B98472611E7356200FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 211"; + rLen = 0; + rLoc = 7304; + rType = 0; + vrLen = 878; + vrLoc = 7562; + }; + 6B98472711E735A300FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 64"; + rLen = 0; + rLoc = 2680; + rType = 0; + vrLen = 865; + vrLoc = 2453; + }; + 6B98472811E735A300FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 64"; + rLen = 0; + rLoc = 2680; + rType = 0; + vrLen = 865; + vrLoc = 2453; + }; + 6B98472911E735A300FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 65"; + rLen = 0; + rLoc = 1185; + rType = 0; + vrLen = 483; + vrLoc = 1428; + }; + 6B98472A11E7366600FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 91"; + rLen = 81; + rLoc = 3397; + rType = 0; + vrLen = 999; + vrLoc = 3193; + }; + 6B98472B11E7366600FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 71"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 403; + vrLoc = 1428; + }; + 6B98472C11E7366600FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 71"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 403; + vrLoc = 1428; + }; + 6B98472D11E7366600FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 91"; + rLen = 81; + rLoc = 3397; + rType = 0; + vrLen = 999; + vrLoc = 3193; + }; + 6B98472E11E7366600FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 84"; + rLen = 0; + rLoc = 1447; + rType = 0; + vrLen = 458; + vrLoc = 1713; + }; + 6B98472F11E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 49"; + rLen = 0; + rLoc = 1541; + rType = 0; + vrLen = 576; + vrLoc = 969; + }; + 6B98473011E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9846EE11E718F800FA177B /* DetourAlloc.cpp */; + name = "DetourAlloc.cpp: 49"; + rLen = 0; + rLoc = 1491; + rType = 0; + vrLen = 539; + vrLoc = 970; + }; + 6B98473111E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 116"; + rLen = 12; + rLoc = 4519; + rType = 0; + vrLen = 1183; + vrLoc = 4160; + }; + 6B98473211E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 91"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 743; + vrLoc = 1839; + }; + 6B98473311E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 88"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 458; + vrLoc = 1713; + }; + 6B98473411E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 103"; + rLen = 0; + rLoc = 3478; + rType = 0; + vrLen = 939; + vrLoc = 3193; + }; + 6B98473511E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 49"; + rLen = 0; + rLoc = 1541; + rType = 0; + vrLen = 576; + vrLoc = 969; + }; + 6B98473611E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9846EE11E718F800FA177B /* DetourAlloc.cpp */; + name = "DetourAlloc.cpp: 49"; + rLen = 0; + rLoc = 1491; + rType = 0; + vrLen = 539; + vrLoc = 970; + }; + 6B98473711E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 113"; + rLen = 0; + rLoc = 4180; + rType = 0; + vrLen = 1289; + vrLoc = 3698; + }; + 6B98473811E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 89"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 533; + vrLoc = 1713; + }; + 6B98473911E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 113"; + rLen = 0; + rLoc = 4180; + rType = 0; + vrLen = 1289; + vrLoc = 3698; + }; + 6B98473A11E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 86"; + rLen = 0; + rLoc = 1447; + rType = 0; + vrLen = 552; + vrLoc = 1714; + }; + 6B98473B11E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 65"; + rLen = 0; + rLoc = 2682; + rType = 0; + vrLen = 865; + vrLoc = 2500; + }; + 6B98473C11E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 88"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 710; + vrLoc = 1836; + }; + 6B98473D11E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 118"; + rLen = 0; + rLoc = 4534; + rType = 0; + vrLen = 1201; + vrLoc = 4160; + }; + 6B98473E11E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 91"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 743; + vrLoc = 1839; + }; + 6B98473F11E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 116"; + rLen = 12; + rLoc = 4519; + rType = 0; + vrLen = 1183; + vrLoc = 4160; + }; + 6B98474011E737D800FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 90"; + rLen = 0; + rLoc = 1447; + rType = 0; + vrLen = 721; + vrLoc = 2060; + }; + 6B98474111E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 169"; + rLen = 0; + rLoc = 7304; + rType = 0; + vrLen = 1047; + vrLoc = 6249; + }; + 6B98474211E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 55"; + rLen = 0; + rLoc = 1600; + rType = 0; + vrLen = 569; + vrLoc = 1280; + }; + 6B98474311E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9846ED11E718F800FA177B /* DetourAlloc.h */; + name = "DetourAlloc.h: 21"; + rLen = 1; + rLoc = 976; + rType = 0; + vrLen = 1039; + vrLoc = 322; + }; + 6B98474411E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 37"; + rLen = 0; + rLoc = 1347; + rType = 0; + vrLen = 970; + vrLoc = 986; + }; + 6B98474511E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 34"; + rLen = 0; + rLoc = 1185; + rType = 0; + vrLen = 581; + vrLoc = 943; + }; + 6B98474611E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 104"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 626; + vrLoc = 2234; + }; + 6B98474711E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 136"; + rLen = 0; + rLoc = 5362; + rType = 0; + vrLen = 1335; + vrLoc = 4724; + }; + 6B98474811E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 105"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 768; + vrLoc = 2234; + }; + 6B98474911E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 136"; + rLen = 0; + rLoc = 5362; + rType = 0; + vrLen = 1335; + vrLoc = 4724; + }; + 6B98474A11E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 109"; + rLen = 0; + rLoc = 1447; + rType = 0; + vrLen = 839; + vrLoc = 2271; + }; + 6B98474B11E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 136"; + rLen = 0; + rLoc = 5362; + rType = 0; + vrLen = 1335; + vrLoc = 4724; + }; + 6B98474C11E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 123"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 555; + vrLoc = 2583; + }; + 6B98474D11E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 162"; + rLen = 0; + rLoc = 6534; + rType = 0; + vrLen = 1034; + vrLoc = 5893; + }; + 6B98474E11E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 131"; + rLen = 0; + rLoc = 3125; + rType = 0; + vrLen = 630; + vrLoc = 2878; + }; + 6B98474F11E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 170"; + rLen = 0; + rLoc = 7304; + rType = 0; + vrLen = 1113; + vrLoc = 5935; + }; + 6B98475011E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 137"; + rLen = 0; + rLoc = 3124; + rType = 0; + vrLen = 666; + vrLoc = 2901; + }; + 6B98475111E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 169"; + rLen = 0; + rLoc = 7304; + rType = 0; + vrLen = 1047; + vrLoc = 6249; + }; + 6B98475211E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9846ED11E718F800FA177B /* DetourAlloc.h */; + name = "DetourAlloc.h: 53"; + rLen = 0; + rLoc = 1353; + rType = 0; + vrLen = 944; + vrLoc = 1353; + }; + 6B98475311E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 34"; + rLen = 0; + rLoc = 1185; + rType = 0; + vrLen = 581; + vrLoc = 943; + }; + 6B98475411E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 55"; + rLen = 0; + rLoc = 1600; + rType = 0; + vrLen = 569; + vrLoc = 1280; + }; + 6B98475511E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 33"; + rLen = 0; + rLoc = 1304; + rType = 0; + vrLen = 1031; + vrLoc = 322; + }; + 6B98475611E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9846ED11E718F800FA177B /* DetourAlloc.h */; + name = "DetourAlloc.h: 21"; + rLen = 1; + rLoc = 976; + rType = 0; + vrLen = 1039; + vrLoc = 322; + }; + 6B98475711E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 37"; + rLen = 0; + rLoc = 1347; + rType = 0; + vrLen = 970; + vrLoc = 986; + }; + 6B98475811E73ABF00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 240"; + rLen = 0; + rLoc = 6055; + rType = 0; + vrLen = 946; + vrLoc = 5296; + }; + 6B98475D11E73D0100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 358"; + rLen = 1; + rLoc = 9384; + rType = 0; + vrLen = 678; + vrLoc = 9116; + }; + 6B98475E11E73D0100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 343"; + rLen = 1; + rLoc = 9492; + rType = 0; + vrLen = 878; + vrLoc = 9046; + }; + 6B98475F11E73D0100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 19"; + rLen = 0; + rLoc = 949; + rType = 0; + vrLen = 852; + vrLoc = 4932; + }; + 6B98476011E73D0100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 199"; + rLen = 0; + rLoc = 5864; + rType = 0; + vrLen = 735; + vrLoc = 5416; + }; + 6B98476111E73D0100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 1172"; + rLen = 0; + rLoc = 29019; + rType = 0; + vrLen = 1195; + vrLoc = 27945; + }; + 6B98476211E73D0100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 358"; + rLen = 1; + rLoc = 9384; + rType = 0; + vrLen = 678; + vrLoc = 9116; + }; + 6B98476311E73D0100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; + name = "RecastRasterization.cpp: 343"; + rLen = 1; + rLoc = 9492; + rType = 0; + vrLen = 878; + vrLoc = 9046; + }; + 6B98476411E73D0100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; + name = "RecastFilter.cpp: 19"; + rLen = 0; + rLoc = 949; + rType = 0; + vrLen = 852; + vrLoc = 4932; + }; + 6B98476511E73D0100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */; + name = "RecastArea.cpp: 199"; + rLen = 0; + rLoc = 5864; + rType = 0; + vrLen = 735; + vrLoc = 5416; + }; + 6B98476611E73D0100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 884"; + rLen = 0; + rLoc = 21104; + rType = 0; + vrLen = 556; + vrLoc = 20619; + }; + 6B98476B11E73EC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 63"; + rLen = 0; + rLoc = 2236; + rType = 0; + vrLen = 944; + vrLoc = 1346; + }; + 6B98476C11E73EC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 898"; + rLen = 0; + rLoc = 21287; + rType = 0; + vrLen = 935; + vrLoc = 23518; + }; + 6B98476D11E73EC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 63"; + rLen = 0; + rLoc = 2236; + rType = 0; + vrLen = 944; + vrLoc = 1346; + }; + 6B98476E11E73EC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 993"; + rLen = 0; + rLoc = 23933; + rType = 0; + vrLen = 935; + vrLoc = 23518; + }; + 6B98477211E7406900FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 995"; + rLen = 0; + rLoc = 23986; + rType = 0; + vrLen = 935; + vrLoc = 23518; + }; + 6B98477311E7406900FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: invalid conversion from 'int' to 'int*'"; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + rLen = 1; + rLoc = 717; + rType = 1; + }; + 6B98477411E7406900FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 998"; + rLen = 0; + rLoc = 24090; + rType = 0; + vrLen = 935; + vrLoc = 23518; + }; + 6B98477511E7406900FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 995"; + rLen = 0; + rLoc = 23986; + rType = 0; + vrLen = 935; + vrLoc = 23518; + }; + 6B98477611E7406900FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 716"; + rLen = 0; + rLoc = 18992; + rType = 0; + vrLen = 1104; + vrLoc = 18553; + }; + 6B98477711E7433F00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 716"; + rLen = 0; + rLoc = 18992; + rType = 0; + vrLen = 1104; + vrLoc = 18553; + }; + 6B98477811E7433F00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 125"; + rLen = 0; + rLoc = 3604; + rType = 0; + vrLen = 787; + vrLoc = 3208; + }; + 6B98477911E7433F00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; + name = "RecastContour.cpp: 716"; + rLen = 0; + rLoc = 18992; + rType = 0; + vrLen = 1104; + vrLoc = 18553; + }; + 6B98477A11E7433F00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 119"; + rLen = 0; + rLoc = 3482; + rType = 0; + vrLen = 702; + vrLoc = 10039; + }; + 6B98477B11E7444F00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 863"; + rLen = 0; + rLoc = 22479; + rType = 0; + vrLen = 915; + vrLoc = 21757; + }; + 6B98477C11E745E500FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 1207"; + rLen = 0; + rLoc = 32496; + rType = 0; + vrLen = 1023; + vrLoc = 31666; + }; + 6B98478311E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 1156"; + rLen = 0; + rLoc = 30784; + rType = 0; + vrLen = 1001; + vrLoc = 30504; + }; + 6B98478411E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 40"; + rLen = 0; + rLoc = 1390; + rType = 0; + vrLen = 651; + vrLoc = 969; + }; + 6B98478511E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 35"; + rLen = 36; + rLoc = 1185; + rType = 0; + vrLen = 587; + vrLoc = 924; + }; + 6B98478611E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 170"; + rLen = 0; + rLoc = 6865; + rType = 0; + vrLen = 831; + vrLoc = 6532; + }; + 6B98478711E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 30"; + rLen = 0; + rLoc = 1172; + rType = 0; + vrLen = 681; + vrLoc = 789; + }; + 6B98478811E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 694"; + rLen = 12; + rLoc = 23249; + rType = 0; + vrLen = 2255; + vrLoc = 21083; + }; + 6B98478911E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 117"; + rLen = 0; + rLoc = 3122; + rType = 0; + vrLen = 707; + vrLoc = 2643; + }; + 6B98478A11E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1172"; + rLen = 0; + rLoc = 37042; + rType = 0; + vrLen = 643; + vrLoc = 36667; + }; + 6B98478B11E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 41"; + rLen = 0; + rLoc = 1406; + rType = 0; + vrLen = 643; + vrLoc = 1143; + }; + 6B98478C11E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 1156"; + rLen = 0; + rLoc = 30784; + rType = 0; + vrLen = 1001; + vrLoc = 30504; + }; + 6B98478D11E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 40"; + rLen = 0; + rLoc = 1390; + rType = 0; + vrLen = 651; + vrLoc = 969; + }; + 6B98478E11E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 35"; + rLen = 1940; + rLoc = 1185; + rType = 0; + vrLen = 639; + vrLoc = 2723; + }; + 6B98478F11E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 172"; + rLen = 1; + rLoc = 6902; + rType = 0; + vrLen = 912; + vrLoc = 6532; + }; + 6B98479011E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 35"; + rLen = 36; + rLoc = 1185; + rType = 0; + vrLen = 587; + vrLoc = 924; + }; + 6B98479111E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 170"; + rLen = 0; + rLoc = 6865; + rType = 0; + vrLen = 831; + vrLoc = 6532; + }; + 6B98479211E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */; + name = "Sample_SoloMeshSimple.h: 30"; + rLen = 0; + rLoc = 1172; + rType = 0; + vrLen = 681; + vrLoc = 789; + }; + 6B98479311E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; + name = "Sample_SoloMeshSimple.cpp: 694"; + rLen = 12; + rLoc = 23249; + rType = 0; + vrLen = 2255; + vrLoc = 21083; + }; + 6B98479411E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463111E6144400FA177B /* Sample_SoloMeshTiled.h */; + name = "Sample_SoloMeshTiled.h: 117"; + rLen = 0; + rLoc = 3122; + rType = 0; + vrLen = 707; + vrLoc = 2643; + }; + 6B98479511E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; + name = "Sample_SoloMeshTiled.cpp: 1172"; + rLen = 0; + rLoc = 37042; + rType = 0; + vrLen = 643; + vrLoc = 36667; + }; + 6B98479611E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */; + name = "Sample_TileMesh.h: 41"; + rLen = 0; + rLoc = 1406; + rType = 0; + vrLen = 643; + vrLoc = 1143; + }; + 6B98479711E74AB100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 213"; + rLen = 0; + rLoc = 4854; + rType = 0; + vrLen = 736; + vrLoc = 6759; + }; + 6B98479911E74B4D00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 1060"; + rLen = 1; + rLoc = 30409; + rType = 0; + vrLen = 2229; + vrLoc = 28200; + }; + 6B9847A011E74BC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 1060"; + rLen = 1; + rLoc = 30409; + rType = 0; + vrLen = 2229; + vrLoc = 28200; + }; + 6B9847A111E74BC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 17"; + rLen = 0; + rLoc = 922; + rType = 0; + vrLen = 928; + vrLoc = 249; + }; + 6B9847A211E74BC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; + name = "Sample_Debug.h: 31"; + rLen = 5; + rLoc = 1180; + rType = 0; + vrLen = 640; + vrLoc = 1048; + }; + 6B9847A311E74BC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 37"; + rLen = 0; + rLoc = 1297; + rType = 0; + vrLen = 548; + vrLoc = 1013; + }; + 6B9847A411E74BC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; + name = "Sample_TileMesh.cpp: 1060"; + rLen = 1; + rLoc = 30409; + rType = 0; + vrLen = 2229; + vrLoc = 28200; + }; + 6B9847A511E74BC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470611E733CF00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 17"; + rLen = 0; + rLoc = 922; + rType = 0; + vrLen = 928; + vrLoc = 249; + }; + 6B9847A611E74BC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; + name = "Sample_Debug.h: 38"; + rLen = 0; + rLoc = 1296; + rType = 0; + vrLen = 640; + vrLoc = 1048; + }; + 6B9847A711E74BC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 37"; + rLen = 0; + rLoc = 1297; + rType = 0; + vrLen = 548; + vrLoc = 1013; + }; + 6B9847A811E74BC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AC113BAABE005ED67B /* Sample_Debug.h */; + name = "Sample_Debug.h: 31"; + rLen = 5; + rLoc = 1180; + rType = 0; + vrLen = 640; + vrLoc = 1048; + }; + 6B9847A911E74BC100FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 135"; + rLen = 0; + rLoc = 3400; + rType = 0; + vrLen = 358; + vrLoc = 3263; + }; + 6B9847AE11E74FAB00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 147"; + rLen = 0; + rLoc = 3540; + rType = 0; + vrLen = 355; + vrLoc = 3263; + }; + 6B9847AF11E74FAB00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + rLen = 0; + rLoc = 66; + rType = 1; + }; + 6B9847B011E74FAB00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8036AD113BAABE005ED67B /* Sample_Debug.cpp */; + name = "Sample_Debug.cpp: 147"; + rLen = 0; + rLoc = 3540; + rType = 0; + vrLen = 355; + vrLoc = 3263; + }; + 6B9847B111E74FAB00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 106"; + rLen = 0; + rLoc = 2718; + rType = 0; + vrLen = 565; + vrLoc = 2381; + }; + 6B9847B311E74FC000FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 106"; + rLen = 0; + rLoc = 2718; + rType = 0; + vrLen = 612; + vrLoc = 2429; + }; + 6B9847B511E750E400FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 228"; + rLen = 0; + rLoc = 5616; + rType = 0; + vrLen = 515; + vrLoc = 5294; + }; + 6B9847B611E750E400FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 112"; + rLen = 0; + rLoc = 2804; + rType = 0; + vrLen = 319; + vrLoc = 2696; + }; + 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {826, 1088}}"; + sepNavSelRange = "{1564, 0}"; + sepNavVisRange = "{1461, 408}"; + }; + }; + 6B9847B911E751AC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 102"; + rLen = 0; + rLoc = 2627; + rType = 0; + vrLen = 618; + vrLoc = 2399; + }; + 6B9847BA11E751AC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 28"; + rLen = 0; + rLoc = 1152; + rType = 0; + vrLen = 743; + vrLoc = 923; + }; + 6B9847BB11E751AC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 48"; + rLen = 0; + rLoc = 1672; + rType = 0; + vrLen = 867; + vrLoc = 1431; + }; + 6B9847BC11E751AC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1067; + vrLoc = 0; + }; + 6B9847BD11E751AC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 102"; + rLen = 0; + rLoc = 2627; + rType = 0; + vrLen = 618; + vrLoc = 2399; + }; + 6B9847BE11E751AC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; + name = "Recast.cpp: 102"; + rLen = 0; + rLoc = 2627; + rType = 0; + vrLen = 618; + vrLoc = 2399; + }; + 6B9847BF11E751AC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */; + name = "Sample.h: 28"; + rLen = 0; + rLoc = 1152; + rType = 0; + vrLen = 743; + vrLoc = 923; + }; + 6B9847C011E751AC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B98470511E733B600FA177B /* RecastAlloc.h */; + name = "RecastAlloc.h: 48"; + rLen = 0; + rLoc = 1672; + rType = 0; + vrLen = 867; + vrLoc = 1431; + }; + 6B9847C111E751AC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 56"; + rLen = 0; + rLoc = 1615; + rType = 0; + vrLen = 408; + vrLoc = 1461; + }; + 6B9847C311E752CC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 51"; + rLen = 0; + rLoc = 1564; + rType = 0; + vrLen = 408; + vrLoc = 1461; + }; + 6B9847C411E752CC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 995"; + rLen = 0; + rLoc = 23986; + rType = 0; + vrLen = 831; + vrLoc = 23622; + }; + 6B9847C511E752CC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */; + name = "RecastAlloc.cpp: 51"; + rLen = 0; + rLoc = 1564; + rType = 0; + vrLen = 408; + vrLoc = 1461; + }; + 6B9847C611E752CC00FA177B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; + name = "RecastRegion.cpp: 702"; + rLen = 0; + rLoc = 16630; + rType = 0; + vrLen = 760; + vrLoc = 16253; + }; 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {887, 11536}}"; - sepNavSelRange = "{16035, 0}"; - sepNavVisRange = "{15651, 632}"; + sepNavIntBoundsRect = "{{0, 0}, {1160, 11648}}"; + sepNavSelRange = "{23249, 12}"; + sepNavVisRange = "{21083, 2255}"; }; }; 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */ = { @@ -5273,8 +7036,8 @@ 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {826, 1232}}"; - sepNavSelRange = "{1171, 0}"; - sepNavVisRange = "{789, 615}"; + sepNavSelRange = "{1172, 0}"; + sepNavVisRange = "{789, 681}"; }; }; 6BA1E88F10C7BFD3008007F6 /* Sample_SoloMeshTiled.h */ = { @@ -5804,7 +7567,7 @@ fRef = 6BA1E88F10C7BFD3008007F6 /* Sample_SoloMeshTiled.h */; name = "Sample_SoloMeshTiled.h: 92"; rLen = 0; - rLoc = 2605; + rLoc = 2690; rType = 0; vrLen = 442; vrLoc = 2379; @@ -5834,7 +7597,7 @@ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; name = "Recast.cpp: 121"; rLen = 0; - rLoc = 3290; + rLoc = 5023; rType = 0; vrLen = 525; vrLoc = 3040; @@ -5893,7 +7656,7 @@ ignoreCount = 0; lineNumber = 582; location = Recast; - modificationTime = 300290792.873078; + modificationTime = 300371830.328957; state = 0; }; 6BBB4BBE115B64E600CF791D /* Sample_TileMesh.cpp:626 */ = { @@ -5910,7 +7673,7 @@ ignoreCount = 0; lineNumber = 626; location = Recast; - modificationTime = 300290792.873354; + modificationTime = 300371830.329693; state = 0; }; 6BBB4C34115B7A3D00CF791D /* PBXTextBookmark */ = { @@ -5961,7 +7724,7 @@ ignoreCount = 0; lineNumber = 276; location = Recast; - modificationTime = 300290792.873547; + modificationTime = 300371830.329897; state = 0; }; 6BC75E1811AF97CC00FF5E51 /* PBXTextBookmark */ = { @@ -5979,7 +7742,7 @@ fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; name = "RecastMeshDetail.cpp: 843"; rLen = 0; - rLoc = 20057; + rLoc = 20080; rType = 0; vrLen = 691; vrLoc = 19690; @@ -5989,7 +7752,7 @@ fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; name = "RecastMeshDetail.cpp: 843"; rLen = 0; - rLoc = 20057; + rLoc = 20080; rType = 0; vrLen = 691; vrLoc = 19690; @@ -6195,7 +7958,7 @@ fRef = 6BA1E88F10C7BFD3008007F6 /* Sample_SoloMeshTiled.h */; name = "Sample_SoloMeshTiled.h: 58"; rLen = 18; - rLoc = 1824; + rLoc = 1909; rType = 0; vrLen = 647; vrLoc = 1710; @@ -6286,9 +8049,9 @@ }; 6BF7C4531115C277002B3F46 /* RecastArea.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {909, 5200}}"; - sepNavSelRange = "{8677, 0}"; - sepNavVisRange = "{8170, 720}"; + sepNavIntBoundsRect = "{{0, 0}, {826, 5248}}"; + sepNavSelRange = "{5864, 0}"; + sepNavVisRange = "{5416, 735}"; }; }; 8D1107260486CEB800E47090 /* Recast */ = { diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index cd39ee66..ac47f07d 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -282,14 +282,14 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 40 - 36 + 32 + 22 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 225}, {264, 632}} + {{0, 270}, {264, 632}} PBXTopSmartGroupGIDs @@ -324,7 +324,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - Sample_TileMesh.cpp + RecastRegion.cpp PBXSplitModuleInNavigatorKey Split0 @@ -332,11 +332,11 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - Sample_TileMesh.cpp + RecastRegion.cpp _historyCapacity 0 bookmark - 6B98470311E7285500FA177B + 6B9847C611E752CC00FA177B history 6BBB4AA1115B4F3400CF791D @@ -346,9 +346,7 @@ 6BBB4AAB115B4F3400CF791D 6BBB4AB0115B4F3400CF791D 6BBB4AB2115B4F3400CF791D - 6BBB4ABB115B4F3400CF791D 6BBB4ABF115B4F3400CF791D - 6BBB4AC4115B4F3400CF791D 6BBB4B7F115B639200CF791D 6BBB4C34115B7A3D00CF791D 6BF5F27011747CFA000502A6 @@ -365,21 +363,15 @@ 6BF5F478117644A2000502A6 6BF5F5041176F5F8000502A6 6B4214D911803923006C347B - 6B555F451191AA4400843384 6B5562501193EF2F00843384 6B5562511193EF2F00843384 6B5562DF1193F2A300843384 6B5562E01193F2A300843384 6B2CDC911197F0720090FA4D - 6B2CDD23119804010090FA4D - 6B2CDD6111980E3D0090FA4D 6B2CDDC9119830560090FA4D 6B10000A11ACFFFB0098A59A 6B10011711AD19F90098A59A 6B10011911AD19F90098A59A - 6B10016C11AD1DE70098A59A - 6BC7619A11B63C7E00FF5E51 - 6B586E8211CF3E0000704B61 6B586E8311CF3E0000704B61 6B77655411E3A9490029917E 6B77655511E3A9490029917E @@ -387,24 +379,36 @@ 6B98453411E6013000FA177B 6B98462E11E6141900FA177B 6B98464311E6F9B400FA177B - 6B98464711E6F9B400FA177B - 6B98464811E6F9B400FA177B - 6B98468011E6FF2000FA177B - 6B98468911E6FFC300FA177B 6B9846A011E7140300FA177B 6B9846A111E7140300FA177B 6B9846B911E7145500FA177B - 6B9846C911E715C700FA177B - 6B9846D511E716A200FA177B - 6B9846DF11E7172B00FA177B - 6B9846F111E7282C00FA177B - 6B9846F211E7282C00FA177B 6B9846F311E7282C00FA177B - 6B9846F411E7282C00FA177B - 6B9846F511E7282C00FA177B 6B9846F611E7282C00FA177B 6B98470011E7285500FA177B - 6B98470111E7285500FA177B + 6B98471A11E734DF00FA177B + 6B98471B11E734DF00FA177B + 6B98473011E737D800FA177B + 6B98474311E73ABF00FA177B + 6B98475E11E73D0100FA177B + 6B98475F11E73D0100FA177B + 6B98476011E73D0100FA177B + 6B98477711E7433F00FA177B + 6B98478311E74AB100FA177B + 6B98478411E74AB100FA177B + 6B98478611E74AB100FA177B + 6B98478711E74AB100FA177B + 6B98478811E74AB100FA177B + 6B98478911E74AB100FA177B + 6B98478A11E74AB100FA177B + 6B98478B11E74AB100FA177B + 6B9847A011E74BC100FA177B + 6B9847A211E74BC100FA177B + 6B9847AE11E74FAB00FA177B + 6B9847B911E751AC00FA177B + 6B9847BA11E751AC00FA177B + 6B9847BB11E751AC00FA177B + 6B9847C311E752CC00FA177B + 6B9847C411E752CC00FA177B prevStack @@ -455,9 +459,7 @@ 6B5562681193EF2F00843384 6B5562FD1193F50A00843384 6B2CDD181197FE370090FA4D - 6B2CDD3511980B820090FA4D 6B2CDD71119810560090FA4D - 6B2CDD98119818F90090FA4D 6B57E94D11A7646800614060 6B10005C11AD08FA0098A59A 6B10011E11AD19F90098A59A @@ -567,14 +569,11 @@ 6B98465211E6F9B400FA177B 6B98465311E6F9B400FA177B 6B98465411E6F9B400FA177B - 6B98465511E6F9B400FA177B 6B98465611E6F9B400FA177B 6B98465711E6F9B400FA177B - 6B98465811E6F9B400FA177B 6B98465911E6F9B400FA177B 6B98465A11E6F9B400FA177B 6B98465B11E6F9B400FA177B - 6B98465C11E6F9B400FA177B 6B98465D11E6F9B400FA177B 6B98465E11E6F9B400FA177B 6B98465F11E6F9B400FA177B @@ -630,6 +629,77 @@ 6B9846FC11E7282C00FA177B 6B9846FD11E7282C00FA177B 6B98470211E7285500FA177B + 6B98470F11E734A100FA177B + 6B98471011E734A100FA177B + 6B98471211E734A100FA177B + 6B98471311E734A100FA177B + 6B98471411E734A100FA177B + 6B98471611E734A100FA177B + 6B98471811E734A100FA177B + 6B98471E11E734DF00FA177B + 6B98471F11E734DF00FA177B + 6B98472011E734DF00FA177B + 6B98472111E734DF00FA177B + 6B98472511E7356200FA177B + 6B98472811E735A300FA177B + 6B98472C11E7366600FA177B + 6B98472D11E7366600FA177B + 6B98473311E737D800FA177B + 6B98473411E737D800FA177B + 6B98473611E737D800FA177B + 6B98473711E737D800FA177B + 6B98473811E737D800FA177B + 6B98473911E737D800FA177B + 6B98473A11E737D800FA177B + 6B98473B11E737D800FA177B + 6B98473C11E737D800FA177B + 6B98473D11E737D800FA177B + 6B98473E11E737D800FA177B + 6B98473F11E737D800FA177B + 6B98474611E73ABF00FA177B + 6B98474711E73ABF00FA177B + 6B98474811E73ABF00FA177B + 6B98474911E73ABF00FA177B + 6B98474A11E73ABF00FA177B + 6B98474B11E73ABF00FA177B + 6B98474C11E73ABF00FA177B + 6B98474D11E73ABF00FA177B + 6B98474E11E73ABF00FA177B + 6B98474F11E73ABF00FA177B + 6B98475011E73ABF00FA177B + 6B98475111E73ABF00FA177B + 6B98475211E73ABF00FA177B + 6B98475311E73ABF00FA177B + 6B98475511E73ABF00FA177B + 6B98475611E73ABF00FA177B + 6B98475711E73ABF00FA177B + 6B98476211E73D0100FA177B + 6B98476311E73D0100FA177B + 6B98476411E73D0100FA177B + 6B98476511E73D0100FA177B + 6B98477411E7406900FA177B + 6B98477911E7433F00FA177B + 6B98478C11E74AB100FA177B + 6B98478D11E74AB100FA177B + 6B98478E11E74AB100FA177B + 6B98478F11E74AB100FA177B + 6B98479011E74AB100FA177B + 6B98479111E74AB100FA177B + 6B98479211E74AB100FA177B + 6B98479311E74AB100FA177B + 6B98479411E74AB100FA177B + 6B98479511E74AB100FA177B + 6B98479611E74AB100FA177B + 6B9847A411E74BC100FA177B + 6B9847A611E74BC100FA177B + 6B9847A711E74BC100FA177B + 6B9847A811E74BC100FA177B + 6B9847B011E74FAB00FA177B + 6B9847BD11E751AC00FA177B + 6B9847BE11E751AC00FA177B + 6B9847BF11E751AC00FA177B + 6B9847C011E751AC00FA177B + 6B9847C511E752CC00FA177B SplitCount @@ -643,18 +713,18 @@ GeometryConfiguration Frame - {{0, 0}, {887, 408}} + {{0, 0}, {887, 441}} RubberWindowFrame 33 87 1173 691 0 0 1280 778 Module PBXNavigatorGroup Proportion - 408pt + 441pt Proportion - 237pt + 204pt Tabs @@ -684,9 +754,7 @@ GeometryConfiguration Frame - {{10, 27}, {887, 210}} - RubberWindowFrame - 33 87 1173 691 0 0 1280 778 + {{10, 27}, {887, 110}} Module PBXProjectFindModule @@ -724,7 +792,9 @@ GeometryConfiguration Frame - {{10, 27}, {887, 83}} + {{10, 27}, {887, 177}} + RubberWindowFrame + 33 87 1173 691 0 0 1280 778 Module PBXBuildResultsModule @@ -807,12 +877,12 @@ GeometryConfiguration Frame - {{0, 0}, {1173, 157}} + {{0, 0}, {1173, 331}} Module PBXDebugCLIModule Proportion - 157pt + 331pt ContentConfiguration @@ -831,8 +901,8 @@ yes sizes - {{0, 0}, {537, 135}} - {{537, 0}, {636, 135}} + {{0, 0}, {537, 86}} + {{537, 0}, {636, 86}} VerticalSplitView @@ -847,8 +917,8 @@ yes sizes - {{0, 0}, {1173, 135}} - {{0, 135}, {1173, 360}} + {{0, 0}, {1173, 86}} + {{0, 86}, {1173, 228}} @@ -868,7 +938,7 @@ DebugSTDIOWindowFrame {{200, 200}, {500, 300}} Frame - {{0, 162}, {1173, 495}} + {{0, 336}, {1173, 314}} PBXDebugSessionStackFrameViewKey DebugVariablesTableConfiguration @@ -881,13 +951,13 @@ 343 Frame - {{537, 0}, {636, 135}} + {{537, 0}, {636, 86}} Module PBXDebugSessionModule Proportion - 495pt + 314pt Name diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj index 5de77bf0..1c73cf3f 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj @@ -35,6 +35,7 @@ 6B8DE88A10B69E3E00DF20FB /* DetourNavMeshBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; }; 6B98463311E6144400FA177B /* Sample_SoloMeshTiled.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */; }; 6B9846EF11E718F800FA177B /* DetourAlloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B9846EE11E718F800FA177B /* DetourAlloc.cpp */; }; + 6B9847B811E7519A00FA177B /* RecastAlloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */; }; 6BA1E88B10C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; }; 6BB788170FC0472B003C24DB /* ChunkyTriMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */; }; 6BB7FC0B10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; }; @@ -105,6 +106,8 @@ 6B98463211E6144400FA177B /* Sample_SoloMeshTiled.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sample_SoloMeshTiled.cpp; path = ../../Source/Sample_SoloMeshTiled.cpp; sourceTree = SOURCE_ROOT; }; 6B9846ED11E718F800FA177B /* DetourAlloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetourAlloc.h; path = ../../../Detour/Include/DetourAlloc.h; sourceTree = SOURCE_ROOT; }; 6B9846EE11E718F800FA177B /* DetourAlloc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DetourAlloc.cpp; path = ../../../Detour/Source/DetourAlloc.cpp; sourceTree = SOURCE_ROOT; }; + 6B98470511E733B600FA177B /* RecastAlloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastAlloc.h; path = ../../../Recast/Include/RecastAlloc.h; sourceTree = SOURCE_ROOT; }; + 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastAlloc.cpp; path = ../../../Recast/Source/RecastAlloc.cpp; sourceTree = SOURCE_ROOT; }; 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sample_SoloMeshSimple.cpp; path = ../../Source/Sample_SoloMeshSimple.cpp; sourceTree = SOURCE_ROOT; }; 6BA1E88E10C7BFD3008007F6 /* Sample_SoloMeshSimple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sample_SoloMeshSimple.h; path = ../../Include/Sample_SoloMeshSimple.h; sourceTree = SOURCE_ROOT; }; 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ChunkyTriMesh.cpp; path = ../../Source/ChunkyTriMesh.cpp; sourceTree = SOURCE_ROOT; }; @@ -266,6 +269,8 @@ 6B137C830F7FCC1100459200 /* RecastContour.cpp */, 6B137C870F7FCC1100459200 /* RecastMesh.cpp */, 6B624169103434880002E346 /* RecastMeshDetail.cpp */, + 6B98470511E733B600FA177B /* RecastAlloc.h */, + 6B9847B711E7519A00FA177B /* RecastAlloc.cpp */, ); name = Recast; sourceTree = ""; @@ -425,6 +430,7 @@ 6BF5F2401174763B000502A6 /* SlideShow.cpp in Sources */, 6B98463311E6144400FA177B /* Sample_SoloMeshTiled.cpp in Sources */, 6B9846EF11E718F800FA177B /* DetourAlloc.cpp in Sources */, + 6B9847B811E7519A00FA177B /* RecastAlloc.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/RecastDemo/Include/Sample_SoloMeshTiled.h b/RecastDemo/Include/Sample_SoloMeshTiled.h index 3842df80..28a839c8 100644 --- a/RecastDemo/Include/Sample_SoloMeshTiled.h +++ b/RecastDemo/Include/Sample_SoloMeshTiled.h @@ -31,7 +31,14 @@ protected: struct Tile { inline Tile() : chf(0), solid(0), cset(0), pmesh(0), dmesh(0), buildTime(0) {} - inline ~Tile() { delete chf; delete cset; delete solid; delete pmesh; delete dmesh; } + inline ~Tile() + { + rcFreeCompactHeightfield(chf); + rcFreeContourSet(cset); + rcFreeHeightField(solid); + rcFreePolyMesh(pmesh); + rcFreePolyMeshDetail(dmesh); + } int x, y; rcCompactHeightfield* chf; rcHeightfield* solid; diff --git a/RecastDemo/Source/Sample_Debug.cpp b/RecastDemo/Source/Sample_Debug.cpp index 30401e85..b89be494 100644 --- a/RecastDemo/Source/Sample_Debug.cpp +++ b/RecastDemo/Source/Sample_Debug.cpp @@ -57,7 +57,7 @@ Sample_Debug::Sample_Debug() : resetCommonSettings(); // Test -/* m_chf = new rcCompactHeightfield; +/* m_chf = rcAllocCompactHeightfield(); FileIO io; if (!io.openForRead("test.chf")) { @@ -137,8 +137,8 @@ Sample_Debug::Sample_Debug() : Sample_Debug::~Sample_Debug() { - delete m_chf; - delete m_cset; + rcFreeCompactHeightfield(m_chf); + rcFreeContourSet(m_cset); } void Sample_Debug::handleSettings() @@ -320,7 +320,7 @@ bool Sample_Debug::handleBuild() m_cset = 0; // Create contours. - m_cset = new rcContourSet; + m_cset = rcAllocContourSet(); if (!m_cset) { if (rcGetLog()) diff --git a/RecastDemo/Source/Sample_SoloMeshSimple.cpp b/RecastDemo/Source/Sample_SoloMeshSimple.cpp index 14dcea71..7062e34d 100644 --- a/RecastDemo/Source/Sample_SoloMeshSimple.cpp +++ b/RecastDemo/Source/Sample_SoloMeshSimple.cpp @@ -65,17 +65,16 @@ void Sample_SoloMeshSimple::cleanup() { delete [] m_triflags; m_triflags = 0; - delete m_solid; + rcFreeHeightField(m_solid); m_solid = 0; - delete m_chf; + rcFreeCompactHeightfield(m_chf); m_chf = 0; - delete m_cset; + rcFreeContourSet(m_cset); m_cset = 0; - delete m_pmesh; + rcFreePolyMesh(m_pmesh); m_pmesh = 0; - delete m_dmesh; + rcFreePolyMeshDetail(m_dmesh); m_dmesh = 0; - dtFreeNavMesh(m_navMesh); m_navMesh = 0; } @@ -394,7 +393,7 @@ bool Sample_SoloMeshSimple::handleBuild() // // Allocate voxel heighfield where we rasterize our input data to. - m_solid = new rcHeightfield; + m_solid = rcAllocHeightfield(); if (!m_solid) { if (rcGetLog()) @@ -451,7 +450,7 @@ bool Sample_SoloMeshSimple::handleBuild() // Compact the heightfield so that it is faster to handle from now on. // This will result more cache coherent data as well as the neighbours // between walkable cells will be calculated. - m_chf = new rcCompactHeightfield; + m_chf = rcAllocCompactHeightfield(); if (!m_chf) { if (rcGetLog()) @@ -467,7 +466,7 @@ bool Sample_SoloMeshSimple::handleBuild() if (!m_keepInterResults) { - delete m_solid; + rcFreeHeightField(m_solid); m_solid = 0; } @@ -504,7 +503,7 @@ bool Sample_SoloMeshSimple::handleBuild() // // Create contours. - m_cset = new rcContourSet; + m_cset = rcAllocContourSet(); if (!m_cset) { if (rcGetLog()) @@ -523,7 +522,7 @@ bool Sample_SoloMeshSimple::handleBuild() // // Build polygon navmesh from the contours. - m_pmesh = new rcPolyMesh; + m_pmesh = rcAllocPolyMesh(); if (!m_pmesh) { if (rcGetLog()) @@ -541,7 +540,7 @@ bool Sample_SoloMeshSimple::handleBuild() // Step 7. Create detail mesh which allows to access approximate height on each polygon. // - m_dmesh = new rcPolyMeshDetail; + m_dmesh = rcAllocPolyMeshDetail(); if (!m_dmesh) { if (rcGetLog()) @@ -557,9 +556,9 @@ bool Sample_SoloMeshSimple::handleBuild() if (!m_keepInterResults) { - delete m_chf; + rcFreeCompactHeightfield(m_chf); m_chf = 0; - delete m_cset; + rcFreeContourSet(m_cset); m_cset = 0; } diff --git a/RecastDemo/Source/Sample_SoloMeshTiled.cpp b/RecastDemo/Source/Sample_SoloMeshTiled.cpp index 2282b069..07447424 100644 --- a/RecastDemo/Source/Sample_SoloMeshTiled.cpp +++ b/RecastDemo/Source/Sample_SoloMeshTiled.cpp @@ -153,9 +153,9 @@ void Sample_SoloMeshTiled::cleanup() { delete m_tileSet; m_tileSet = 0; - delete m_pmesh; + rcFreePolyMesh(m_pmesh); m_pmesh = 0; - delete m_dmesh; + rcFreePolyMeshDetail(m_dmesh); m_dmesh = 0; dtFreeNavMesh(m_navMesh); m_navMesh = 0; @@ -810,7 +810,7 @@ bool Sample_SoloMeshTiled::handleBuild() if (!ncid) continue; - tile.solid = new rcHeightfield; + tile.solid = rcAllocHeightfield(); if (!tile.solid) { if (rcGetLog()) @@ -841,7 +841,7 @@ bool Sample_SoloMeshTiled::handleBuild() rcFilterLedgeSpans(tileCfg.walkableHeight, tileCfg.walkableClimb, *tile.solid); rcFilterWalkableLowHeightSpans(tileCfg.walkableHeight, *tile.solid); - tile.chf = new rcCompactHeightfield; + tile.chf = rcAllocCompactHeightfield(); if (!tile.chf) { if (rcGetLog()) @@ -883,7 +883,7 @@ bool Sample_SoloMeshTiled::handleBuild() continue; } - tile.cset = new rcContourSet; + tile.cset = rcAllocContourSet(); if (!tile.cset) { if (rcGetLog()) @@ -897,7 +897,7 @@ bool Sample_SoloMeshTiled::handleBuild() continue; } - tile.pmesh = new rcPolyMesh; + tile.pmesh = rcAllocPolyMesh(); if (!tile.pmesh) { if (rcGetLog()) @@ -911,7 +911,7 @@ bool Sample_SoloMeshTiled::handleBuild() continue; } - tile.dmesh = new rcPolyMeshDetail; + tile.dmesh = rcAllocPolyMeshDetail(); if (!tile.dmesh) { if (rcGetLog()) @@ -928,11 +928,11 @@ bool Sample_SoloMeshTiled::handleBuild() if (!m_keepInterResults) { - delete tile.solid; + rcFreeHeightField(tile.solid); tile.solid = 0; - delete tile.chf; + rcFreeCompactHeightfield(tile.chf); tile.chf = 0; - delete tile.cset; + rcFreeContourSet(tile.cset); tile.cset = 0; } @@ -993,7 +993,7 @@ bool Sample_SoloMeshTiled::handleBuild() } } - m_pmesh = new rcPolyMesh; + m_pmesh = rcAllocPolyMesh(); if (!m_pmesh) { if (rcGetLog()) @@ -1002,7 +1002,7 @@ bool Sample_SoloMeshTiled::handleBuild() } rcMergePolyMeshes(pmmerge, nmerge, *m_pmesh); - m_dmesh = new rcPolyMeshDetail; + m_dmesh = rcAllocPolyMeshDetail(); if (!m_dmesh) { if (rcGetLog()) @@ -1021,11 +1021,11 @@ bool Sample_SoloMeshTiled::handleBuild() for (int x = 0; x < m_tileSet->width; ++x) { Tile& tile = m_tileSet->tiles[x + y*m_tileSet->width]; - delete tile.cset; + rcFreeContourSet(tile.cset); tile.cset = 0; - delete tile.pmesh; + rcFreePolyMesh(tile.pmesh); tile.pmesh = 0; - delete tile.dmesh; + rcFreePolyMeshDetail(tile.dmesh); tile.dmesh = 0; } } diff --git a/RecastDemo/Source/Sample_TileMesh.cpp b/RecastDemo/Source/Sample_TileMesh.cpp index 2ede88d5..5e88820e 100644 --- a/RecastDemo/Source/Sample_TileMesh.cpp +++ b/RecastDemo/Source/Sample_TileMesh.cpp @@ -202,15 +202,15 @@ void Sample_TileMesh::cleanup() { delete [] m_triflags; m_triflags = 0; - delete m_solid; + rcFreeHeightField(m_solid); m_solid = 0; - delete m_chf; + rcFreeCompactHeightfield(m_chf); m_chf = 0; - delete m_cset; + rcFreeContourSet(m_cset); m_cset = 0; - delete m_pmesh; + rcFreePolyMesh(m_pmesh); m_pmesh = 0; - delete m_dmesh; + rcFreePolyMeshDetail(m_dmesh); m_dmesh = 0; } @@ -750,7 +750,7 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const } // Allocate voxel heighfield where we rasterize our input data to. - m_solid = new rcHeightfield; + m_solid = rcAllocHeightfield(); if (!m_solid) { if (rcGetLog()) @@ -819,7 +819,7 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const // Compact the heightfield so that it is faster to handle from now on. // This will result more cache coherent data as well as the neighbours // between walkable cells will be calculated. - m_chf = new rcCompactHeightfield; + m_chf = rcAllocCompactHeightfield(); if (!m_chf) { if (rcGetLog()) @@ -835,7 +835,7 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const if (!m_keepInterResults) { - delete m_solid; + rcFreeHeightField(m_solid); m_solid = 0; } @@ -869,7 +869,7 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const } // Create contours. - m_cset = new rcContourSet; + m_cset = rcAllocContourSet(); if (!m_cset) { if (rcGetLog()) @@ -889,7 +889,7 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const } // Build polygon navmesh from the contours. - m_pmesh = new rcPolyMesh; + m_pmesh = rcAllocPolyMesh(); if (!m_pmesh) { if (rcGetLog()) @@ -904,7 +904,7 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const } // Build detail mesh. - m_dmesh = new rcPolyMeshDetail; + m_dmesh = rcAllocPolyMeshDetail(); if (!m_dmesh) { if (rcGetLog()) @@ -923,9 +923,9 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const if (!m_keepInterResults) { - delete m_chf; + rcFreeCompactHeightfield(m_chf); m_chf = 0; - delete m_cset; + rcFreeContourSet(m_cset); m_cset = 0; }