diff --git a/Recast/Source/RecastMeshDetail.cpp b/Recast/Source/RecastMeshDetail.cpp index 7cdc68d..8a70523 100644 --- a/Recast/Source/RecastMeshDetail.cpp +++ b/Recast/Source/RecastMeshDetail.cpp @@ -36,256 +36,55 @@ struct rcHeightPatch }; -static int circumCircle(const float xp, const float yp, - const float x1, const float y1, - const float x2, const float y2, - const float x3, const float y3, - float& xc, float& yc, float& rsqr) -{ - static const float EPSILON = 1e-6f; - - const float fabsy1y2 = rcAbs(y1-y2); - const float fabsy2y3 = rcAbs(y2-y3); - - /* Check for coincident points */ - if (fabsy1y2 < EPSILON && fabsy2y3 < EPSILON) - return 0; - - if (fabsy1y2 < EPSILON) - { - const float m2 = - (x3-x2) / (y3-y2); - const float mx2 = (x2 + x3) / 2.0f; - const float my2 = (y2 + y3) / 2.0f; - xc = (x2 + x1) / 2.0f; - yc = m2 * (xc - mx2) + my2; - } - else if (fabsy2y3 < EPSILON) - { - const float m1 = - (x2-x1) / (y2-y1); - const float mx1 = (x1 + x2) / 2.0f; - const float my1 = (y1 + y2) / 2.0f; - xc = (x3 + x2) / 2.0f; - yc = m1 * (xc - mx1) + my1; - } - else - { - const float m1 = - (x2-x1) / (y2-y1); - const float m2 = - (x3-x2) / (y3-y2); - const float mx1 = (x1 + x2) / 2.0f; - const float mx2 = (x2 + x3) / 2.0f; - const float my1 = (y1 + y2) / 2.0f; - const float my2 = (y2 + y3) / 2.0f; - xc = (m1 * mx1 - m2 * mx2 + my2 - my1) / (m1 - m2); - if (fabsy1y2 > fabsy2y3) - yc = m1 * (xc - mx1) + my1; - else - yc = m2 * (xc - mx2) + my2; - } - - float dx,dy; - - dx = x2 - xc; - dy = y2 - yc; - rsqr = dx*dx + dy*dy; - - dx = xp - xc; - dy = yp - yc; - const float drsqr = dx*dx + dy*dy; - - return (drsqr <= rsqr) ? 1 : 0; -} - -static int ptcmp(void* up, const void *v1, const void *v2) -{ - const float* verts = (const float*)up; - const float* p1 = &verts[(*(const int*)v1)*3]; - const float* p2 = &verts[(*(const int*)v2)*3]; - if (p1[0] < p2[0]) - return -1; - else if (p1[0] > p2[0]) - return 1; - else - return 0; -} - -// Naive qsort implementation, since qsort_r is not standard. - -inline void iqswap(unsigned char* a, unsigned char* b, const int size) -{ - for (int i = 0; i < size; ++i) rcSwap(a[i], b[i]); -} - -void qsortr(void* data, int n, int stride, void* thunk, int (*cmp)(void *, const void *, const void *)) -{ - if (n <= 1) return; - unsigned char* d = (unsigned char*)data; - unsigned char* v = &d[0]; - int i = 0, j = n; - for (;;) - { - do { ++i; } while (i < n && cmp(thunk, &d[i*stride], v) < 0); - do { --j; } while (cmp(thunk, &d[j*stride], v) > 0); - if (i >= j) break; - iqswap(&d[i*stride], &d[j*stride], stride); - } - iqswap(&d[(i-1)*stride], &d[0], stride); - qsortr(d, i-1, stride, thunk, cmp); - qsortr(d+i*stride, n-i, stride, thunk, cmp); -} - - -// Based on Paul Bourke's triangulate.c -// http://astronomy.swin.edu.au/~pbourke/terrain/triangulate/triangulate.c -static void delaunay(const int nv, float *verts, rcIntArray& idx, rcIntArray& tris, rcIntArray& edges) -{ - // Sort vertices - idx.resize(nv); - for (int i = 0; i < nv; ++i) - idx[i] = i; - - qsortr(&idx[0], idx.size(), sizeof(int), verts, ptcmp); - - // Find the maximum and minimum vertex bounds. - // This is to allow calculation of the bounding triangle - float xmin = verts[0]; - float ymin = verts[2]; - float xmax = xmin; - float ymax = ymin; - for (int i = 1; i < nv; ++i) - { - xmin = rcMin(xmin, verts[i*3+0]); - xmax = rcMax(xmax, verts[i*3+0]); - ymin = rcMin(ymin, verts[i*3+2]); - ymax = rcMax(ymax, verts[i*3+2]); - } - float dx = xmax - xmin; - float dy = ymax - ymin; - float dmax = (dx > dy) ? dx : dy; - float xmid = (xmax + xmin) / 2.0f; - float ymid = (ymax + ymin) / 2.0f; - - // Set up the supertriangle - // This is a triangle which encompasses all the sample points. - // The supertriangle coordinates are added to the end of the - // vertex list. The supertriangle is the first triangle in - // the triangle list. - float sv[3*3]; - - sv[0] = xmid - 20 * dmax; - sv[1] = 0; - sv[2] = ymid - dmax; - - sv[3] = xmid; - sv[4] = 0; - sv[5] = ymid + 20 * dmax; - - sv[6] = xmid + 20 * dmax; - sv[7] = 0; - sv[8] = ymid - dmax; - - tris.push(-3); - tris.push(-2); - tris.push(-1); - tris.push(0); // not completed - - - for (int i = 0; i < nv; ++i) - { - const float xp = verts[idx[i]*3+0]; - const float yp = verts[idx[i]*3+2]; - - edges.resize(0); - - // Set up the edge buffer. - // If the point (xp,yp) lies inside the circumcircle then the - // three edges of that triangle are added to the edge buffer - // and that triangle is removed. - for (int j = 0; j < tris.size()/4; ++j) - { - int* t = &tris[j*4]; - if (t[3]) // completed? - continue; - const float* v1 = t[0] < 0 ? &sv[(t[0]+3)*3] : &verts[idx[t[0]]*3]; - const float* v2 = t[1] < 0 ? &sv[(t[1]+3)*3] : &verts[idx[t[1]]*3]; - const float* v3 = t[2] < 0 ? &sv[(t[2]+3)*3] : &verts[idx[t[2]]*3]; - float xc,yc,rsqr; - int inside = circumCircle(xp,yp, v1[0],v1[2], v2[0],v2[2], v3[0],v3[2], xc,yc,rsqr); - if (xc < xp && rcSqr(xp-xc) > rsqr) - t[3] = 1; - if (inside) - { - // Collect triangle edges. - edges.push(t[0]); - edges.push(t[1]); - edges.push(t[1]); - edges.push(t[2]); - edges.push(t[2]); - edges.push(t[0]); - // Remove triangle j. - t[0] = tris[tris.size()-4]; - t[1] = tris[tris.size()-3]; - t[2] = tris[tris.size()-2]; - t[3] = tris[tris.size()-1]; - tris.resize(tris.size()-4); - j--; - } - } - - // Remove duplicate edges. - const int ne = edges.size()/2; - for (int j = 0; j < ne-1; ++j) - { - for (int k = j+1; k < ne; ++k) - { - // Dupe?, make null. - if ((edges[j*2+0] == edges[k*2+1]) && (edges[j*2+1] == edges[k*2+0])) - { - edges[j*2+0] = 0; - edges[j*2+1] = 0; - edges[k*2+0] = 0; - edges[k*2+1] = 0; - } - } - } - - // Form new triangles for the current point - // Skipping over any null. - // All edges are arranged in clockwise order. - for (int j = 0; j < ne; ++j) - { - if (edges[j*2+0] == edges[j*2+1]) continue; - tris.push(edges[j*2+0]); - tris.push(edges[j*2+1]); - tris.push(i); - tris.push(0); // not completed - } - } - - // Remove triangles with supertriangle vertices - // These are triangles which have a vertex number greater than nv - for (int i = 0; i < tris.size()/4; ++i) - { - int* t = &tris[i*4]; - if (t[0] < 0 || t[1] < 0 || t[2] < 0) - { - t[0] = tris[tris.size()-4]; - t[1] = tris[tris.size()-3]; - t[2] = tris[tris.size()-2]; - t[3] = tris[tris.size()-1]; - tris.resize(tris.size()-4); - i--; - } - } - // Triangle vertices are pointing to sorted vertices, remap indices. - for (int i = 0; i < tris.size(); ++i) - tris[i] = idx[tris[i]]; -} - inline float vdot2(const float* a, const float* b) { return a[0]*b[0] + a[2]*b[2]; } +inline float vdistSq2(const float* p, const float* q) +{ + const float dx = q[0] - p[0]; + const float dy = q[2] - p[2]; + return dx*dx + dy*dy; +} + +inline float vdist2(const float* p, const float* q) +{ + return sqrtf(vdistSq2(p,q)); +} + +inline float vcross2(const float* p1, const float* p2, const float* p3) +{ + const float u1 = p2[0] - p1[0]; + const float v1 = p2[2] - p1[2]; + const float u2 = p3[0] - p1[0]; + const float v2 = p3[2] - p1[2]; + return u1 * v2 - v1 * u2; +} + +static bool circumCircle(const float* p1, const float* p2, const float* p3, + float* c, float& r) +{ + static const float EPS = 1e-6f; + + const float cp = vcross2(p1, p2, p3); + if (fabsf(cp) > EPS) + { + const float p1Sq = vdot2(p1,p1); + const float p2Sq = vdot2(p2,p2); + const float p3Sq = vdot2(p3,p3); + c[0] = (p1Sq*(p2[2]-p3[2]) + p2Sq*(p3[2]-p1[2]) + p3Sq*(p1[2]-p2[2])) / (2*cp); + c[2] = (p1Sq*(p3[0]-p2[0]) + p2Sq*(p1[0]-p3[0]) + p3Sq*(p2[0]-p1[0])) / (2*cp); + r = vdist2(c, p1); + return true; + } + + c[0] = p1[0]; + c[2] = p1[2]; + r = 0; + return false; +} + static float distPtTri(const float* p, const float* a, const float* b, const float* c) { float v0[3], v1[3], v2[3]; @@ -393,25 +192,306 @@ static float distToPoly(int nvert, const float* verts, const float* p) } -static unsigned short getHeight(const float* pos, const float* bmin, const float ics, const rcHeightPatch& hp) +static unsigned short getHeight(const float* pos, const float* bmin, const float cs, const float ics, const rcHeightPatch& hp) { int ix = (int)floorf((pos[0]-bmin[0])*ics + 0.01f); int iz = (int)floorf((pos[2]-bmin[2])*ics + 0.01f); ix = rcClamp(ix-hp.xmin, 0, hp.width); iz = rcClamp(iz-hp.ymin, 0, hp.height); unsigned short h = hp.data[ix+iz*hp.width]; + if (h == 0xffff) + { + // Special case when data might be bad. + // Find nearest neighbour pixel which has valid height. + const int off[8*2] = { -1,0, -1,-1, 0,-1, 1,-1, 1,0, 1,1, 0,1, -1,1}; + float dmin = FLT_MAX; + for (int i = 0; i < 8; ++i) + { + const int nx = ix+off[i*2+0]; + const int nz = iz+off[i*2+1]; + if (nx < 0 || nz < 0 || nx >= hp.width || nz >= hp.height) continue; + const unsigned short nh = hp.data[nx+nz*hp.width]; + if (nh == 0xffff) continue; + const float dx = (nx+0.5f)*cs-pos[0]; + const float dz = (nz+0.5f)*cs-pos[2]; + const float d = dx*dx+dz*dz; + if (d < dmin) + { + h = nh; + dmin = d; + } + } + } return h; } + +enum EdgeValues +{ + UNDEF = -1, + HULL = -2, +}; + +static int findEdge(const int* edges, int nedges, int s, int t) +{ + for (int i = 0; i < nedges; i++) + { + const int* e = &edges[i*4]; + if ((e[0] == s && e[1] == t) || (e[0] == t && e[1] == s)) + return i; + } + return UNDEF; +} + +static int addEdge(int* edges, int& nedges, const int maxEdges, int s, int t, int l, int r) +{ + if (nedges >= maxEdges) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "addEdge: Too many edges (%d/%d).", nedges, maxEdges); + return UNDEF; + } + + // Add edge if not already in the triangulation. + int e = findEdge(edges, nedges, s, t); + if (e == UNDEF) + { + int* e = &edges[nedges*4]; + e[0] = s; + e[1] = t; + e[2] = l; + e[3] = r; + return nedges++; + } + else + { + return UNDEF; + } +} + +static void updateLeftFace(int* e, int s, int t, int f) +{ + if (e[0] == s && e[2] == UNDEF) + e[2] = f; + else if (e[1] == s && e[3] == UNDEF) + e[3] = f; +} + +static int overlapSegSeg2d(const float* a, const float* b, const float* c, const float* d) +{ + const float a1 = vcross2(a, b, d); + const float a2 = vcross2(a, b, c); + if (a1*a2 < 0.0f) + { + float a3 = vcross2(c, d, a); + float a4 = a3 + a2 - a1; + if (a3 * a4 < 0.0f) + return 1; + } + return 0; +} + +static bool overlapEdges(const float* pts, const int* edges, int nedges, int s1, int t1) +{ + for (int i = 0; i < nedges; ++i) + { + const int s0 = edges[i*4+0]; + const int t0 = edges[i*4+1]; + // Same or connected edges do not overlap. + if (s0 == s1 || s0 == t1 || t0 == s1 || t0 == t1) + continue; + if (overlapSegSeg2d(&pts[s0*3],&pts[t0*3], &pts[s1*3],&pts[t1*3])) + return true; + } + return false; +} + +static void completeFacet(const float* pts, int npts, int* edges, int& nedges, const int maxEdges, int& nfaces, int e) +{ + static const float EPS = 1e-5f; + + int* edge = &edges[e*4]; + + // Cache s and t. + int s,t; + if (edge[2] == UNDEF) + { + s = edge[0]; + t = edge[1]; + } + else if (edge[3] == UNDEF) + { + s = edge[1]; + t = edge[0]; + } + else + { + // Edge already completed. + return; + } + + // Find best point on left of edge. + int pt = npts; + float c[3] = {0,0,0}; + float r = -1; + for (int u = 0; u < npts; ++u) + { + if (u == s || u == t) continue; + if (vcross2(&pts[s*3], &pts[t*3], &pts[u*3]) > EPS) + { + if (r < 0) + { + // The circle is not updated yet, do it now. + pt = u; + circumCircle(&pts[s*3], &pts[t*3], &pts[u*3], c, r); + continue; + } + const float d = vdist2(c, &pts[u*3]); + const float tol = 0.001f; + if (d > r*(1+tol)) + { + // Outside current circumcircle, skip. + continue; + } + else if (d < r*(1-tol)) + { + // Inside safe circumcircle, update circle. + pt = u; + circumCircle(&pts[s*3], &pts[t*3], &pts[u*3], c, r); + } + else + { + // Inside epsilon circum circle, do extra tests to make sure the edge is valid. + // s-u and t-u cannot overlap with s-pt nor t-pt if they exists. + if (overlapEdges(pts, edges, nedges, s,u)) + continue; + if (overlapEdges(pts, edges, nedges, t,u)) + continue; + // Edge is valid. + pt = u; + circumCircle(&pts[s*3], &pts[t*3], &pts[u*3], c, r); + } + } + } + + // Add new triangle or update edge info if s-t is on hull. + if (pt < npts) + { + // Update face information of edge being completed. + updateLeftFace(&edges[e*4], s, t, nfaces); + + // Add new edge or update face info of old edge. + e = findEdge(edges, nedges, pt, s); + if (e == UNDEF) + addEdge(edges, nedges, maxEdges, pt, s, nfaces, UNDEF); + else + updateLeftFace(&edges[e*4], pt, s, nfaces); + + // Add new edge or update face info of old edge. + e = findEdge(edges, nedges, t, pt); + if (e == UNDEF) + addEdge(edges, nedges, maxEdges, t, pt, nfaces, UNDEF); + else + updateLeftFace(&edges[e*4], t, pt, nfaces); + + nfaces++; + } + else + { + updateLeftFace(&edges[e*4], s, t, HULL); + } +} + +static void delaunayHull(const int npts, const float* pts, + const int nhull, const int* hull, + rcIntArray& tris, rcIntArray& edges) +{ + int nfaces = 0; + int nedges = 0; + const int maxEdges = npts*10; + edges.resize(maxEdges*4); + + for (int i = 0, j = nhull-1; i < nhull; j=i++) + addEdge(&edges[0], nedges, maxEdges, hull[j],hull[i], HULL, UNDEF); + + int currentEdge = 0; + while (currentEdge < nedges) + { + if (edges[currentEdge*4+2] == UNDEF) + completeFacet(pts, npts, &edges[0], nedges, maxEdges, nfaces, currentEdge); + if (edges[currentEdge*4+3] == UNDEF) + completeFacet(pts, npts, &edges[0], nedges, maxEdges, nfaces, currentEdge); + currentEdge++; + } + + // Create tris + tris.resize(nfaces*4); + for (int i = 0; i < nfaces*4; ++i) + tris[i] = -1; + + for (int i = 0; i < nedges; ++i) + { + const int* e = &edges[i*4]; + if (e[3] >= 0) + { + // Left face + int* t = &tris[e[3]*4]; + if (t[0] == -1) + { + t[0] = e[0]; + t[1] = e[1]; + } + else if (t[0] == e[1]) + t[2] = e[0]; + else if (t[1] == e[0]) + t[2] = e[1]; + } + if (e[2] >= 0) + { + // Right + int* t = &tris[e[2]*4]; + if (t[0] == -1) + { + t[0] = e[1]; + t[1] = e[0]; + } + else if (t[0] == e[0]) + t[2] = e[1]; + else if (t[1] == e[1]) + t[2] = e[0]; + } + } + + for (int i = 0; i < tris.size()/4; ++i) + { + int* t = &tris[i*4]; + if (t[0] == -1 || t[1] == -1 || t[2] == -1) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_WARNING, "delaunayHull: Removing dangling face %d [%d,%d,%d].", i, t[0],t[1],t[2]); + t[0] = tris[tris.size()-4]; + t[1] = tris[tris.size()-3]; + t[2] = tris[tris.size()-2]; + t[3] = tris[tris.size()-1]; + tris.resize(tris.size()-4); + } + } + +} + + + static bool buildPolyDetail(const float* in, const int nin, unsigned short reg, const float sampleDist, const float sampleMaxError, const rcCompactHeightfield& chf, const rcHeightPatch& hp, float* verts, int& nverts, rcIntArray& tris, - rcIntArray& edges, rcIntArray& idx, rcIntArray& samples) + rcIntArray& edges, rcIntArray& samples) { static const int MAX_VERTS = 256; static const int MAX_EDGE = 64; float edge[(MAX_EDGE+1)*3]; + int hull[MAX_VERTS]; + int nhull = 0; nverts = 0; @@ -419,7 +499,8 @@ static bool buildPolyDetail(const float* in, const int nin, unsigned short reg, vcopy(&verts[i*3], &in[i*3]); nverts = nin; - const float ics = 1.0f/chf.cs; + const float cs = chf.cs; + const float ics = 1.0f/cs; // Tesselate outlines. // This is done in separate pass in order to ensure @@ -430,17 +511,24 @@ static bool buildPolyDetail(const float* in, const int nin, unsigned short reg, { const float* vj = &in[j*3]; const float* vi = &in[i*3]; + bool swapped = false; // Make sure the segments are always handled in same order // using lexological sort or else there will be seams. if (fabsf(vj[0]-vi[0]) < 1e-6f) { if (vj[2] > vi[2]) + { rcSwap(vj,vi); + swapped = true; + } } else { if (vj[0] > vi[0]) + { rcSwap(vj,vi); + swapped = true; + } } // Create samples along the edge. float dx = vi[0] - vj[0]; @@ -458,7 +546,7 @@ static bool buildPolyDetail(const float* in, const int nin, unsigned short reg, pos[0] = vj[0] + dx*u; pos[1] = vj[1] + dy*u; pos[2] = vj[2] + dz*u; - pos[1] = chf.bmin[1] + getHeight(pos, chf.bmin, ics, hp)*chf.ch; + pos[1] = chf.bmin[1] + getHeight(pos, chf.bmin, cs, ics, hp)*chf.ch; } // Simplify samples. int idx[MAX_EDGE] = {0,nn}; @@ -495,26 +583,50 @@ static bool buildPolyDetail(const float* in, const int nin, unsigned short reg, ++k; } } + + hull[nhull++] = j; // Add new vertices. - for (int k = 1; k < nidx-1; ++k) + if (swapped) { - vcopy(&verts[nverts*3], &edge[idx[k]*3]); - nverts++; + for (int k = nidx-2; k > 0; --k) + { + vcopy(&verts[nverts*3], &edge[idx[k]*3]); + hull[nhull++] = nverts; + nverts++; + } + } + else + { + for (int k = 1; k < nidx-1; ++k) + { + vcopy(&verts[nverts*3], &edge[idx[k]*3]); + hull[nhull++] = nverts; + nverts++; + } } } } + // Tesselate the base mesh. edges.resize(0); tris.resize(0); - idx.resize(0); - delaunay(nverts, verts, idx, tris, edges); + + delaunayHull(nverts, verts, nhull, hull, tris, edges); if (tris.size() == 0) { + // Could not triangulate the poly, make sure there is some valid data there. if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildPolyDetail: Could not triangulate polygon."); - return false; + rcGetLog()->log(RC_LOG_WARNING, "buildPolyDetail: Could not triangulate polygon, adding default data."); + for (int i = 2; i < nverts; ++i) + { + tris.push(0); + tris.push(i-1); + tris.push(i); + tris.push(0); + } + return true; } if (sampleDist > 0) @@ -543,7 +655,7 @@ static bool buildPolyDetail(const float* in, const int nin, unsigned short reg, // Make sure the samples are not too close to the edges. if (distToPoly(nin,in,pt) > -sampleDist/2) continue; samples.push(x); - samples.push(getHeight(pt, chf.bmin, ics, hp)); + samples.push(getHeight(pt, chf.bmin, cs, ics, hp)); samples.push(z); } } @@ -583,8 +695,7 @@ static bool buildPolyDetail(const float* in, const int nin, unsigned short reg, // TODO: Incremental add instead of full rebuild. edges.resize(0); tris.resize(0); - idx.resize(0); - delaunay(nverts, verts, idx, tris, edges); + delaunayHull(nverts, verts, nhull, hull, tris, edges); if (nverts >= MAX_VERTS) break; @@ -597,7 +708,7 @@ static bool buildPolyDetail(const float* in, const int nin, unsigned short reg, static void getHeightData(const rcCompactHeightfield& chf, const unsigned short* poly, const int npoly, const unsigned short* verts, - rcHeightPatch& hp, rcIntArray& stack) + rcHeightPatch& hp, rcIntArray& stack, unsigned short* tmpData) { // Floodfill the heightfield to get 2D height data, // starting at vertex locations as seeds. @@ -636,6 +747,45 @@ static void getHeightData(const rcCompactHeightfield& chf, stack.push(ai); } } + + // Not no match, try polygon center. + if (stack.size() == 0) + { + int cx = 0, cy = 0, cz = 0; + for (int j = 0; j < npoly; ++j) + { + cx += (int)verts[poly[j]*3+0]; + cy += (int)verts[poly[j]*3+1]; + cz += (int)verts[poly[j]*3+2]; + } + cx /= npoly; + cy /= npoly; + cz /= npoly; + + if (cx >= hp.xmin || cx < hp.xmin+hp.width || + cz >= hp.ymin || cz < hp.ymin+hp.height) + { + const rcCompactCell& c = chf.cells[cx+cz*chf.width]; + int dmin = 0xffff; + int ci = -1; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + const rcCompactSpan& s = chf.spans[i]; + int d = rcAbs(cy - (int)s.y); + if (d < dmin) + { + ci = i; + dmin = d; + } + } + if (ci != -1) + { + stack.push(cx); + stack.push(cz); + stack.push(ci); + } + } + } while (stack.size() > 0) { @@ -671,7 +821,54 @@ static void getHeightData(const rcCompactHeightfield& chf, stack.push(ay); stack.push(ai); } - } + } + +/* unsigned short* src = hp.data; + unsigned short* dst = tmpData; + + for (int y = 0; y < hp.height-1; ++y) + { + for (int x = 0; x < hp.width-1; ++x) + { + const int idx = x+y*hp.width; + if (src[idx] != 0xffff) + { + dst[idx] = src[idx]; + continue; + } + + unsigned short h = 0xffff; + h = rcMin(h,src[idx+1]); + h = rcMin(h,src[idx+hp.width]); + h = rcMin(h,src[idx+1+hp.width]); + + dst[idx] = h; + } + } + + rcSwap(src,dst); + + for (int y = 1; y < hp.height; ++y) + { + for (int x = 1; x < hp.width; ++x) + { + const int idx = x+y*hp.width; + if (src[idx] != 0xffff) + { + dst[idx] = src[idx]; + continue; + } + + unsigned short h = 0xffff; + h = rcMin(h,src[idx-1]); + h = rcMin(h,src[idx-hp.width]); + h = rcMin(h,src[idx-1-hp.width]); + + dst[idx] = h; + } + } + + memcpy(src, dst, sizeof(unsigned short)*hp.width*hp.height);*/ } static unsigned char getEdgeFlags(const float* va, const float* vb, @@ -716,7 +913,6 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c rcIntArray edges(64); rcIntArray tris(512); - rcIntArray idx(512); rcIntArray stack(512); rcIntArray samples(512); float verts[256*3]; @@ -777,7 +973,15 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMeshDetail: Out of memory 'hp.data' (%d).", maxhw*maxhh); return false; } - + + rcScopedDelete tmpData = new unsigned short[maxhw*maxhh]; + if (!tmpData) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMeshDetail: Out of memory 'tmpData' (%d).", maxhw*maxhh); + return false; + } + dmesh.nmeshes = mesh.npolys; dmesh.nverts = 0; dmesh.ntris = 0; @@ -830,14 +1034,14 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c hp.ymin = bounds[i*4+2]; hp.width = bounds[i*4+1]-bounds[i*4+0]; hp.height = bounds[i*4+3]-bounds[i*4+2]; - getHeightData(chf, p, npoly, mesh.verts, hp, stack); + getHeightData(chf, p, npoly, mesh.verts, hp, stack, tmpData); // Build detail mesh. int nverts = 0; if (!buildPolyDetail(poly, npoly, mesh.regs[i], sampleDist, sampleMaxError, chf, hp, verts, nverts, tris, - edges, idx, samples)) + edges, samples)) { return false; } diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 6c8670f..38fac8d 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -9,7 +9,7 @@ }; }; 29B97313FDCFA39411CA2CEA /* Project object */ = { - activeBuildConfigurationName = Debug; + activeBuildConfigurationName = Release; activeExecutable = 6B8632970F78114600E2684A /* Recast */; activeTarget = 8D1107260486CEB800E47090 /* Recast */; addToTargets = ( @@ -25,7 +25,8 @@ 6B93FEFF1030443300F0C0DA /* Recast.cpp:275 */, 6B9301521032F08300F0C0DA /* Recast.cpp:275 */, 6B4C5232104FC1F600E88FB8 /* Recast.cpp:275 */, - 6BA8225E1066632D00AA331F /* RecastMeshDetail.cpp:519 */, + 6B57D313108C609500DDD053 /* RecastMeshDetail.cpp:622 */, + 6B57D37B108C699200DDD053 /* RecastMeshDetail.cpp:252 */, ); codeSenseManager = 6B8632AA0F78115100E2684A /* Code sense */; executables = ( @@ -116,115 +117,105 @@ PBXFileDataSource_Target_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 275822847; - PBXWorkspaceStateSaveDate = 275822847; + PBXPerProjectTemplateStateSaveDate = 277991086; + PBXWorkspaceStateSaveDate = 277991086; }; perUserProjectItems = { - 6B29D502104999490041538A = 6B29D502104999490041538A /* PBXTextBookmark */; - 6B29D53D104A79440041538A = 6B29D53D104A79440041538A /* PBXTextBookmark */; - 6B29D53F104A79440041538A = 6B29D53F104A79440041538A /* PBXTextBookmark */; - 6B29D540104A79440041538A = 6B29D540104A79440041538A /* PBXTextBookmark */; - 6B29D543104A79440041538A = 6B29D543104A79440041538A /* PBXTextBookmark */; - 6B29D544104A79440041538A = 6B29D544104A79440041538A /* PBXTextBookmark */; - 6B29D545104A79440041538A = 6B29D545104A79440041538A /* PBXTextBookmark */; - 6B29D54B104A79440041538A = 6B29D54B104A79440041538A /* PBXTextBookmark */; - 6B29D569104A81F50041538A = 6B29D569104A81F50041538A /* PBXTextBookmark */; - 6B3317F01046805E00E98B50 = 6B3317F01046805E00E98B50 /* PBXTextBookmark */; - 6B3317F21046805E00E98B50 = 6B3317F21046805E00E98B50 /* PBXTextBookmark */; - 6B3317F31046805E00E98B50 = 6B3317F31046805E00E98B50 /* PBXTextBookmark */; - 6B3317F71046805E00E98B50 = 6B3317F71046805E00E98B50 /* PBXTextBookmark */; - 6B33182C10469F7D00E98B50 = 6B33182C10469F7D00E98B50 /* PBXTextBookmark */; - 6B33183110469F7D00E98B50 = 6B33183110469F7D00E98B50 /* PBXTextBookmark */; - 6B33183210469F7D00E98B50 = 6B33183210469F7D00E98B50 /* PBXTextBookmark */; - 6B47BE1E105A47F400A26F5B = 6B47BE1E105A47F400A26F5B /* PBXTextBookmark */; - 6B47BE29105A47F400A26F5B = 6B47BE29105A47F400A26F5B /* PBXTextBookmark */; - 6B4C5162104EAA9F00E88FB8 = 6B4C5162104EAA9F00E88FB8 /* PBXTextBookmark */; - 6B4C5167104EAA9F00E88FB8 = 6B4C5167104EAA9F00E88FB8 /* PBXTextBookmark */; - 6B4C526C104FCA2400E88FB8 = 6B4C526C104FCA2400E88FB8 /* PBXTextBookmark */; - 6B4C52B0104FD54200E88FB8 = 6B4C52B0104FD54200E88FB8 /* PBXTextBookmark */; - 6B595C981056512C001FCC62 = 6B595C981056512C001FCC62 /* PBXTextBookmark */; - 6B595C991056512C001FCC62 = 6B595C991056512C001FCC62 /* PBXTextBookmark */; - 6B595C9A1056512C001FCC62 = 6B595C9A1056512C001FCC62 /* PBXTextBookmark */; - 6B595C9C1056512C001FCC62 = 6B595C9C1056512C001FCC62 /* PBXTextBookmark */; - 6B6FA3391070B90A009B0572 /* PBXTextBookmark */ = 6B6FA3391070B90A009B0572 /* PBXTextBookmark */; - 6B6FA33A1070B90A009B0572 /* PBXTextBookmark */ = 6B6FA33A1070B90A009B0572 /* PBXTextBookmark */; - 6B6FA33B1070B90A009B0572 /* PBXTextBookmark */ = 6B6FA33B1070B90A009B0572 /* PBXTextBookmark */; - 6B6FA33C1070B90A009B0572 /* PBXTextBookmark */ = 6B6FA33C1070B90A009B0572 /* PBXTextBookmark */; - 6B6FA3431070B93C009B0572 /* PBXTextBookmark */ = 6B6FA3431070B93C009B0572 /* PBXTextBookmark */; - 6B6FA3441070B93F009B0572 /* PBXTextBookmark */ = 6B6FA3441070B93F009B0572 /* PBXTextBookmark */; - 6B6FA3451070B941009B0572 /* PBXTextBookmark */ = 6B6FA3451070B941009B0572 /* PBXTextBookmark */; - 6B6FA34C1070B9AF009B0572 /* PBXTextBookmark */ = 6B6FA34C1070B9AF009B0572 /* PBXTextBookmark */; - 6B6FA34D1070B9AF009B0572 /* PBXTextBookmark */ = 6B6FA34D1070B9AF009B0572 /* PBXTextBookmark */; - 6B6FA3511070B9EE009B0572 /* PBXTextBookmark */ = 6B6FA3511070B9EE009B0572 /* PBXTextBookmark */; - 6B6FA35C1070BF26009B0572 /* PBXTextBookmark */ = 6B6FA35C1070BF26009B0572 /* PBXTextBookmark */; - 6B6FA35D1070BF26009B0572 /* PBXTextBookmark */ = 6B6FA35D1070BF26009B0572 /* PBXTextBookmark */; - 6B853D671066ACF5009B426A = 6B853D671066ACF5009B426A /* PBXTextBookmark */; - 6B853DD41066C751009B426A = 6B853DD41066C751009B426A /* PBXTextBookmark */; - 6BA821FE106651F300AA331F = 6BA821FE106651F300AA331F /* PBXTextBookmark */; - 6BA82204106651F300AA331F = 6BA82204106651F300AA331F /* PBXTextBookmark */; - 6BA82211106651F300AA331F = 6BA82211106651F300AA331F /* PBXTextBookmark */; - 6BA82232106660E000AA331F = 6BA82232106660E000AA331F /* PBXTextBookmark */; - 6BC43053104BF2B10041BBF5 = 6BC43053104BF2B10041BBF5 /* PBXTextBookmark */; - 6BC43054104BF2B10041BBF5 = 6BC43054104BF2B10041BBF5 /* PBXTextBookmark */; - 6BC43055104BF2B10041BBF5 = 6BC43055104BF2B10041BBF5 /* PBXTextBookmark */; - 6BC43059104BF2B10041BBF5 = 6BC43059104BF2B10041BBF5 /* PBXTextBookmark */; - 6BC4305A104BF2B10041BBF5 = 6BC4305A104BF2B10041BBF5 /* PBXTextBookmark */; - 6BC4305B104BF2B10041BBF5 = 6BC4305B104BF2B10041BBF5 /* PBXTextBookmark */; - 6BC4305C104BF2B10041BBF5 = 6BC4305C104BF2B10041BBF5 /* PBXTextBookmark */; - 6BC43060104BF2B10041BBF5 = 6BC43060104BF2B10041BBF5 /* PBXTextBookmark */; - 6BC430CD104CFB6C0041BBF5 = 6BC430CD104CFB6C0041BBF5 /* PBXTextBookmark */; - 6BC430D2104CFB6C0041BBF5 = 6BC430D2104CFB6C0041BBF5 /* PBXTextBookmark */; - 6BC430D8104CFB6C0041BBF5 = 6BC430D8104CFB6C0041BBF5 /* PBXTextBookmark */; - 6BC43126104E846A0041BBF5 = 6BC43126104E846A0041BBF5 /* PBXTextBookmark */; - 6BC43139104E90970041BBF5 = 6BC43139104E90970041BBF5 /* PBXTextBookmark */; - 6BC4313A104E90970041BBF5 = 6BC4313A104E90970041BBF5 /* PBXTextBookmark */; - 6BCB773F105D706200C20CF6 = 6BCB773F105D706200C20CF6 /* PBXTextBookmark */; - 6BCB7742105D706200C20CF6 = 6BCB7742105D706200C20CF6 /* PBXTextBookmark */; - 6BCB7744105D706200C20CF6 = 6BCB7744105D706200C20CF6 /* PBXTextBookmark */; - 6BCB774D105D706200C20CF6 = 6BCB774D105D706200C20CF6 /* PBXTextBookmark */; - 6BCB7750105D706200C20CF6 = 6BCB7750105D706200C20CF6 /* PBXTextBookmark */; - 6BCB778A105E224500C20CF6 = 6BCB778A105E224500C20CF6 /* PBXTextBookmark */; - 6BCB77A1105E7EA400C20CF6 = 6BCB77A1105E7EA400C20CF6 /* PBXTextBookmark */; - 6BCB77B7105E80FD00C20CF6 = 6BCB77B7105E80FD00C20CF6 /* PBXTextBookmark */; - 6BCB77D1105E870D00C20CF6 = 6BCB77D1105E870D00C20CF6 /* PBXTextBookmark */; - 6BF888A810679FAF00377388 = 6BF888A810679FAF00377388 /* PBXTextBookmark */; - 6BF888B81070B04F00377388 = 6BF888B81070B04F00377388 /* PBXTextBookmark */; - 6BF888BB1070B04F00377388 = 6BF888BB1070B04F00377388 /* PBXTextBookmark */; - 6BF888BD1070B04F00377388 = 6BF888BD1070B04F00377388 /* PBXTextBookmark */; - 6BF888BE1070B04F00377388 = 6BF888BE1070B04F00377388 /* PBXTextBookmark */; - 6BF888C11070B04F00377388 = 6BF888C11070B04F00377388 /* PBXTextBookmark */; - 6BF888C21070B04F00377388 = 6BF888C21070B04F00377388 /* PBXTextBookmark */; - 6BF888C31070B04F00377388 = 6BF888C31070B04F00377388 /* PBXTextBookmark */; - 6BF888C41070B04F00377388 = 6BF888C41070B04F00377388 /* PBXTextBookmark */; - 6BF888C51070B04F00377388 = 6BF888C51070B04F00377388 /* PBXTextBookmark */; - 6BF888C81070B04F00377388 = 6BF888C81070B04F00377388 /* PBXTextBookmark */; - 6BF888CA1070B04F00377388 = 6BF888CA1070B04F00377388 /* PBXTextBookmark */; - 6BF888CE1070B04F00377388 = 6BF888CE1070B04F00377388 /* PBXTextBookmark */; - 6BF888CF1070B04F00377388 = 6BF888CF1070B04F00377388 /* PBXTextBookmark */; - 6BF888D01070B04F00377388 = 6BF888D01070B04F00377388 /* PBXTextBookmark */; - 6BF888D21070B04F00377388 = 6BF888D21070B04F00377388 /* PBXTextBookmark */; - 6BF888DE1070B1F800377388 = 6BF888DE1070B1F800377388 /* PBXTextBookmark */; - 6BF888DF1070B1F800377388 = 6BF888DF1070B1F800377388 /* PBXTextBookmark */; - 6BF888E21070B1F800377388 = 6BF888E21070B1F800377388 /* PBXTextBookmark */; - 6BF888E31070B1F800377388 = 6BF888E31070B1F800377388 /* PBXTextBookmark */; - 6BF888E41070B1F800377388 = 6BF888E41070B1F800377388 /* PBXTextBookmark */; - 6BF888E51070B1F800377388 = 6BF888E51070B1F800377388 /* PBXTextBookmark */; - 6BF888E71070B20700377388 = 6BF888E71070B20700377388 /* PBXTextBookmark */; - 6BF888E91070B20700377388 = 6BF888E91070B20700377388 /* PBXTextBookmark */; - 6BF888EE1070B30700377388 = 6BF888EE1070B30700377388 /* PBXTextBookmark */; - 6BF888F21070B3A300377388 = 6BF888F21070B3A300377388 /* PBXTextBookmark */; - 6BF888F41070B3A300377388 = 6BF888F41070B3A300377388 /* PBXTextBookmark */; - 6BF888FC1070B6A400377388 = 6BF888FC1070B6A400377388 /* PBXTextBookmark */; - 6BF888FF1070B70B00377388 = 6BF888FF1070B70B00377388 /* PBXTextBookmark */; - 6BF889001070B70B00377388 = 6BF889001070B70B00377388 /* PBXTextBookmark */; - 6BF889011070B70B00377388 = 6BF889011070B70B00377388 /* PBXTextBookmark */; - 6BF889021070B70B00377388 = 6BF889021070B70B00377388 /* PBXTextBookmark */; - 6BF889031070B70B00377388 = 6BF889031070B70B00377388 /* PBXTextBookmark */; - 6BF889041070B70B00377388 = 6BF889041070B70B00377388 /* PBXTextBookmark */; - 6BF889051070B70B00377388 = 6BF889051070B70B00377388 /* PBXTextBookmark */; - 6BF889061070B70B00377388 = 6BF889061070B70B00377388 /* PBXTextBookmark */; - 6BF889071070B70B00377388 = 6BF889071070B70B00377388 /* PBXTextBookmark */; - 6BF889091070B71100377388 = 6BF889091070B71100377388 /* PBXTextBookmark */; + 6B3BFADD107A80E1006284CD = 6B3BFADD107A80E1006284CD /* PBXTextBookmark */; + 6B3BFADF107A80E1006284CD = 6B3BFADF107A80E1006284CD /* PBXTextBookmark */; + 6B3BFB0C107A8979006284CD = 6B3BFB0C107A8979006284CD /* PBXTextBookmark */; + 6B3BFB0D107A8979006284CD = 6B3BFB0D107A8979006284CD /* PBXTextBookmark */; + 6B3BFB0E107A8979006284CD = 6B3BFB0E107A8979006284CD /* PBXTextBookmark */; + 6B3BFB12107A8979006284CD = 6B3BFB12107A8979006284CD /* PBXTextBookmark */; + 6B3BFB13107A8979006284CD = 6B3BFB13107A8979006284CD /* PBXTextBookmark */; + 6B57D32D108C60FF00DDD053 = 6B57D32D108C60FF00DDD053 /* PBXTextBookmark */; + 6B57D358108C66B200DDD053 = 6B57D358108C66B200DDD053 /* PBXTextBookmark */; + 6B57D35B108C66B200DDD053 = 6B57D35B108C66B200DDD053 /* PBXTextBookmark */; + 6B57D372108C692900DDD053 = 6B57D372108C692900DDD053 /* PBXTextBookmark */; + 6B57D376108C692900DDD053 = 6B57D376108C692900DDD053 /* PBXTextBookmark */; + 6B57D388108C69C700DDD053 = 6B57D388108C69C700DDD053 /* PBXTextBookmark */; + 6B57D389108C69C700DDD053 = 6B57D389108C69C700DDD053 /* PBXTextBookmark */; + 6B57D38F108C69E400DDD053 = 6B57D38F108C69E400DDD053 /* PBXTextBookmark */; + 6B57D391108C69E400DDD053 = 6B57D391108C69E400DDD053 /* PBXTextBookmark */; + 6B57D393108C69E400DDD053 = 6B57D393108C69E400DDD053 /* PBXTextBookmark */; + 6B57D395108C69E400DDD053 = 6B57D395108C69E400DDD053 /* PBXTextBookmark */; + 6B57D39E108C6A6000DDD053 = 6B57D39E108C6A6000DDD053 /* PBXTextBookmark */; + 6B57D3AC108CE91400DDD053 = 6B57D3AC108CE91400DDD053 /* PBXTextBookmark */; + 6B6FA3611070C102009B0572 = 6B6FA3611070C102009B0572 /* PBXTextBookmark */; + 6B6FA36B1070C1F7009B0572 = 6B6FA36B1070C1F7009B0572 /* PBXTextBookmark */; + 6B6FA3B31076452F009B0572 = 6B6FA3B31076452F009B0572 /* PBXTextBookmark */; + 6B6FA3B41076452F009B0572 = 6B6FA3B41076452F009B0572 /* PBXTextBookmark */; + 6B6FA3B61076452F009B0572 = 6B6FA3B61076452F009B0572 /* PBXTextBookmark */; + 6B6FA3B81076452F009B0572 = 6B6FA3B81076452F009B0572 /* PBXTextBookmark */; + 6B6FA3B91076452F009B0572 = 6B6FA3B91076452F009B0572 /* PBXTextBookmark */; + 6B6FA3BA1076452F009B0572 = 6B6FA3BA1076452F009B0572 /* PBXTextBookmark */; + 6B6FA3BC1076452F009B0572 = 6B6FA3BC1076452F009B0572 /* PBXTextBookmark */; + 6B7FB6F21091CF16001BA51A /* PBXTextBookmark */ = 6B7FB6F21091CF16001BA51A /* PBXTextBookmark */; + 6B7FB6FD1091CF2C001BA51A /* PBXTextBookmark */ = 6B7FB6FD1091CF2C001BA51A /* PBXTextBookmark */; + 6B7FB6FF1091CF3E001BA51A /* PBXTextBookmark */ = 6B7FB6FF1091CF3E001BA51A /* PBXTextBookmark */; + 6B7FB7011091CF83001BA51A /* PBXTextBookmark */ = 6B7FB7011091CF83001BA51A /* PBXTextBookmark */; + 6B7FB7031091D079001BA51A /* PBXTextBookmark */ = 6B7FB7031091D079001BA51A /* PBXTextBookmark */; + 6B7FB7061091D0A0001BA51A /* PBXTextBookmark */ = 6B7FB7061091D0A0001BA51A /* PBXTextBookmark */; + 6B7FB7081091D136001BA51A /* PBXTextBookmark */ = 6B7FB7081091D136001BA51A /* PBXTextBookmark */; + 6B7FB70A1091D160001BA51A /* PBXTextBookmark */ = 6B7FB70A1091D160001BA51A /* PBXTextBookmark */; + 6B7FB70B1091D235001BA51A /* PBXTextBookmark */ = 6B7FB70B1091D235001BA51A /* PBXTextBookmark */; + 6B7FB70C1091D251001BA51A /* PBXTextBookmark */ = 6B7FB70C1091D251001BA51A /* PBXTextBookmark */; + 6B7FB70F1091D2F5001BA51A /* PBXTextBookmark */ = 6B7FB70F1091D2F5001BA51A /* PBXTextBookmark */; + 6B7FB7131091D33E001BA51A /* PBXTextBookmark */ = 6B7FB7131091D33E001BA51A /* PBXTextBookmark */; + 6B7FB7151091D3F6001BA51A /* PBXTextBookmark */ = 6B7FB7151091D3F6001BA51A /* PBXTextBookmark */; + 6B7FB7181091D452001BA51A /* PBXTextBookmark */ = 6B7FB7181091D452001BA51A /* PBXTextBookmark */; + 6B7FB71A1091D56E001BA51A /* PBXTextBookmark */ = 6B7FB71A1091D56E001BA51A /* PBXTextBookmark */; + 6B7FB7221091D70F001BA51A /* PBXTextBookmark */ = 6B7FB7221091D70F001BA51A /* PBXTextBookmark */; + 6B7FB7231091D70F001BA51A /* PBXTextBookmark */ = 6B7FB7231091D70F001BA51A /* PBXTextBookmark */; + 6B7FB7261091D762001BA51A /* PBXTextBookmark */ = 6B7FB7261091D762001BA51A /* PBXTextBookmark */; + 6B7FB7281091D79B001BA51A /* PBXTextBookmark */ = 6B7FB7281091D79B001BA51A /* PBXTextBookmark */; + 6B7FB72D1091D92E001BA51A /* PBXTextBookmark */ = 6B7FB72D1091D92E001BA51A /* PBXTextBookmark */; + 6B7FB7301091D9BD001BA51A /* PBXTextBookmark */ = 6B7FB7301091D9BD001BA51A /* PBXTextBookmark */; + 6B7FB7321091D9E4001BA51A /* PBXTextBookmark */ = 6B7FB7321091D9E4001BA51A /* PBXTextBookmark */; + 6B7FB7351091DD43001BA51A /* PBXTextBookmark */ = 6B7FB7351091DD43001BA51A /* PBXTextBookmark */; + 6B7FB7361091DD43001BA51A /* PBXTextBookmark */ = 6B7FB7361091DD43001BA51A /* PBXTextBookmark */; + 6B7FB7371091DD43001BA51A /* PBXTextBookmark */ = 6B7FB7371091DD43001BA51A /* PBXTextBookmark */; + 6B7FB7381091DD43001BA51A /* PBXTextBookmark */ = 6B7FB7381091DD43001BA51A /* PBXTextBookmark */; + 6B7FB7391091DD43001BA51A /* PBXTextBookmark */ = 6B7FB7391091DD43001BA51A /* PBXTextBookmark */; + 6B7FB73D1091DE87001BA51A /* PBXTextBookmark */ = 6B7FB73D1091DE87001BA51A /* PBXTextBookmark */; + 6B7FB73E1091DE91001BA51A /* PBXTextBookmark */ = 6B7FB73E1091DE91001BA51A /* PBXTextBookmark */; + 6B7FB73F1091DE9E001BA51A /* PBXTextBookmark */ = 6B7FB73F1091DE9E001BA51A /* PBXTextBookmark */; + 6B7FB7401091DEA2001BA51A /* PBXTextBookmark */ = 6B7FB7401091DEA2001BA51A /* PBXTextBookmark */; + 6B7FB7451091E02E001BA51A /* PBXTextBookmark */ = 6B7FB7451091E02E001BA51A /* PBXTextBookmark */; + 6B7FB7461091E02E001BA51A /* PBXTextBookmark */ = 6B7FB7461091E02E001BA51A /* PBXTextBookmark */; + 6B9BE372107BC6A40036CC81 = 6B9BE372107BC6A40036CC81 /* PBXTextBookmark */; + 6B9BE374107BC6A40036CC81 = 6B9BE374107BC6A40036CC81 /* PBXTextBookmark */; + 6BD9E0CB1090A3B500585B30 = 6BD9E0CB1090A3B500585B30 /* PBXTextBookmark */; + 6BD9E0CC1090A3B500585B30 = 6BD9E0CC1090A3B500585B30 /* PBXTextBookmark */; + 6BD9E0D61090A41400585B30 = 6BD9E0D61090A41400585B30 /* PBXTextBookmark */; + 6BD9E0D81090A43200585B30 = 6BD9E0D81090A43200585B30 /* PBXTextBookmark */; + 6BD9E0DB1090AE3200585B30 = 6BD9E0DB1090AE3200585B30 /* PBXTextBookmark */; + 6BD9E0DE1090AFDB00585B30 = 6BD9E0DE1090AFDB00585B30 /* PBXTextBookmark */; + 6BD9E0DF1090AFFC00585B30 = 6BD9E0DF1090AFFC00585B30 /* PBXTextBookmark */; + 6BD9E0E01090B00000585B30 = 6BD9E0E01090B00000585B30 /* PBXTextBookmark */; + 6BD9E0E21090B05300585B30 = 6BD9E0E21090B05300585B30 /* PBXTextBookmark */; + 6BD9E0E51091940300585B30 = 6BD9E0E51091940300585B30 /* PBXTextBookmark */; + 6BD9E0E7109195CE00585B30 = 6BD9E0E7109195CE00585B30 /* PBXTextBookmark */; + 6BD9E0EB1091964C00585B30 = 6BD9E0EB1091964C00585B30 /* PBXTextBookmark */; + 6BD9E0EE1091967E00585B30 = 6BD9E0EE1091967E00585B30 /* PBXTextBookmark */; + 6BD9E0EF1091969100585B30 = 6BD9E0EF1091969100585B30 /* PBXTextBookmark */; + 6BD9E0F2109196F000585B30 = 6BD9E0F2109196F000585B30 /* PBXTextBookmark */; + 6BD9E13510919A2300585B30 = 6BD9E13510919A2300585B30 /* PBXTextBookmark */; + 6BD9E13810919A8300585B30 = 6BD9E13810919A8300585B30 /* PBXTextBookmark */; + 6BD9E13910919ADD00585B30 = 6BD9E13910919ADD00585B30 /* PBXTextBookmark */; + 6BD9E14010919BDC00585B30 = 6BD9E14010919BDC00585B30 /* PBXTextBookmark */; + 6BD9E14310919E7200585B30 = 6BD9E14310919E7200585B30 /* PBXTextBookmark */; + 6BD9E1631091AACB00585B30 = 6BD9E1631091AACB00585B30 /* PBXTextBookmark */; + 6BD9E16E1091AAE100585B30 = 6BD9E16E1091AAE100585B30 /* PBXTextBookmark */; + 6BD9E1721091AB1A00585B30 = 6BD9E1721091AB1A00585B30 /* PBXTextBookmark */; + 6BD9E1871091C5CC00585B30 = 6BD9E1871091C5CC00585B30 /* PBXTextBookmark */; + 6BD9E1881091C5F900585B30 = 6BD9E1881091C5F900585B30 /* PBXTextBookmark */; + 6BD9E1891091C60200585B30 = 6BD9E1891091C60200585B30 /* PBXTextBookmark */; + 6BD9E1A11091C81400585B30 = 6BD9E1A11091C81400585B30 /* PBXTextBookmark */; + 6BD9E1AE1091C89300585B30 = 6BD9E1AE1091C89300585B30 /* PBXTextBookmark */; + 6BD9E1C81091CB3100585B30 = 6BD9E1C81091CB3100585B30 /* PBXTextBookmark */; + 6BD9E1CB1091CBA100585B30 = 6BD9E1CB1091CBA100585B30 /* PBXTextBookmark */; + 6BD9E1CD1091CBC600585B30 = 6BD9E1CD1091CBC600585B30 /* PBXTextBookmark */; }; sourceControlManager = 6B8632A90F78115100E2684A /* Source Control */; userBuildSettings = { @@ -251,8 +242,7 @@ hitCount = 0; ignoreCount = 0; lineNumber = 48; - location = Recast; - modificationTime = 275820615.342737; + modificationTime = 277989718.279558; state = 1; }; 6B0249ED10037C0A00CF7107 /* DetourTileNavMesh.cpp:1 */ = { @@ -268,8 +258,7 @@ hitCount = 0; ignoreCount = 0; lineNumber = 1; - location = Recast; - modificationTime = 275820615.343371; + modificationTime = 277989718.2777531; state = 1; }; 6B0249EF10037C0C00CF7107 /* DetourTileNavMesh.cpp:1 */ = { @@ -285,8 +274,7 @@ hitCount = 0; ignoreCount = 0; lineNumber = 1; - location = Recast; - modificationTime = 275820615.343635; + modificationTime = 277989718.27859; state = 1; }; 6B024AC01004AB3900CF7107 /* DetourTileNavMesh.cpp:1 */ = { @@ -302,8 +290,7 @@ hitCount = 0; ignoreCount = 0; lineNumber = 1; - location = Recast; - modificationTime = 275820615.343862; + modificationTime = 277989718.278908; state = 1; }; 6B092B920FFCC2AC0088D3A5 /* DetourTileNavMeshBuilder.h */ = { @@ -350,9 +337,9 @@ }; 6B137C6C0F7FCBBB00459200 /* imgui.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1167, 9360}}"; - sepNavSelRange = "{5820, 0}"; - sepNavVisRange = "{11661, 1248}"; + sepNavIntBoundsRect = "{{0, 0}, {1219, 9760}}"; + sepNavSelRange = "{1365, 0}"; + sepNavVisRange = "{1195, 415}"; }; }; 6B137C6D0F7FCBBB00459200 /* MeshLoaderObj.cpp */ = { @@ -392,9 +379,9 @@ }; 6B137C7E0F7FCBFE00459200 /* Recast.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 8128}}"; - sepNavSelRange = "{16149, 0}"; - sepNavVisRange = "{15676, 1809}"; + sepNavIntBoundsRect = "{{0, 0}, {1219, 8704}}"; + sepNavSelRange = "{8409, 0}"; + sepNavVisRange = "{8125, 424}"; }; }; 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */ = { @@ -435,9 +422,9 @@ }; 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 12784}}"; - sepNavSelRange = "{8860, 0}"; - sepNavVisRange = "{8297, 896}"; + sepNavIntBoundsRect = "{{0, 0}, {1219, 12768}}"; + sepNavSelRange = "{16754, 0}"; + sepNavVisRange = "{16545, 338}"; }; }; 6B137C850F7FCC1100459200 /* RecastFilter.cpp */ = { @@ -457,9 +444,9 @@ }; 6B137C870F7FCC1100459200 /* RecastMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 18720}}"; - sepNavSelRange = "{17746, 0}"; - sepNavVisRange = "{15885, 893}"; + sepNavIntBoundsRect = "{{0, 0}, {915, 18496}}"; + sepNavSelRange = "{25018, 0}"; + sepNavVisRange = "{24755, 701}"; }; }; 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */ = { @@ -471,9 +458,9 @@ }; 6B137C890F7FCC1100459200 /* RecastRegion.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 19760}}"; - sepNavSelRange = "{25815, 0}"; - sepNavVisRange = "{25554, 763}"; + sepNavIntBoundsRect = "{{0, 0}, {915, 19904}}"; + sepNavSelRange = "{4919, 0}"; + sepNavVisRange = "{4547, 673}"; }; }; 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */ = { @@ -501,7 +488,7 @@ uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {915, 1072}}"; sepNavSelRange = "{960, 0}"; - sepNavVisRange = "{613, 833}"; + sepNavVisRange = "{596, 850}"; }; }; 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = { @@ -520,108 +507,18 @@ }; 6B25B6160FFA62BE004F1BC4 /* Sample_StatMeshSimple.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1160, 9104}}"; - sepNavSelRange = "{13425, 0}"; - sepNavVisRange = "{12836, 897}"; + sepNavIntBoundsRect = "{{0, 0}, {1160, 9328}}"; + sepNavSelRange = "{6674, 0}"; + sepNavVisRange = "{6148, 822}"; }; }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 12400}}"; - sepNavSelRange = "{12751, 0}"; - sepNavVisRange = "{12515, 666}"; + sepNavIntBoundsRect = "{{0, 0}, {915, 12512}}"; + sepNavSelRange = "{933, 0}"; + sepNavVisRange = "{688, 562}"; }; }; - 6B29D502104999490041538A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 349"; - rLen = 0; - rLoc = 8860; - rType = 0; - vrLen = 724; - vrLoc = 8372; - }; - 6B29D53D104A79440041538A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B092B920FFCC2AC0088D3A5 /* DetourTileNavMeshBuilder.h */; - name = "DetourTileNavMeshBuilder.h: 15"; - rLen = 0; - rLoc = 812; - rType = 0; - vrLen = 1461; - vrLoc = 0; - }; - 6B29D53F104A79440041538A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B092B930FFCC2BD0088D3A5 /* DetourTileNavMeshBuilder.cpp */; - name = "DetourTileNavMeshBuilder.cpp: 35"; - rLen = 83; - rLoc = 1541; - rType = 0; - vrLen = 964; - vrLoc = 976; - }; - 6B29D540104A79440041538A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC580FFB8A68005BE9CC /* DetourTileNavMesh.h */; - name = "DetourTileNavMesh.h: 27"; - rLen = 89; - rLoc = 1128; - rType = 0; - vrLen = 1189; - vrLoc = 1048; - }; - 6B29D543104A79440041538A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC580FFB8A68005BE9CC /* DetourTileNavMesh.h */; - name = "DetourTileNavMesh.h: 37"; - rLen = 15; - rLoc = 1611; - rType = 0; - vrLen = 1235; - vrLoc = 975; - }; - 6B29D544104A79440041538A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B092B930FFCC2BD0088D3A5 /* DetourTileNavMeshBuilder.cpp */; - name = "DetourTileNavMeshBuilder.cpp: 132"; - rLen = 0; - rLoc = 4244; - rType = 0; - vrLen = 743; - vrLoc = 3975; - }; - 6B29D545104A79440041538A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B092B920FFCC2AC0088D3A5 /* DetourTileNavMeshBuilder.h */; - name = "DetourTileNavMeshBuilder.h: 29"; - rLen = 0; - rLoc = 1461; - rType = 0; - vrLen = 1461; - vrLoc = 0; - }; - 6B29D54B104A79440041538A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC590FFB8A7A005BE9CC /* DetourTileNavMesh.cpp */; - name = "DetourTileNavMesh.cpp: 547"; - rLen = 0; - rLoc = 13941; - rType = 0; - vrLen = 708; - vrLoc = 13892; - }; - 6B29D569104A81F50041538A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; - name = "main.cpp: 558"; - rLen = 0; - rLoc = 12576; - rType = 0; - vrLen = 593; - vrLoc = 12544; - }; 6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {915, 1776}}"; @@ -660,180 +557,80 @@ }; 6B2AEC590FFB8A7A005BE9CC /* DetourTileNavMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 22448}}"; - sepNavSelRange = "{13941, 0}"; - sepNavVisRange = "{13785, 875}"; + sepNavIntBoundsRect = "{{0, 0}, {915, 22512}}"; + sepNavSelRange = "{19332, 0}"; + sepNavVisRange = "{18658, 1063}"; }; }; - 6B33171B1045683900E98B50 /* inttor.c */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = inttor.c; - path = "/Users/memon/Downloads/GraphicsGems 2/gemsii/intersect/inttor.c"; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 2800}}"; - sepNavSelRange = "{656, 0}"; - sepNavVisRange = "{522, 817}"; - }; - }; - 6B3317F01046805E00E98B50 /* PBXTextBookmark */ = { + 6B3BFADD107A80E1006284CD /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B3317F11046805E00E98B50 /* Roots3And4.c */; - name = "Roots3And4.c: 96"; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 998"; rLen = 0; - rLoc = 2252; + rLoc = 25018; rType = 0; - vrLen = 661; - vrLoc = 1829; + vrLen = 701; + vrLoc = 24755; }; - 6B3317F11046805E00E98B50 /* Roots3And4.c */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = Roots3And4.c; - path = "/Users/memon/Downloads/GraphicsGems 2/gems/Roots3And4.c"; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 3616}}"; - sepNavSelRange = "{2252, 0}"; - sepNavVisRange = "{1828, 665}"; - }; - }; - 6B3317F21046805E00E98B50 /* PBXTextBookmark */ = { + 6B3BFADF107A80E1006284CD /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B33171B1045683900E98B50 /* inttor.c */; - name = "inttor.c: 37"; + fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; + name = "RecastMesh.cpp: 998"; rLen = 0; - rLoc = 656; + rLoc = 25018; rType = 0; - vrLen = 782; - vrLoc = 534; + vrLen = 701; + vrLoc = 24755; }; - 6B3317F31046805E00E98B50 /* PBXTextBookmark */ = { + 6B3BFB0C107A8979006284CD /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B3317F41046805E00E98B50 /* Roots3And4.c */; - name = "Roots3And4.c: 28"; - rLen = 3794; - rLoc = 994; - rType = 0; - vrLen = 1154; - vrLoc = 0; - }; - 6B3317F41046805E00E98B50 /* Roots3And4.c */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = Roots3And4.c; - path = /Users/memon/Downloads/GraphicsGems/gems/Roots3And4.c; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 3456}}"; - sepNavSelRange = "{994, 3794}"; - sepNavVisRange = "{0, 1240}"; - }; - }; - 6B3317F71046805E00E98B50 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B3317F81046805E00E98B50 /* intsph.c */; - name = "intsph.c: 36"; + fRef = 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */; + name = "DetourStatNavMeshBuilder.cpp: 102"; rLen = 0; - rLoc = 1200; + rLoc = 2718; rType = 0; - vrLen = 908; - vrLoc = 864; + vrLen = 722; + vrLoc = 2485; }; - 6B3317F81046805E00E98B50 /* intsph.c */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = intsph.c; - path = /Users/memon/Downloads/GraphicsGems/gemsii/intersect/intsph.c; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 976}}"; - sepNavSelRange = "{1200, 0}"; - sepNavVisRange = "{863, 910}"; - }; - }; - 6B33182C10469F7D00E98B50 /* PBXTextBookmark */ = { + 6B3BFB0D107A8979006284CD /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; - name = "RecastLog.h: 51"; + fRef = 6B25B6120FFA62AD004F1BC4 /* Sample_StatMeshSimple.h */; + name = "Sample_StatMeshSimple.h: 50"; rLen = 0; - rLoc = 1648; + rLoc = 960; rType = 0; - vrLen = 727; - vrLoc = 1419; + vrLen = 850; + vrLoc = 596; }; - 6B33183110469F7D00E98B50 /* PBXTextBookmark */ = { + 6B3BFB0E107A8979006284CD /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; - name = "Sample_TileMesh.cpp: 822"; + fRef = 6B25B6160FFA62BE004F1BC4 /* Sample_StatMeshSimple.cpp */; + name = "Sample_StatMeshSimple.cpp: 506"; rLen = 0; - rLoc = 23199; + rLoc = 15330; rType = 0; - vrLen = 1283; - vrLoc = 0; + vrLen = 969; + vrLoc = 13733; }; - 6B33183210469F7D00E98B50 /* PBXTextBookmark */ = { + 6B3BFB12107A8979006284CD /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B137C800F7FCBFE00459200 /* RecastLog.h */; - name = "RecastLog.h: 51"; + fRef = 6B25B6120FFA62AD004F1BC4 /* Sample_StatMeshSimple.h */; + name = "Sample_StatMeshSimple.h: 50"; rLen = 0; - rLoc = 1648; + rLoc = 960; rType = 0; - vrLen = 727; - vrLoc = 1419; + vrLen = 850; + vrLoc = 596; }; - 6B47BE1E105A47F400A26F5B /* PBXTextBookmark */ = { + 6B3BFB13107A8979006284CD /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B47BE1F105A47F400A26F5B /* PODArray.h */; - name = "PODArray.h: 41"; - rLen = 174; - rLoc = 846; - rType = 0; - vrLen = 681; - vrLoc = 439; - }; - 6B47BE1F105A47F400A26F5B /* PODArray.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = PODArray.h; - path = "/Users/memon/Public/Drop Box/sx/ZenBoundEditor/dev/src/PODArray.h"; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 816}}"; - sepNavSelRange = "{846, 174}"; - sepNavVisRange = "{392, 728}"; - }; - }; - 6B47BE29105A47F400A26F5B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; - name = "RecastRegion.cpp: 1263"; + fRef = 6B25B6160FFA62BE004F1BC4 /* Sample_StatMeshSimple.cpp */; + name = "Sample_StatMeshSimple.cpp: 506"; rLen = 0; - rLoc = 27387; + rLoc = 15330; rType = 0; - vrLen = 980; - vrLoc = 29214; - }; - 6B4C5162104EAA9F00E88FB8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; - name = "Sample.cpp: 44"; - rLen = 0; - rLoc = 700; - rType = 0; - vrLen = 748; - vrLoc = 336; - }; - 6B4C5167104EAA9F00E88FB8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; - name = "Sample.cpp: 44"; - rLen = 0; - rLoc = 700; - rType = 0; - vrLen = 748; - vrLoc = 336; + vrLen = 969; + vrLoc = 13733; }; 6B4C5232104FC1F600E88FB8 /* Recast.cpp:275 */ = { isa = PBXFileBreakpoint; @@ -848,30 +645,9 @@ hitCount = 0; ignoreCount = 0; lineNumber = 275; - location = Recast; - modificationTime = 275820615.344829; + modificationTime = 277989718.27825; state = 1; }; - 6B4C526C104FCA2400E88FB8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; - name = "Recast.cpp: 459"; - rLen = 0; - rLoc = 7227; - rType = 0; - vrLen = 0; - vrLoc = 7227; - }; - 6B4C52B0104FD54200E88FB8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6160FFA62BE004F1BC4 /* Sample_StatMeshSimple.cpp */; - name = "Sample_StatMeshSimple.cpp: 429"; - rLen = 0; - rLoc = 13425; - rType = 0; - vrLen = 1009; - vrLoc = 12710; - }; 6B555DAE100B211D00247EA3 /* imguiRenderGL.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {915, 520}}"; @@ -881,9 +657,9 @@ }; 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 6736}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 1448}"; + sepNavIntBoundsRect = "{{0, 0}, {915, 6400}}"; + sepNavSelRange = "{440, 0}"; + sepNavVisRange = "{0, 1158}"; }; }; 6B555DF6100B273500247EA3 /* stb_truetype.h */ = { @@ -893,204 +669,605 @@ sepNavVisRange = "{7326, 1107}"; }; }; - 6B595C981056512C001FCC62 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; - name = "RecastRasterization.cpp: 256"; - rLen = 0; - rLoc = 6570; - rType = 0; - vrLen = 1022; - vrLoc = 6179; + 6B57D313108C609500DDD053 /* RecastMeshDetail.cpp:622 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + functionName = "buildPolyDetail(const float* in, const int nin, unsigned short reg, const float sampleDist, const float sampleMaxError, const rcCompactHeightfield& chf, const rcHeightPatch& hp, float* verts, int& nverts, rcIntArray& tris, rcIntArray& edges, rcIntArray& idx, rcIntArray& samples)"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 622; + modificationTime = 277989718.27988; + state = 1; }; - 6B595C991056512C001FCC62 /* PBXTextBookmark */ = { + 6B57D32D108C60FF00DDD053 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B2AEC550FFB89E7005BE9CC /* Sample_StatMeshTiled.cpp */; - name = "Sample_StatMeshTiled.cpp: 692"; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 759"; rLen = 0; - rLoc = 19864; + rLoc = 14767; rType = 0; - vrLen = 1177; - vrLoc = 19476; + vrLen = 792; + vrLoc = 16678; }; - 6B595C9A1056512C001FCC62 /* PBXTextBookmark */ = { + 6B57D358108C66B200DDD053 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B2AEC590FFB8A7A005BE9CC /* DetourTileNavMesh.cpp */; - name = "DetourTileNavMesh.cpp: 123"; + fRef = 6B137C6C0F7FCBBB00459200 /* imgui.cpp */; + name = "imgui.cpp: 36"; rLen = 0; - rLoc = 3541; + rLoc = 1365; rType = 0; - vrLen = 751; - vrLoc = 3290; + vrLen = 415; + vrLoc = 1195; }; - 6B595C9C1056512C001FCC62 /* PBXTextBookmark */ = { + 6B57D35B108C66B200DDD053 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; - name = "RecastRasterization.cpp: 256"; + fRef = 6B137C6C0F7FCBBB00459200 /* imgui.cpp */; + name = "imgui.cpp: 36"; rLen = 0; - rLoc = 6570; + rLoc = 1365; rType = 0; - vrLen = 1022; - vrLoc = 6179; + vrLen = 415; + vrLoc = 1195; + }; + 6B57D372108C692900DDD053 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 223"; + rLen = 0; + rLoc = 8409; + rType = 0; + vrLen = 424; + vrLoc = 8125; + }; + 6B57D376108C692900DDD053 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; + name = "Recast.h: 224"; + rLen = 0; + rLoc = 8410; + rType = 0; + vrLen = 371; + vrLoc = 8178; + }; + 6B57D37B108C699200DDD053 /* RecastMeshDetail.cpp:252 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + functionName = "addEdge(int* edges, int& nedges, const int maxEdges, int s, int t, int l, int r)"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 252; + modificationTime = 277989718.2803611; + state = 1; + }; + 6B57D388108C69C700DDD053 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 479"; + rLen = 0; + rLoc = 6463; + rType = 0; + vrLen = 599; + vrLoc = 11788; + }; + 6B57D389108C69C700DDD053 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 48"; + rLen = 0; + rLoc = 856; + rType = 0; + vrLen = 565; + vrLoc = 688; + }; + 6B57D38F108C69E400DDD053 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B57D390108C69E400DDD053 /* main.cpp */; + name = "main.cpp: 1027"; + rLen = 75; + rLoc = 21634; + rType = 0; + vrLen = 785; + vrLoc = 21014; + }; + 6B57D390108C69E400DDD053 /* main.cpp */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = main.cpp; + path = /Users/memon/Code/polytes/main.cpp; + sourceTree = ""; + }; + 6B57D391108C69E400DDD053 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 55"; + rLen = 0; + rLoc = 933; + rType = 0; + vrLen = 562; + vrLoc = 688; + }; + 6B57D393108C69E400DDD053 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B57D394108C69E400DDD053 /* main.cpp */; + name = "main.cpp: 1027"; + rLen = 75; + rLoc = 21634; + rType = 0; + vrLen = 785; + vrLoc = 21014; + }; + 6B57D394108C69E400DDD053 /* main.cpp */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = main.cpp; + path = /Users/memon/Code/polytes/main.cpp; + sourceTree = ""; + }; + 6B57D395108C69E400DDD053 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 55"; + rLen = 0; + rLoc = 933; + rType = 0; + vrLen = 562; + vrLoc = 688; + }; + 6B57D39E108C6A6000DDD053 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: invalid conversion from 'int*' to 'int'"; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + rLen = 1; + rLoc = 420; + rType = 1; + }; + 6B57D3AC108CE91400DDD053 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 476"; + rLen = 0; + rLoc = 6328; + rType = 0; + vrLen = 650; + vrLoc = 11657; }; 6B624169103434880002E346 /* RecastMeshDetail.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 15568}}"; - sepNavSelRange = "{3442, 0}"; - sepNavVisRange = "{4754, 761}"; + sepNavIntBoundsRect = "{{0, 0}, {915, 19216}}"; + sepNavSelRange = "{5942, 0}"; + sepNavVisRange = "{5117, 860}"; + sepNavWindowFrame = "{{61, 36}, {1011, 695}}"; }; }; - 6B6FA3391070B90A009B0572 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA821DE10664B0700AA331F /* RecastArea.cpp */; - name = "RecastArea.cpp: 68"; - rLen = 0; - rLoc = 2337; - rType = 0; - vrLen = 753; - vrLoc = 2110; - }; - 6B6FA33A1070B90A009B0572 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 220"; - rLen = 0; - rLoc = 5865; - rType = 0; - vrLen = 575; - vrLoc = 5608; - }; - 6B6FA33B1070B90A009B0572 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA821DE10664B0700AA331F /* RecastArea.cpp */; - name = "RecastArea.cpp: 68"; - rLen = 0; - rLoc = 2337; - rType = 0; - vrLen = 753; - vrLoc = 2110; - }; - 6B6FA33C1070B90A009B0572 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 220"; - rLen = 0; - rLoc = 5865; - rType = 0; - vrLen = 575; - vrLoc = 5608; - }; - 6B6FA3431070B93C009B0572 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 217"; - rLen = 0; - rLoc = 5834; - rType = 0; - vrLen = 575; - vrLoc = 5608; - }; - 6B6FA3441070B93F009B0572 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 216"; - rLen = 23; - rLoc = 5811; - rType = 0; - vrLen = 556; - vrLoc = 5608; - }; - 6B6FA3451070B941009B0572 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 216"; - rLen = 23; - rLoc = 5811; - rType = 0; - vrLen = 604; - vrLoc = 5579; - }; - 6B6FA34C1070B9AF009B0572 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 210"; - rLen = 0; - rLoc = 5737; - rType = 0; - vrLen = 604; - vrLoc = 5579; - }; - 6B6FA34D1070B9AF009B0572 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 426"; - rLen = 0; - rLoc = 10833; - rType = 0; - vrLen = 917; - vrLoc = 10530; - }; - 6B6FA3511070B9EE009B0572 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 630"; - rLen = 0; - rLoc = 15509; - rType = 0; - vrLen = 891; - vrLoc = 15177; - }; - 6B6FA35C1070BF26009B0572 /* PBXTextBookmark */ = { + 6B6FA3611070C102009B0572 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; - name = "main.cpp: 559"; + name = "main.cpp: 578"; rLen = 0; - rLoc = 12576; + rLoc = 12953; rType = 0; - vrLen = 666; + vrLen = 649; vrLoc = 12515; }; - 6B6FA35D1070BF26009B0572 /* PBXTextBookmark */ = { + 6B6FA36B1070C1F7009B0572 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; - name = "main.cpp: 569"; + fRef = 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */; + name = "DetourStatNavMeshBuilder.cpp: 335"; rLen = 0; - rLoc = 12751; + rLoc = 9089; rType = 0; - vrLen = 666; - vrLoc = 12515; + vrLen = 982; + vrLoc = 8278; }; - 6B853D671066ACF5009B426A /* PBXTextBookmark */ = { + 6B6FA3B31076452F009B0572 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 469"; + fRef = 6B2AEC590FFB8A7A005BE9CC /* DetourTileNavMesh.cpp */; + name = "DetourTileNavMesh.cpp: 760"; rLen = 0; - rLoc = 16149; + rLoc = 19332; rType = 0; - vrLen = 2004; - vrLoc = 15606; + vrLen = 1063; + vrLoc = 18658; }; - 6B853DD41066C751009B426A /* PBXTextBookmark */ = { + 6B6FA3B41076452F009B0572 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B853DD51066C751009B426A /* dt2.c */; - name = "dt2.c: 624"; + fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; + name = "DetourStatNavMesh.cpp: 123"; rLen = 0; - rLoc = 17522; + rLoc = 3423; rType = 0; - vrLen = 1182; - vrLoc = 16901; + vrLen = 769; + vrLoc = 3281; }; - 6B853DD51066C751009B426A /* dt2.c */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = dt2.c; - path = /Users/memon/Downloads/Ccode2/dt/dt2.c; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 18528}}"; - sepNavSelRange = "{17522, 0}"; - sepNavVisRange = "{16901, 1106}"; - }; + 6B6FA3B61076452F009B0572 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 9"; + rLen = 0; + rLoc = 440; + rType = 0; + vrLen = 1158; + vrLoc = 0; + }; + 6B6FA3B81076452F009B0572 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 297"; + rLen = 0; + rLoc = 2843; + rType = 0; + vrLen = 870; + vrLoc = 7634; + }; + 6B6FA3B91076452F009B0572 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B2AEC590FFB8A7A005BE9CC /* DetourTileNavMesh.cpp */; + name = "DetourTileNavMesh.cpp: 760"; + rLen = 0; + rLoc = 19332; + rType = 0; + vrLen = 1063; + vrLoc = 18658; + }; + 6B6FA3BA1076452F009B0572 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */; + name = "DetourStatNavMesh.cpp: 123"; + rLen = 0; + rLoc = 3423; + rType = 0; + vrLen = 769; + vrLoc = 3281; + }; + 6B6FA3BC1076452F009B0572 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; + name = "imguiRenderGL.cpp: 9"; + rLen = 0; + rLoc = 440; + rType = 0; + vrLen = 1158; + vrLoc = 0; + }; + 6B7FB6F21091CF16001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 590"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 779; + vrLoc = 13728; + }; + 6B7FB6FD1091CF2C001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 579"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 858; + vrLoc = 13728; + }; + 6B7FB6FF1091CF3E001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 579"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 858; + vrLoc = 13728; + }; + 6B7FB7011091CF83001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 579"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 871; + vrLoc = 13728; + }; + 6B7FB7031091D079001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 530"; + rLen = 0; + rLoc = 7478; + rType = 0; + vrLen = 912; + vrLoc = 12448; + }; + 6B7FB7061091D0A0001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 576"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 856; + vrLoc = 13674; + }; + 6B7FB7081091D136001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 578"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 874; + vrLoc = 13606; + }; + 6B7FB70A1091D160001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 579"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 871; + vrLoc = 13606; + }; + 6B7FB70B1091D235001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 683"; + rLen = 0; + rLoc = 11298; + rType = 0; + vrLen = 704; + vrLoc = 16095; + }; + 6B7FB70C1091D251001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 941"; + rLen = 0; + rLoc = 16831; + rType = 0; + vrLen = 310; + vrLoc = 22601; + }; + 6B7FB70F1091D2F5001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 573"; + rLen = 0; + rLoc = 8769; + rType = 0; + vrLen = 1008; + vrLoc = 13599; + }; + 6B7FB7131091D33E001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 577"; + rLen = 0; + rLoc = 8961; + rType = 0; + vrLen = 962; + vrLoc = 13599; + }; + 6B7FB7151091D3F6001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 582"; + rLen = 0; + rLoc = 8961; + rType = 0; + vrLen = 865; + vrLoc = 13599; + }; + 6B7FB7181091D452001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 583"; + rLen = 0; + rLoc = 8679; + rType = 0; + vrLen = 828; + vrLoc = 13599; + }; + 6B7FB71A1091D56E001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 582"; + rLen = 0; + rLoc = 8512; + rType = 0; + vrLen = 662; + vrLoc = 13387; + }; + 6B7FB7221091D70F001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: 'const struct rcHeightPatch' has no member named 'cs'"; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + rLen = 0; + rLoc = 224; + rType = 1; + }; + 6B7FB7231091D70F001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 204"; + rLen = 0; + rLoc = 5946; + rType = 0; + vrLen = 686; + vrLoc = 5251; + }; + 6B7FB7261091D762001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 202"; + rLen = 0; + rLoc = 5946; + rType = 0; + vrLen = 674; + vrLoc = 5251; + }; + 6B7FB7281091D79B001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 224"; + rLen = 0; + rLoc = 5946; + rType = 0; + vrLen = 699; + vrLoc = 5251; + }; + 6B7FB72D1091D92E001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 804"; + rLen = 0; + rLoc = 18252; + rType = 0; + vrLen = 713; + vrLoc = 18945; + }; + 6B7FB7301091D9BD001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 841"; + rLen = 0; + rLoc = 18859; + rType = 0; + vrLen = 545; + vrLoc = 19602; + }; + 6B7FB7321091D9E4001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 838"; + rLen = 0; + rLoc = 18859; + rType = 0; + vrLen = 641; + vrLoc = 19658; + }; + 6B7FB7351091DD43001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6160FFA62BE004F1BC4 /* Sample_StatMeshSimple.cpp */; + name = "Sample_StatMeshSimple.cpp: 222"; + rLen = 0; + rLoc = 6674; + rType = 0; + vrLen = 822; + vrLoc = 6148; + }; + 6B7FB7361091DD43001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 820"; + rLen = 0; + rLoc = 18657; + rType = 0; + vrLen = 636; + vrLoc = 19201; + }; + 6B7FB7371091DD43001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 820"; + rLen = 0; + rLoc = 18657; + rType = 0; + vrLen = 651; + vrLoc = 19186; + }; + 6B7FB7381091DD43001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6160FFA62BE004F1BC4 /* Sample_StatMeshSimple.cpp */; + name = "Sample_StatMeshSimple.cpp: 222"; + rLen = 0; + rLoc = 6674; + rType = 0; + vrLen = 822; + vrLoc = 6148; + }; + 6B7FB7391091DD43001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 699"; + rLen = 0; + rLoc = 16204; + rType = 0; + vrLen = 1053; + vrLoc = 15787; + }; + 6B7FB73D1091DE87001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 598"; + rLen = 0; + rLoc = 14659; + rType = 0; + vrLen = 634; + vrLoc = 17702; + }; + 6B7FB73E1091DE91001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 598"; + rLen = 0; + rLoc = 14659; + rType = 0; + vrLen = 637; + vrLoc = 17702; + }; + 6B7FB73F1091DE9E001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 598"; + rLen = 0; + rLoc = 14659; + rType = 0; + vrLen = 264; + vrLoc = 18075; + }; + 6B7FB7401091DEA2001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 767"; + rLen = 0; + rLoc = 18783; + rType = 0; + vrLen = 617; + vrLoc = 17968; + }; + 6B7FB7451091E02E001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 205"; + rLen = 0; + rLoc = 5436; + rType = 0; + vrLen = 781; + vrLoc = 4664; + }; + 6B7FB7461091E02E001BA51A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 223"; + rLen = 0; + rLoc = 5942; + rType = 0; + vrLen = 860; + vrLoc = 5117; }; 6B8632970F78114600E2684A /* Recast */ = { isa = PBXExecutable; @@ -1144,8 +1321,7 @@ hitCount = 0; ignoreCount = 0; lineNumber = 275; - location = Recast; - modificationTime = 275820615.344659; + modificationTime = 277989718.279228; state = 1; }; 6B93FEFF1030443300F0C0DA /* Recast.cpp:275 */ = { @@ -1162,9 +1338,29 @@ ignoreCount = 0; lineNumber = 275; location = Recast; - modificationTime = 275820615.344471; + modificationTime = 277989520.8474849; state = 2; }; + 6B9BE372107BC6A40036CC81 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 714"; + rLen = 0; + rLoc = 16736; + rType = 0; + vrLen = 1030; + vrLoc = 16250; + }; + 6B9BE374107BC6A40036CC81 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; + name = "RecastDebugDraw.cpp: 714"; + rLen = 0; + rLoc = 16736; + rType = 0; + vrLen = 1030; + vrLoc = 16250; + }; 6B9D0891102715D5009B1A6C /* RecastTexture.cpp */ = { isa = PBXFileReference; fileEncoding = 4; @@ -1186,8 +1382,8 @@ hitCount = 0; ignoreCount = 0; lineNumber = 301; - modificationTime = 275820617.2561181; - state = 0; + modificationTime = 277989520.846603; + state = 1; }; 6B9D09921028542A009B1A6C /* RecastDebugDraw.cpp:698 */ = { isa = PBXFileBreakpoint; @@ -1203,79 +1399,9 @@ ignoreCount = 0; lineNumber = 698; location = Recast; - modificationTime = 275820615.344249; + modificationTime = 277989520.847037; state = 2; }; - 6BA821DE10664B0700AA331F /* RecastArea.cpp */ = { - isa = PBXFileReference; - fileEncoding = 4; - lastKnownFileType = sourcecode.cpp.cpp; - name = RecastArea.cpp; - path = /Users/memon/Code/recastnavigation/Recast/Source/RecastArea.cpp; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 19648}}"; - sepNavSelRange = "{2337, 0}"; - sepNavVisRange = "{2110, 753}"; - }; - }; - 6BA821FE106651F300AA331F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7A0F7FCBE400459200 /* imgui.h */; - name = "imgui.h: 85"; - rLen = 0; - rLoc = 2387; - rType = 0; - vrLen = 319; - vrLoc = 2222; - }; - 6BA82204106651F300AA331F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; - name = "Recast.cpp: 158"; - rLen = 118; - rLoc = 4037; - rType = 0; - vrLen = 822; - vrLoc = 3698; - }; - 6BA82211106651F300AA331F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 44"; - rLen = 0; - rLoc = 1783; - rType = 0; - vrLen = 1598; - vrLoc = 1199; - }; - 6BA82232106660E000AA331F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA821DE10664B0700AA331F /* RecastArea.cpp */; - name = "RecastArea.cpp: 38"; - rLen = 0; - rLoc = 1420; - rType = 0; - vrLen = 901; - vrLoc = 1110; - }; - 6BA8225E1066632D00AA331F /* RecastMeshDetail.cpp:519 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; - functionName = "buildPolyDetail(const float* in, const int nin, unsigned short reg, const float sampleDist, const float sampleMaxError, const rcCompactHeightfield& chf, const rcHeightPatch& hp, float* verts, int& nverts, rcIntArray& tris, rcIntArray& edges, rcIntArray& idx, rcIntArray& samples)"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 519; - location = Recast; - modificationTime = 275820615.3450021; - state = 1; - }; 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {915, 3680}}"; @@ -1290,278 +1416,315 @@ sepNavVisRange = "{0, 1206}"; }; }; - 6BC43053104BF2B10041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC570FFB89F4005BE9CC /* Sample_StatMeshTiled.h */; - name = "Sample_StatMeshTiled.h: 17"; - rLen = 0; - rLoc = 367; - rType = 0; - vrLen = 691; - vrLoc = 530; - }; - 6BC43054104BF2B10041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6150FFA62BE004F1BC4 /* Sample_StatMesh.cpp */; - name = "Sample_StatMesh.cpp: 21"; - rLen = 1; - rLoc = 450; - rType = 0; - vrLen = 624; - vrLoc = 0; - }; - 6BC43055104BF2B10041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6110FFA62AD004F1BC4 /* Sample_StatMesh.h */; - name = "Sample_StatMesh.h: 41"; - rLen = 9; - rLoc = 758; - rType = 0; - vrLen = 705; - vrLoc = 423; - }; - 6BC43059104BF2B10041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC550FFB89E7005BE9CC /* Sample_StatMeshTiled.cpp */; - name = "Sample_StatMeshTiled.cpp: 748"; - rLen = 0; - rLoc = 22130; - rType = 0; - vrLen = 1023; - vrLoc = 21361; - }; - 6BC4305A104BF2B10041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC570FFB89F4005BE9CC /* Sample_StatMeshTiled.h */; - name = "Sample_StatMeshTiled.h: 17"; - rLen = 0; - rLoc = 367; - rType = 0; - vrLen = 691; - vrLoc = 530; - }; - 6BC4305B104BF2B10041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6110FFA62AD004F1BC4 /* Sample_StatMesh.h */; - name = "Sample_StatMesh.h: 39"; - rLen = 0; - rLoc = 726; - rType = 0; - vrLen = 555; - vrLoc = 358; - }; - 6BC4305C104BF2B10041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6150FFA62BE004F1BC4 /* Sample_StatMesh.cpp */; - name = "Sample_StatMesh.cpp: 21"; - rLen = 1; - rLoc = 450; - rType = 0; - vrLen = 624; - vrLoc = 0; - }; - 6BC43060104BF2B10041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6120FFA62AD004F1BC4 /* Sample_StatMeshSimple.h */; - name = "Sample_StatMeshSimple.h: 48"; - rLen = 0; - rLoc = 960; - rType = 0; - vrLen = 653; - vrLoc = 793; - }; - 6BC430CD104CFB6C0041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B1185F61006896B0018F96F /* DetourNode.h */; - name = "DetourNode.h: 87"; - rLen = 860; - rLoc = 2094; - rType = 0; - vrLen = 480; - vrLoc = 2498; - }; - 6BC430D2104CFB6C0041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; - name = "imguiRenderGL.cpp: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1158; - vrLoc = 0; - }; - 6BC430D8104CFB6C0041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; - name = "RecastMesh.cpp: 717"; - rLen = 0; - rLoc = 17746; - rType = 0; - vrLen = 702; - vrLoc = 15996; - }; - 6BC43126104E846A0041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7A0F7FCBE400459200 /* imgui.h */; - name = "imgui.h: 89"; - rLen = 0; - rLoc = 2439; - rType = 0; - vrLen = 432; - vrLoc = 2109; - }; - 6BC43139104E90970041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */; - name = "RecastTimer.h: 22"; - rLen = 0; - rLoc = 1000; - rType = 0; - vrLen = 1186; - vrLoc = 0; - }; - 6BC4313A104E90970041BBF5 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; - name = "RecastTimer.cpp: 47"; - rLen = 0; - rLoc = 471; - rType = 0; - vrLen = 291; - vrLoc = 421; - }; - 6BCB773F105D706200C20CF6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BCB7740105D706200C20CF6 /* SDL_video.h */; - name = "SDL_video.h: 156"; - rLen = 0; - rLoc = 5302; - rType = 0; - vrLen = 954; - vrLoc = 0; - }; - 6BCB7740105D706200C20CF6 /* SDL_video.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = SDL_video.h; - path = /Library/Frameworks/SDL.framework/Versions/A/Headers/SDL_video.h; - sourceTree = ""; - }; - 6BCB7742105D706200C20CF6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BCB7743105D706200C20CF6 /* radix_ar_2001.c */; - name = "radix_ar_2001.c: 18"; - rLen = 0; - rLoc = 614; - rType = 0; - vrLen = 1019; - vrLoc = 143; - }; - 6BCB7743105D706200C20CF6 /* radix_ar_2001.c */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = radix_ar_2001.c; - path = /Users/memon/Downloads/radix_ar_2001.c; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 1472}}"; - sepNavSelRange = "{614, 0}"; - sepNavVisRange = "{142, 1075}"; - }; - }; - 6BCB7744105D706200C20CF6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BCB7745105D706200C20CF6 /* stdlib.h */; - name = "stdlib.h: 296"; - rLen = 43; - rLoc = 9919; - rType = 0; - vrLen = 1191; - vrLoc = 9305; - }; - 6BCB7745105D706200C20CF6 /* stdlib.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = stdlib.h; - path = /Developer/SDKs/MacOSX10.5.sdk/usr/include/stdlib.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 4992}}"; - sepNavSelRange = "{9919, 43}"; - sepNavVisRange = "{9277, 1265}"; - }; - }; - 6BCB774D105D706200C20CF6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BCB774E105D706200C20CF6 /* SDL_video.h */; - name = "SDL_video.h: 156"; - rLen = 0; - rLoc = 5302; - rType = 0; - vrLen = 954; - vrLoc = 0; - }; - 6BCB774E105D706200C20CF6 /* SDL_video.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = SDL_video.h; - path = /Library/Frameworks/SDL.framework/Versions/A/Headers/SDL_video.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 14400}}"; - sepNavSelRange = "{5302, 0}"; - sepNavVisRange = "{0, 1171}"; - }; - }; - 6BCB7750105D706200C20CF6 /* PBXTextBookmark */ = { + 6BD9E0CB1090A3B500585B30 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; - name = "RecastMeshDetail.cpp: 204"; + name = "RecastMeshDetail.cpp: 476"; rLen = 0; - rLoc = 3442; + rLoc = 6328; rType = 0; - vrLen = 990; - vrLoc = 4513; + vrLen = 648; + vrLoc = 11659; }; - 6BCB778A105E224500C20CF6 /* PBXTextBookmark */ = { + 6BD9E0CC1090A3B500585B30 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B555DB0100B212E00247EA3 /* imguiRenderGL.cpp */; - name = "imguiRenderGL.cpp: 224"; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 594"; rLen = 0; - rLoc = 5406; + rLoc = 10251; rType = 0; - vrLen = 466; - vrLoc = 5354; + vrLen = 789; + vrLoc = 14091; }; - 6BCB77A1105E7EA400C20CF6 /* PBXTextBookmark */ = { + 6BD9E0D61090A41400585B30 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */; - name = "RecastTimer.h: 21"; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 589"; rLen = 0; - rLoc = 980; + rLoc = 10153; rType = 0; - vrLen = 1186; - vrLoc = 0; + vrLen = 789; + vrLoc = 14091; }; - 6BCB77B7105E80FD00C20CF6 /* PBXTextBookmark */ = { + 6BD9E0D81090A43200585B30 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; - name = "RecastTimer.cpp: 33"; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 589"; rLen = 0; - rLoc = 548; + rLoc = 10153; rType = 0; - vrLen = 666; - vrLoc = 46; + vrLen = 790; + vrLoc = 14091; }; - 6BCB77D1105E870D00C20CF6 /* PBXTextBookmark */ = { + 6BD9E0DB1090AE3200585B30 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 334"; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 513"; rLen = 0; - rLoc = 5944; + rLoc = 7776; rType = 0; - vrLen = 754; - vrLoc = 8327; + vrLen = 535; + vrLoc = 12470; + }; + 6BD9E0DE1090AFDB00585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 654"; + rLen = 0; + rLoc = 11475; + rType = 0; + vrLen = 704; + vrLoc = 15005; + }; + 6BD9E0DF1090AFFC00585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 650"; + rLen = 0; + rLoc = 11436; + rType = 0; + vrLen = 349; + vrLoc = 15218; + }; + 6BD9E0E01090B00000585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 651"; + rLen = 0; + rLoc = 11467; + rType = 0; + vrLen = 867; + vrLoc = 15175; + }; + 6BD9E0E21090B05300585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 601"; + rLen = 0; + rLoc = 10470; + rType = 0; + vrLen = 862; + vrLoc = 14006; + }; + 6BD9E0E51091940300585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 553"; + rLen = 0; + rLoc = 9073; + rType = 0; + vrLen = 623; + vrLoc = 12847; + }; + 6BD9E0E7109195CE00585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 890"; + rLen = 0; + rLoc = 16845; + rType = 0; + vrLen = 984; + vrLoc = 20739; + }; + 6BD9E0EB1091964C00585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 893"; + rLen = 0; + rLoc = 16831; + rType = 0; + vrLen = 882; + vrLoc = 20739; + }; + 6BD9E0EE1091967E00585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 895"; + rLen = 0; + rLoc = 16844; + rType = 0; + vrLen = 891; + vrLoc = 20783; + }; + 6BD9E0EF1091969100585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 881"; + rLen = 0; + rLoc = 16831; + rType = 0; + vrLen = 891; + vrLoc = 20783; + }; + 6BD9E0F2109196F000585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 881"; + rLen = 0; + rLoc = 16831; + rType = 0; + vrLen = 873; + vrLoc = 20751; + }; + 6BD9E13510919A2300585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 891"; + rLen = 0; + rLoc = 16831; + rType = 0; + vrLen = 393; + vrLoc = 21293; + }; + 6BD9E13810919A8300585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 766"; + rLen = 0; + rLoc = 14233; + rType = 0; + vrLen = 528; + vrLoc = 17991; + }; + 6BD9E13910919ADD00585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 767"; + rLen = 0; + rLoc = 14248; + rType = 0; + vrLen = 781; + vrLoc = 18504; + }; + 6BD9E14010919BDC00585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 767"; + rLen = 0; + rLoc = 14248; + rType = 0; + vrLen = 363; + vrLoc = 18922; + }; + 6BD9E14310919E7200585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 872"; + rLen = 0; + rLoc = 16204; + rType = 0; + vrLen = 1043; + vrLoc = 20261; + }; + 6BD9E1631091AACB00585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 872"; + rLen = 0; + rLoc = 16204; + rType = 0; + vrLen = 1116; + vrLoc = 20261; + }; + 6BD9E16E1091AAE100585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 872"; + rLen = 0; + rLoc = 16204; + rType = 0; + vrLen = 1116; + vrLoc = 20261; + }; + 6BD9E1721091AB1A00585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 872"; + rLen = 0; + rLoc = 16204; + rType = 0; + vrLen = 1116; + vrLoc = 20261; + }; + 6BD9E1871091C5CC00585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 572"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 995; + vrLoc = 13595; + }; + 6BD9E1881091C5F900585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 581"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 995; + vrLoc = 13595; + }; + 6BD9E1891091C60200585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 581"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 929; + vrLoc = 13687; + }; + 6BD9E1A11091C81400585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 581"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 1000; + vrLoc = 13687; + }; + 6BD9E1AE1091C89300585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 581"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 1000; + vrLoc = 13687; + }; + 6BD9E1C81091CB3100585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 581"; + rLen = 0; + rLoc = 8680; + rType = 0; + vrLen = 422; + vrLoc = 14280; + }; + 6BD9E1CB1091CBA100585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 534"; + rLen = 0; + rLoc = 7592; + rType = 0; + vrLen = 835; + vrLoc = 12597; + }; + 6BD9E1CD1091CBC600585B30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; + name = "RecastMeshDetail.cpp: 522"; + rLen = 0; + rLoc = 7249; + rType = 0; + vrLen = 861; + vrLoc = 12597; }; 6BDD9E040F91112200904EEF /* DetourDebugDraw.h */ = { uiCtxt = { @@ -1593,399 +1756,19 @@ }; 6BDD9E080F91113800904EEF /* DetourStatNavMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 14208}}"; - sepNavSelRange = "{6991, 0}"; - sepNavVisRange = "{7417, 680}"; + sepNavIntBoundsRect = "{{0, 0}, {915, 13840}}"; + sepNavSelRange = "{3423, 0}"; + sepNavVisRange = "{3281, 769}"; }; }; 6BDD9E090F91113800904EEF /* DetourStatNavMeshBuilder.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {915, 5392}}"; - sepNavSelRange = "{9192, 0}"; - sepNavVisRange = "{8299, 957}"; + sepNavIntBoundsRect = "{{0, 0}, {1219, 5632}}"; + sepNavSelRange = "{1820, 0}"; + sepNavVisRange = "{2705, 359}"; sepNavWindowFrame = "{{15, 78}, {1011, 695}}"; }; }; - 6BF888A810679FAF00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 296"; - rLen = 0; - rLoc = 10414; - rType = 0; - vrLen = 821; - vrLoc = 10134; - }; - 6BF888B81070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; - name = "RecastMesh.cpp: 998"; - rLen = 0; - rLoc = 25018; - rType = 0; - vrLen = 840; - vrLoc = 24479; - }; - 6BF888BB1070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6120FFA62AD004F1BC4 /* Sample_StatMeshSimple.h */; - name = "Sample_StatMeshSimple.h: 1"; - rLen = 1446; - rLoc = 0; - rType = 0; - vrLen = 765; - vrLoc = 409; - }; - 6BF888BD1070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6160FFA62BE004F1BC4 /* Sample_StatMeshSimple.cpp */; - name = "Sample_StatMeshSimple.cpp: 563"; - rLen = 0; - rLoc = 18654; - rType = 0; - vrLen = 1016; - vrLoc = 13545; - }; - 6BF888BE1070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7C0F7FCBE400459200 /* SDLMain.h */; - name = "SDLMain.h: 12"; - rLen = 0; - rLoc = 307; - rType = 0; - vrLen = 307; - vrLoc = 0; - }; - 6BF888C11070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; - name = "RecastMeshDetail.cpp: 191"; - rLen = 0; - rLoc = 5118; - rType = 0; - vrLen = 986; - vrLoc = 6735; - }; - 6BF888C21070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; - name = "RecastMesh.cpp: 998"; - rLen = 0; - rLoc = 25018; - rType = 0; - vrLen = 840; - vrLoc = 24479; - }; - 6BF888C31070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 589"; - rLen = 0; - rLoc = 12855; - rType = 0; - vrLen = 876; - vrLoc = 13562; - }; - 6BF888C41070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA821DE10664B0700AA331F /* RecastArea.cpp */; - name = "RecastArea.cpp: 1087"; - rLen = 0; - rLoc = 25905; - rType = 0; - vrLen = 936; - vrLoc = 25475; - }; - 6BF888C51070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6160FFA62BE004F1BC4 /* Sample_StatMeshSimple.cpp */; - name = "Sample_StatMeshSimple.cpp: 438"; - rLen = 0; - rLoc = 13239; - rType = 0; - vrLen = 904; - vrLoc = 13014; - }; - 6BF888C81070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6120FFA62AD004F1BC4 /* Sample_StatMeshSimple.h */; - name = "Sample_StatMeshSimple.h: 1"; - rLen = 1446; - rLoc = 0; - rType = 0; - vrLen = 765; - vrLoc = 409; - }; - 6BF888CA1070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6160FFA62BE004F1BC4 /* Sample_StatMeshSimple.cpp */; - name = "Sample_StatMeshSimple.cpp: 1"; - rLen = 18654; - rLoc = 0; - rType = 0; - vrLen = 904; - vrLoc = 13014; - }; - 6BF888CE1070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6160FFA62BE004F1BC4 /* Sample_StatMeshSimple.cpp */; - name = "Sample_StatMeshSimple.cpp: 563"; - rLen = 0; - rLoc = 18654; - rType = 0; - vrLen = 1016; - vrLoc = 13545; - }; - 6BF888CF1070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7C0F7FCBE400459200 /* SDLMain.h */; - name = "SDLMain.h: 12"; - rLen = 0; - rLoc = 307; - rType = 0; - vrLen = 307; - vrLoc = 0; - }; - 6BF888D01070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; - name = "main.cpp: 21"; - rLen = 0; - rLoc = 389; - rType = 0; - vrLen = 756; - vrLoc = 3871; - }; - 6BF888D21070B04F00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; - name = "main.cpp: 18"; - rLen = 0; - rLoc = 326; - rType = 0; - vrLen = 548; - vrLoc = 19; - }; - 6BF888DE1070B1F800377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; - name = "Sample_TileMesh.cpp: 755"; - rLen = 0; - rLoc = 20632; - rType = 0; - vrLen = 1125; - vrLoc = 19809; - }; - 6BF888DF1070B1F800377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 220"; - rLen = 0; - rLoc = 5865; - rType = 0; - vrLen = 905; - vrLoc = 5608; - }; - 6BF888E21070B1F800377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; - name = "RecastRegion.cpp: 1362"; - rLen = 0; - rLoc = 26237; - rType = 0; - vrLen = 0; - vrLoc = 31114; - }; - 6BF888E31070B1F800377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; - name = "Sample_TileMesh.cpp: 755"; - rLen = 0; - rLoc = 20632; - rType = 0; - vrLen = 1125; - vrLoc = 19809; - }; - 6BF888E41070B1F800377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; - name = "RecastContour.cpp: 220"; - rLen = 0; - rLoc = 5865; - rType = 0; - vrLen = 905; - vrLoc = 5608; - }; - 6BF888E51070B1F800377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 44"; - rLen = 0; - rLoc = 1783; - rType = 0; - vrLen = 1792; - vrLoc = 1005; - }; - 6BF888E71070B20700377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 286"; - rLen = 0; - rLoc = 7320; - rType = 0; - vrLen = 936; - vrLoc = 6877; - }; - 6BF888E91070B20700377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C840F7FCC1100459200 /* RecastDebugDraw.cpp */; - name = "RecastDebugDraw.cpp: 286"; - rLen = 0; - rLoc = 7320; - rType = 0; - vrLen = 936; - vrLoc = 6877; - }; - 6BF888EE1070B30700377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 123"; - rLen = 0; - rLoc = 4602; - rType = 0; - vrLen = 1468; - vrLoc = 3484; - }; - 6BF888F21070B3A300377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; - name = "RecastMeshDetail.cpp: 587"; - rLen = 0; - rLoc = 15234; - rType = 0; - vrLen = 870; - vrLoc = 14794; - }; - 6BF888F41070B3A300377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B624169103434880002E346 /* RecastMeshDetail.cpp */; - name = "RecastMeshDetail.cpp: 587"; - rLen = 0; - rLoc = 15234; - rType = 0; - vrLen = 870; - vrLoc = 14794; - }; - 6BF888FC1070B6A400377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; - name = "RecastRegion.cpp: 1043"; - rLen = 1; - rLoc = 24953; - rType = 0; - vrLen = 921; - vrLoc = 24594; - }; - 6BF888FF1070B70B00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 96"; - rLen = 0; - rLoc = 3635; - rType = 0; - vrLen = 1138; - vrLoc = 3336; - }; - 6BF889001070B70B00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 44"; - rLen = 0; - rLoc = 1783; - rType = 0; - vrLen = 1720; - vrLoc = 1077; - }; - 6BF889011070B70B00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; - name = "RecastRegion.cpp: 1042"; - rLen = 0; - rLoc = 24912; - rType = 0; - vrLen = 821; - vrLoc = 24522; - }; - 6BF889021070B70B00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; - name = "main.cpp: 199"; - rLen = 55; - rLoc = 4061; - rType = 0; - vrLen = 585; - vrLoc = 3925; - }; - 6BF889031070B70B00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA821DE10664B0700AA331F /* RecastArea.cpp */; - name = "RecastArea.cpp: 71"; - rLen = 0; - rLoc = 2414; - rType = 0; - vrLen = 581; - vrLoc = 2149; - }; - 6BF889041070B70B00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; - name = "Recast.h: 96"; - rLen = 0; - rLoc = 3635; - rType = 0; - vrLen = 1138; - vrLoc = 3336; - }; - 6BF889051070B70B00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C7F0F7FCBFE00459200 /* RecastDebugDraw.h */; - name = "RecastDebugDraw.h: 44"; - rLen = 0; - rLoc = 1783; - rType = 0; - vrLen = 1720; - vrLoc = 1077; - }; - 6BF889061070B70B00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; - name = "RecastRegion.cpp: 1042"; - rLen = 0; - rLoc = 24912; - rType = 0; - vrLen = 821; - vrLoc = 24522; - }; - 6BF889071070B70B00377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; - name = "main.cpp: 199"; - rLen = 55; - rLoc = 4061; - rType = 0; - vrLen = 585; - vrLoc = 3925; - }; - 6BF889091070B71100377388 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6BA821DE10664B0700AA331F /* RecastArea.cpp */; - name = "RecastArea.cpp: 69"; - rLen = 0; - rLoc = 2341; - rType = 0; - vrLen = 581; - vrLoc = 2149; - }; 8D1107260486CEB800E47090 /* Recast */ = { activeExec = 0; executables = ( diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index 66a5715..96056a4 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -268,6 +268,7 @@ 29B97314FDCFA39411CA2CEA 080E96DDFE201D6D7F000001 + 6BDD9E030F91110C00904EEF 6B137C7D0F7FCBE800459200 6B555DF5100B25FC00247EA3 29B97315FDCFA39411CA2CEA @@ -278,13 +279,14 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 30 + 26 + 18 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 157}, {282, 660}} + {{0, 280}, {282, 660}} PBXTopSmartGroupGIDs @@ -319,7 +321,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - main.cpp + RecastMeshDetail.cpp PBXSplitModuleInNavigatorKey Split0 @@ -327,14 +329,44 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - main.cpp + RecastMeshDetail.cpp _historyCapacity 0 bookmark - 6B6FA35D1070BF26009B0572 + 6B7FB7461091E02E001BA51A history - 6B6FA35C1070BF26009B0572 + 6B6FA3B31076452F009B0572 + 6B6FA3B41076452F009B0572 + 6B6FA3B61076452F009B0572 + 6B3BFADD107A80E1006284CD + 6B3BFB0C107A8979006284CD + 6B3BFB0D107A8979006284CD + 6B9BE372107BC6A40036CC81 + 6B57D358108C66B200DDD053 + 6B57D372108C692900DDD053 + 6B57D38F108C69E400DDD053 + 6B57D391108C69E400DDD053 + 6B7FB7351091DD43001BA51A + 6B7FB7451091E02E001BA51A + + prevStack + + 6B6FA3611070C102009B0572 + 6B6FA36B1070C1F7009B0572 + 6B6FA3B81076452F009B0572 + 6B6FA3B91076452F009B0572 + 6B6FA3BA1076452F009B0572 + 6B6FA3BC1076452F009B0572 + 6B3BFADF107A80E1006284CD + 6B3BFB12107A8979006284CD + 6B3BFB13107A8979006284CD + 6B9BE374107BC6A40036CC81 + 6B57D35B108C66B200DDD053 + 6B57D376108C692900DDD053 + 6B57D393108C69E400DDD053 + 6B7FB7371091DD43001BA51A + 6B7FB7381091DD43001BA51A SplitCount @@ -348,18 +380,18 @@ GeometryConfiguration Frame - {{0, 0}, {976, 593}} + {{0, 0}, {976, 551}} RubberWindowFrame 0 59 1280 719 0 0 1280 778 Module PBXNavigatorGroup Proportion - 593pt + 551pt Proportion - 80pt + 122pt Tabs @@ -373,9 +405,7 @@ GeometryConfiguration Frame - {{10, 27}, {976, 53}} - RubberWindowFrame - 0 59 1280 719 0 0 1280 778 + {{10, 27}, {976, 145}} Module XCDetailModule @@ -391,7 +421,7 @@ GeometryConfiguration Frame - {{10, 27}, {769, 146}} + {{10, 27}, {976, 166}} Module PBXProjectFindModule @@ -429,7 +459,9 @@ GeometryConfiguration Frame - {{10, 27}, {976, 166}} + {{10, 27}, {976, 95}} + RubberWindowFrame + 0 59 1280 719 0 0 1280 778 Module PBXBuildResultsModule @@ -457,11 +489,11 @@ TableOfContents - 6B6FA33D1070B90A009B0572 + 6B7FB6F31091CF16001BA51A 1CA23ED40692098700951B8B - 6B6FA33E1070B90A009B0572 + 6B7FB6F41091CF16001BA51A 6B8632A30F78115100E2684A - 6B6FA33F1070B90A009B0572 + 6B7FB6F51091CF16001BA51A 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -510,12 +542,12 @@ GeometryConfiguration Frame - {{0, 0}, {1280, 136}} + {{0, 0}, {1280, 233}} Module PBXDebugCLIModule Proportion - 136pt + 233pt ContentConfiguration @@ -534,8 +566,8 @@ yes sizes - {{0, 0}, {630, 114}} - {{630, 0}, {650, 114}} + {{0, 0}, {620, 161}} + {{620, 0}, {660, 161}} VerticalSplitView @@ -550,8 +582,8 @@ yes sizes - {{0, 0}, {1280, 114}} - {{0, 114}, {1280, 423}} + {{0, 0}, {1280, 161}} + {{0, 161}, {1280, 279}} @@ -571,7 +603,7 @@ DebugSTDIOWindowFrame {{200, 200}, {500, 300}} Frame - {{0, 141}, {1280, 537}} + {{0, 238}, {1280, 440}} PBXDebugSessionStackFrameViewKey DebugVariablesTableConfiguration @@ -581,16 +613,16 @@ Value 85 Summary - 420 + 430 Frame - {{630, 0}, {650, 114}} + {{620, 0}, {660, 161}} Module PBXDebugSessionModule Proportion - 537pt + 440pt Name @@ -608,14 +640,14 @@ TableOfContents - 6B6FA3461070B941009B0572 + 6B7FB6F61091CF16001BA51A 1CCC7628064C1048000F2A68 1CCC7629064C1048000F2A68 - 6B6FA3471070B941009B0572 - 6B6FA3481070B941009B0572 - 6B6FA3491070B941009B0572 - 6B6FA34A1070B941009B0572 - 6B8632A30F78115100E2684A + 6B7FB6F71091CF16001BA51A + 6B7FB6F81091CF16001BA51A + 6B7FB6F91091CF16001BA51A + 6B7FB6FA1091CF16001BA51A + 6B7FB6FB1091CF16001BA51A ToolbarConfiguration xcode.toolbar.config.debugV3 @@ -1144,6 +1176,8 @@ Dock + BecomeActive + ContentConfiguration PBXBottomSmartGroupGIDs @@ -1206,8 +1240,6 @@ 185pt - BecomeActive - ContentConfiguration PBXProjectModuleGUID @@ -1247,8 +1279,8 @@ TableOfContents - 6B74D0B7103DE14B00623975 - 6B74D0B8103DE14B00623975 + 6B57D33F108C659D00DDD053 + 6B57D340108C659D00DDD053 1CE0B1FE06471DED0097A5F4 1CA1AED706398EBD00589147 @@ -1257,9 +1289,9 @@ WindowString 21 346 744 409 0 0 1280 778 WindowToolGUID - 6B74D0B7103DE14B00623975 + 6B57D33F108C659D00DDD053 WindowToolIsVisible - + Identifier