Changed many 0xffff:s to named consts.

This commit is contained in:
Mikko Mononen 2010-01-27 14:52:18 +00:00
parent 4cb96e9dc0
commit 5651b7c5dd
12 changed files with 313 additions and 2453 deletions

View File

@ -523,7 +523,7 @@ void duDebugDrawPolyMesh(duDebugDraw* dd, const struct rcPolyMesh& mesh)
unsigned short vi[3];
for (int j = 2; j < nvp; ++j)
{
if (p[j] == 0xffff) break;
if (p[j] == RC_MESH_NULL_IDX) break;
vi[0] = p[0];
vi[1] = p[j-1];
vi[2] = p[j];
@ -547,11 +547,11 @@ void duDebugDrawPolyMesh(duDebugDraw* dd, const struct rcPolyMesh& mesh)
const unsigned short* p = &mesh.polys[i*nvp*2];
for (int j = 0; j < nvp; ++j)
{
if (p[j] == 0xffff) break;
if (p[nvp+j] == 0xffff) continue;
if (p[j] == RC_MESH_NULL_IDX) break;
if (p[nvp+j] == RC_MESH_NULL_IDX) continue;
int vi[2];
vi[0] = p[j];
if (j+1 >= nvp || p[j+1] == 0xffff)
if (j+1 >= nvp || p[j+1] == RC_MESH_NULL_IDX)
vi[1] = p[0];
else
vi[1] = p[j+1];
@ -575,11 +575,11 @@ void duDebugDrawPolyMesh(duDebugDraw* dd, const struct rcPolyMesh& mesh)
const unsigned short* p = &mesh.polys[i*nvp*2];
for (int j = 0; j < nvp; ++j)
{
if (p[j] == 0xffff) break;
if (p[nvp+j] != 0xffff) continue;
if (p[j] == RC_MESH_NULL_IDX) break;
if (p[nvp+j] != RC_MESH_NULL_IDX) continue;
int vi[2];
vi[0] = p[j];
if (j+1 >= nvp || p[j+1] == 0xffff)
if (j+1 >= nvp || p[j+1] == RC_MESH_NULL_IDX)
vi[1] = p[0];
else
vi[1] = p[j+1];

View File

@ -55,7 +55,7 @@ bool duDumpPolyMeshToObj(rcPolyMesh& pmesh, const char* filepath)
const unsigned short* p = &pmesh.polys[i*nvp*2];
for (int j = 2; j < nvp; ++j)
{
if (p[j] == 0xffff) break;
if (p[j] == RC_MESH_NULL_IDX) break;
fprintf(fp, "f %d %d %d\n", p[0]+1, p[j-1]+1, p[j]+1);
}
}

View File

@ -24,7 +24,7 @@
#include "DetourCommon.h"
#include "DetourNavMeshBuilder.h"
static unsigned short MESH_NULL_IDX = 0xffff;
struct BVItem
{
@ -184,7 +184,7 @@ static int createBVTree(const unsigned short* verts, const int nverts,
for (int j = 1; j < nvp; ++j)
{
if (p[j] == 0xffff) break;
if (p[j] == MESH_NULL_IDX) break;
unsigned short x = verts[p[j]*3+0];
unsigned short y = verts[p[j]*3+1];
unsigned short z = verts[p[j]*3+2];
@ -293,9 +293,9 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
const unsigned short* p = &params->polys[i*2*nvp];
for (int j = 0; j < nvp; ++j)
{
if (p[j] == 0xffff) break;
if (p[j] == MESH_NULL_IDX) break;
int nj = j+1;
if (nj >= nvp || p[nj] == 0xffff) nj = 0;
if (nj >= nvp || p[nj] == MESH_NULL_IDX) nj = 0;
const unsigned short* va = &params->verts[p[j]*3];
const unsigned short* vb = &params->verts[p[nj]*3];
@ -326,7 +326,7 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
int nv = 0;
for (int j = 0; j < nvp; ++j)
{
if (p[j] == 0xffff) break;
if (p[j] == MESH_NULL_IDX) break;
nv++;
}
ndv -= nv;
@ -422,7 +422,7 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
p->flags = DT_POLY_GROUND;
for (int j = 0; j < nvp; ++j)
{
if (src[j] == 0xffff) break;
if (src[j] == MESH_NULL_IDX) break;
p->verts[j] = src[j];
p->neis[j] = (src[nvp+j]+1) & 0xffff;
p->vertCount++;

View File

@ -19,6 +19,8 @@
#include "DetourNode.h"
#include <string.h>
static const unsigned short DT_NULL_IDX = 0xffff;
//////////////////////////////////////////////////////////////////////////////////////////
dtNodePool::dtNodePool(int maxNodes, int hashSize) :
@ -53,7 +55,7 @@ const dtNode* dtNodePool::findNode(unsigned int id) const
{
unsigned int bucket = hashint(id) & (m_hashSize-1);
unsigned short i = m_first[bucket];
while (i != 0xffff)
while (i != DT_NULL_IDX)
{
if (m_nodes[i].id == id)
return &m_nodes[i];
@ -67,7 +69,7 @@ dtNode* dtNodePool::getNode(unsigned int id)
unsigned int bucket = hashint(id) & (m_hashSize-1);
unsigned short i = m_first[bucket];
dtNode* node = 0;
while (i != 0xffff)
while (i != DT_NULL_IDX)
{
if (m_nodes[i].id == id)
return &m_nodes[i];

View File

@ -150,8 +150,8 @@ struct rcContourSet
// 'nvp*2' elements. The first 'nvp' elements are indices to vertices
// and the second 'nvp' elements are indices to neighbour polygons.
// If a polygona has less than 'bvp' vertices, the remaining indices
// are set os 0xffff. If an polygon edge does not have a neighbour
// the neighbour index is set to 0xffff.
// are set to RC_MESH_NULL_IDX. If an polygon edge does not have a neighbour
// the neighbour index is set to RC_MESH_NULL_IDX.
// Vertices can be transformed into world space as follows:
// x = bmin[0] + verts[i*3+0]*cs;
// y = bmin[1] + verts[i*3+1]*ch;
@ -242,6 +242,11 @@ static const unsigned short RC_BORDER_REG = 0x8000;
// removed in order to match the segments and vertices at tile boundaries.
static const int RC_BORDER_VERTEX = 0x10000;
// Mask used with contours to extract region id.
static const int RC_CONTOUR_REG_MASK = 0xffff;
// Null index which is used with meshes to mark unset or invalid indices.
static const unsigned short RC_MESH_NULL_IDX = 0xffff;
// Value returned by rcGetCon() if the direction is not connected.
static const int RC_NOT_CONNECTED = 0xf;

View File

@ -223,7 +223,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float ma
bool noConnections = true;
for (int i = 0; i < points.size(); i += 4)
{
if ((points[i+3] & 0xffff) != 0)
if ((points[i+3] & RC_CONTOUR_REG_MASK) != 0)
{
noConnections = false;
break;
@ -280,7 +280,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float ma
for (int i = 0, ni = points.size()/4; i < ni; ++i)
{
int ii = (i+1) % ni;
if ((points[i*4+3] & 0xffff) != (points[ii*4+3] & 0xffff))
if ((points[i*4+3] & RC_CONTOUR_REG_MASK) != (points[ii*4+3] & RC_CONTOUR_REG_MASK))
{
simplified.push(points[i*4+0]);
simplified.push(points[i*4+1]);
@ -313,7 +313,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float ma
int ci = (ai+1) % pn;
// Tesselate only outer edges.
if ((points[ci*4+3] & 0xffff) == 0)
if ((points[ci*4+3] & RC_CONTOUR_REG_MASK) == 0)
{
while (ci != bi)
{
@ -375,7 +375,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float ma
int ci = (ai+1) % pn;
// Tesselate only outer edges.
if ((points[ci*4+3] & 0xffff) == 0)
if ((points[ci*4+3] & RC_CONTOUR_REG_MASK) == 0)
{
int dx = bx - ax;
int dz = bz - az;
@ -419,7 +419,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float ma
// and the neighbour region is take from the next raw point.
const int ai = (simplified[i*4+3]+1) % pn;
const int bi = simplified[i*4+3];
simplified[i*4+3] = (points[ai*4+3] & 0xffff) | (points[bi*4+3] & RC_BORDER_VERTEX);
simplified[i*4+3] = (points[ai*4+3] & RC_CONTOUR_REG_MASK) | (points[bi*4+3] & RC_BORDER_VERTEX);
}
}

View File

@ -50,10 +50,7 @@ static bool buildMeshAdjacency(unsigned short* polys, const int npolys,
return false;
for (int i = 0; i < nverts; i++)
firstEdge[i] = 0xffff;
// Invalida indices are marked as 0xffff, the following code
// handles them just fine.
firstEdge[i] = RC_MESH_NULL_IDX;
for (int i = 0; i < npolys; ++i)
{
@ -61,7 +58,7 @@ static bool buildMeshAdjacency(unsigned short* polys, const int npolys,
for (int j = 0; j < vertsPerPoly; ++j)
{
unsigned short v0 = t[j];
unsigned short v1 = (j+1 >= vertsPerPoly || t[j+1] == 0xffff) ? t[0] : t[j+1];
unsigned short v1 = (j+1 >= vertsPerPoly || t[j+1] == RC_MESH_NULL_IDX) ? t[0] : t[j+1];
if (v0 < v1)
{
rcEdge& edge = edges[edgeCount];
@ -85,10 +82,10 @@ static bool buildMeshAdjacency(unsigned short* polys, const int npolys,
for (int j = 0; j < vertsPerPoly; ++j)
{
unsigned short v0 = t[j];
unsigned short v1 = (j+1 >= vertsPerPoly || t[j+1] == 0xffff) ? t[0] : t[j+1];
unsigned short v1 = (j+1 >= vertsPerPoly || t[j+1] == RC_MESH_NULL_IDX) ? t[0] : t[j+1];
if (v0 > v1)
{
for (unsigned short e = firstEdge[v1]; e != 0xffff; e = nextEdge[e])
for (unsigned short e = firstEdge[v1]; e != RC_MESH_NULL_IDX; e = nextEdge[e])
{
rcEdge& edge = edges[e];
if (edge.vert[1] == v0 && edge.poly[0] == edge.poly[1])
@ -379,7 +376,7 @@ int triangulate(int n, const int* verts, int* indices, int* tris)
static int countPolyVerts(const unsigned short* p, const int nvp)
{
for (int i = 0; i < nvp; ++i)
if (p[i] == 0xffff)
if (p[i] == RC_MESH_NULL_IDX)
return i;
return nvp;
}
@ -1145,7 +1142,7 @@ bool rcMergePolyMeshes(rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh)
mesh.npolys++;
for (int k = 0; k < mesh.nvp; ++k)
{
if (src[k] == 0xffff) break;
if (src[k] == RC_MESH_NULL_IDX) break;
tgt[k] = vremap[src[k]];
}
}

View File

@ -27,6 +27,8 @@
#include "RecastTimer.h"
static const unsigned RC_UNSET_HEIGHT = 0xffff;
struct rcHeightPatch
{
inline rcHeightPatch() : data(0) {}
@ -199,7 +201,7 @@ static unsigned short getHeight(const float fx, const float fz, const float cs,
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)
if (h == RC_UNSET_HEIGHT)
{
// Special case when data might be bad.
// Find nearest neighbour pixel which has valid height.
@ -211,7 +213,7 @@ static unsigned short getHeight(const float fx, const float fz, const float cs,
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;
if (nh == RC_UNSET_HEIGHT) continue;
const float dx = (nx+0.5f)*cs - fx;
const float dz = (nz+0.5f)*cs - fz;
const float d = dx*dx+dz*dz;
@ -726,7 +728,7 @@ static void getHeightData(const rcCompactHeightfield& chf,
continue;
const rcCompactCell& c = chf.cells[ax+az*chf.width];
int dmin = 0xffff;
int dmin = RC_UNSET_HEIGHT;
int ai = -1;
for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i)
{
@ -764,7 +766,7 @@ static void getHeightData(const rcCompactHeightfield& chf,
cz >= hp.ymin && cz < hp.ymin+hp.height)
{
const rcCompactCell& c = chf.cells[cx+cz*chf.width];
int dmin = 0xffff;
int dmin = RC_UNSET_HEIGHT;
int ci = -1;
for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i)
{
@ -793,7 +795,7 @@ static void getHeightData(const rcCompactHeightfield& chf,
// Skip already visited locations.
int idx = cx-hp.xmin+(cy-hp.ymin)*hp.width;
if (hp.data[idx] != 0xffff)
if (hp.data[idx] != RC_UNSET_HEIGHT)
continue;
const rcCompactSpan& cs = chf.spans[ci];
@ -810,7 +812,7 @@ static void getHeightData(const rcCompactHeightfield& chf,
ay < hp.ymin || ay >= (hp.ymin+hp.height))
continue;
if (hp.data[ax-hp.xmin+(ay-hp.ymin)*hp.width] != 0xffff)
if (hp.data[ax-hp.xmin+(ay-hp.ymin)*hp.width] != RC_UNSET_HEIGHT)
continue;
const int ai = (int)chf.cells[ax+ay*chf.width].index + rcGetCon(cs, dir);
@ -900,7 +902,7 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c
ymax = 0;
for (int j = 0; j < nvp; ++j)
{
if(p[j] == 0xffff) break;
if(p[j] == RC_MESH_NULL_IDX) break;
const unsigned short* v = &mesh.verts[p[j]*3];
xmin = rcMin(xmin, (int)v[0]);
xmax = rcMax(xmax, (int)v[0]);
@ -964,7 +966,7 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c
int npoly = 0;
for (int j = 0; j < nvp; ++j)
{
if(p[j] == 0xffff) break;
if(p[j] == RC_MESH_NULL_IDX) break;
const unsigned short* v = &mesh.verts[p[j]*3];
poly[j*3+0] = v[0]*cs;
poly[j*3+1] = v[1]*ch;

View File

@ -954,6 +954,9 @@ static void paintRectRegion(int minx, int maxx, int miny, int maxy,
}
}
static const unsigned short RC_NULL_NEI = 0xffff;
struct rcSweepSpan
{
unsigned short rid; // row id
@ -1061,7 +1064,7 @@ bool rcBuildRegionsMonotone(rcCompactHeightfield& chf,
}
else
{
sweeps[previd].nei = 0xffff;
sweeps[previd].nei = RC_NULL_NEI;
}
}
}
@ -1073,7 +1076,7 @@ bool rcBuildRegionsMonotone(rcCompactHeightfield& chf,
// Create unique ID.
for (int i = 1; i < rid; ++i)
{
if (sweeps[i].nei != 0xffff && sweeps[i].nei != 0 &&
if (sweeps[i].nei != RC_NULL_NEI && sweeps[i].nei != 0 &&
prev[sweeps[i].nei] == (int)sweeps[i].ns)
{
sweeps[i].id = sweeps[i].nei;

File diff suppressed because it is too large Load Diff

View File

@ -323,7 +323,7 @@
<key>PBXProjectModuleGUID</key>
<string>6B8632A30F78115100E2684A</string>
<key>PBXProjectModuleLabel</key>
<string>DetourNavMesh.cpp</string>
<string>DetourNavMesh.h</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@ -331,11 +331,11 @@
<key>PBXProjectModuleGUID</key>
<string>6B8632A40F78115100E2684A</string>
<key>PBXProjectModuleLabel</key>
<string>DetourNavMesh.cpp</string>
<string>DetourNavMesh.h</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>6BF7BE92110F1BDA002B3F46</string>
<string>6BF7C0D41110857A002B3F46</string>
<key>history</key>
<array>
<string>6B57D358108C66B200DDD053</string>
@ -385,8 +385,8 @@
<string>6BF7BE82110F196C002B3F46</string>
<string>6BF7BE83110F196C002B3F46</string>
<string>6BF7BE8C110F1AFC002B3F46</string>
<string>6BF7BE8D110F1AFC002B3F46</string>
<string>6BF7BE1E110F0792002B3F46</string>
<string>6BF7C0CB1110857A002B3F46</string>
<string>6BF7C0CC1110857A002B3F46</string>
</array>
<key>prevStack</key>
<array>
@ -427,99 +427,13 @@
<string>6B4260411109E27F00C48C36</string>
<string>6B4260471109E83800C48C36</string>
<string>6B4260481109E83800C48C36</string>
<string>6BF7BDC7110EF674002B3F46</string>
<string>6BF7BDC8110EF674002B3F46</string>
<string>6BF7BDC9110EF674002B3F46</string>
<string>6BF7BDCA110EF674002B3F46</string>
<string>6BF7BDCB110EF674002B3F46</string>
<string>6BF7BDCC110EF674002B3F46</string>
<string>6BF7BDCD110EF674002B3F46</string>
<string>6BF7BDCE110EF674002B3F46</string>
<string>6BF7BDCF110EF674002B3F46</string>
<string>6BF7BDD0110EF674002B3F46</string>
<string>6BF7BDD1110EF674002B3F46</string>
<string>6BF7BDD2110EF674002B3F46</string>
<string>6BF7BDD3110EF674002B3F46</string>
<string>6BF7BDD4110EF674002B3F46</string>
<string>6BF7BDD5110EF674002B3F46</string>
<string>6BF7BDD6110EF674002B3F46</string>
<string>6BF7BDD7110EF674002B3F46</string>
<string>6BF7BDD8110EF674002B3F46</string>
<string>6BF7BDD9110EF674002B3F46</string>
<string>6BF7BDDA110EF674002B3F46</string>
<string>6BF7BDDB110EF674002B3F46</string>
<string>6BF7BDDC110EF674002B3F46</string>
<string>6BF7BDDD110EF674002B3F46</string>
<string>6BF7BDDE110EF674002B3F46</string>
<string>6BF7BDDF110EF674002B3F46</string>
<string>6BF7BDE0110EF674002B3F46</string>
<string>6BF7BDE1110EF674002B3F46</string>
<string>6BF7BDE2110EF674002B3F46</string>
<string>6BF7BDE3110EF674002B3F46</string>
<string>6BF7BDE4110EF674002B3F46</string>
<string>6BF7BDE5110EF674002B3F46</string>
<string>6BF7BDE6110EF674002B3F46</string>
<string>6BF7BDE7110EF674002B3F46</string>
<string>6BF7BDE8110EF674002B3F46</string>
<string>6BF7BDE9110EF674002B3F46</string>
<string>6BF7BDEA110EF674002B3F46</string>
<string>6BF7BDF7110EF76D002B3F46</string>
<string>6BF7BDF8110EF76D002B3F46</string>
<string>6BF7BDF9110EF76D002B3F46</string>
<string>6BF7BDFA110EF76D002B3F46</string>
<string>6BF7BE07110EF794002B3F46</string>
<string>6BF7BE11110EF7F7002B3F46</string>
<string>6BF7BE1A110F023C002B3F46</string>
<string>6BF7BE1B110F023C002B3F46</string>
<string>6BF7BE1C110F023C002B3F46</string>
<string>6BF7BE22110F0792002B3F46</string>
<string>6BF7BE23110F0792002B3F46</string>
<string>6BF7BE24110F0792002B3F46</string>
<string>6BF7BE25110F0792002B3F46</string>
<string>6BF7BE26110F0792002B3F46</string>
<string>6BF7BE2C110F13F9002B3F46</string>
<string>6BF7BE2D110F13F9002B3F46</string>
<string>6BF7BE40110F1576002B3F46</string>
<string>6BF7BE41110F1576002B3F46</string>
<string>6BF7BE42110F1576002B3F46</string>
<string>6BF7BE43110F1576002B3F46</string>
<string>6BF7BE44110F1576002B3F46</string>
<string>6BF7BE45110F1576002B3F46</string>
<string>6BF7BE46110F1576002B3F46</string>
<string>6BF7BE47110F1576002B3F46</string>
<string>6BF7BE48110F1576002B3F46</string>
<string>6BF7BE49110F1576002B3F46</string>
<string>6BF7BE4A110F1576002B3F46</string>
<string>6BF7BE4B110F1576002B3F46</string>
<string>6BF7BE4C110F1576002B3F46</string>
<string>6BF7BE4D110F1576002B3F46</string>
<string>6BF7BE4E110F1576002B3F46</string>
<string>6BF7BE56110F160F002B3F46</string>
<string>6BF7BE57110F160F002B3F46</string>
<string>6BF7BE64110F170A002B3F46</string>
<string>6BF7BE65110F170A002B3F46</string>
<string>6BF7BE66110F170A002B3F46</string>
<string>6BF7BE67110F170A002B3F46</string>
<string>6BF7BE68110F170A002B3F46</string>
<string>6BF7BE69110F170A002B3F46</string>
<string>6BF7BE6A110F170A002B3F46</string>
<string>6BF7BE6B110F170A002B3F46</string>
<string>6BF7BE6C110F170A002B3F46</string>
<string>6BF7BE6D110F170A002B3F46</string>
<string>6BF7BE78110F1832002B3F46</string>
<string>6BF7BE79110F1832002B3F46</string>
<string>6BF7BE7A110F1832002B3F46</string>
<string>6BF7BE7B110F1832002B3F46</string>
<string>6BF7BE7C110F1832002B3F46</string>
<string>6BF7BE7D110F1832002B3F46</string>
<string>6BF7BE85110F196C002B3F46</string>
<string>6BF7BE86110F196C002B3F46</string>
<string>6BF7BE87110F196C002B3F46</string>
<string>6BF7BE88110F196C002B3F46</string>
<string>6BF7BE89110F196C002B3F46</string>
<string>6BF7BE8A110F196C002B3F46</string>
<string>6BF7BE8E110F1AFC002B3F46</string>
<string>6BF7BE8F110F1AFC002B3F46</string>
<string>6BF7C0CD1110857A002B3F46</string>
<string>6BF7C0CE1110857A002B3F46</string>
<string>6BF7C0CF1110857A002B3F46</string>
<string>6BF7C0D01110857A002B3F46</string>
<string>6BF7C0D11110857A002B3F46</string>
<string>6BF7C0D21110857A002B3F46</string>
<string>6BF7C0D31110857A002B3F46</string>
</array>
</dict>
<key>SplitCount</key>
@ -558,7 +472,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{10, 27}, {876, 88}}</string>
<string>{{10, 27}, {876, 73}}</string>
<key>RubberWindowFrame</key>
<string>11 76 1256 702 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@ -575,8 +491,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {876, 73}}</string>
<key>RubberWindowFrame</key>
<string>11 76 1256 702 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXProjectFindModule</string>
@ -642,11 +556,11 @@
</array>
<key>TableOfContents</key>
<array>
<string>6BF7BDEC110EF674002B3F46</string>
<string>6BF7C0C811108202002B3F46</string>
<string>1CA23ED40692098700951B8B</string>
<string>6BF7BDED110EF674002B3F46</string>
<string>6BF7C0C911108202002B3F46</string>
<string>6B8632A30F78115100E2684A</string>
<string>6BF7BDEE110EF674002B3F46</string>
<string>6BF7C0CA11108202002B3F46</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@ -834,8 +748,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
<string>6BF7BE0B110EF794002B3F46</string>
<string>6BF7BE0C110EF794002B3F46</string>
<string>/Users/memon/Code/recastnavigation/RecastDemo/Build/Xcode/Recast.xcodeproj</string>
</array>
<key>WindowString</key>