diff --git a/DebugUtils/Source/DetourDebugDraw.cpp b/DebugUtils/Source/DetourDebugDraw.cpp index 9edbcc6..dd7965f 100755 --- a/DebugUtils/Source/DetourDebugDraw.cpp +++ b/DebugUtils/Source/DetourDebugDraw.cpp @@ -50,7 +50,7 @@ static void drawPolyBoundaries(duDebugDraw* dd, const dtMeshTile* tile, { const dtPoly* p = &tile->polys[i]; - if (p->type == DT_POLYTYPE_OFFMESH_CONNECTION) continue; + if (p->getType() == DT_POLYTYPE_OFFMESH_CONNECTION) continue; const dtPolyDetail* pd = &tile->detailMeshes[i]; @@ -127,7 +127,7 @@ static void drawMeshTile(duDebugDraw* dd, const dtNavMesh& mesh, const dtNavMesh for (int i = 0; i < tile->header->polyCount; ++i) { const dtPoly* p = &tile->polys[i]; - if (p->type == DT_POLYTYPE_OFFMESH_CONNECTION) // Skip off-mesh links. + if (p->getType() == DT_POLYTYPE_OFFMESH_CONNECTION) // Skip off-mesh links. continue; const dtPolyDetail* pd = &tile->detailMeshes[i]; @@ -137,10 +137,10 @@ static void drawMeshTile(duDebugDraw* dd, const dtNavMesh& mesh, const dtNavMesh col = duRGBA(255,196,0,64); else { - if (p->area == 0) // Treat zero area type as default. + if (p->getArea() == 0) // Treat zero area type as default. col = duRGBA(0,192,255,64); else - col = duIntToCol(p->area, 64); + col = duIntToCol(p->getArea(), 64); } for (int j = 0; j < pd->triCount; ++j) @@ -169,14 +169,14 @@ static void drawMeshTile(duDebugDraw* dd, const dtNavMesh& mesh, const dtNavMesh for (int i = 0; i < tile->header->polyCount; ++i) { const dtPoly* p = &tile->polys[i]; - if (p->type != DT_POLYTYPE_OFFMESH_CONNECTION) // Skip regular polys. + if (p->getType() != DT_POLYTYPE_OFFMESH_CONNECTION) // Skip regular polys. continue; unsigned int col; if (query && query->isInClosedList(base | (dtPolyRef)i)) col = duRGBA(255,196,0,220); else - col = duDarkenCol(duIntToCol(p->area, 220)); + col = duDarkenCol(duIntToCol(p->getArea(), 220)); const dtOffMeshConnection* con = &tile->offMeshCons[i - tile->header->offMeshBase]; const float* va = &tile->verts[p->verts[0]*3]; @@ -427,7 +427,7 @@ void duDebugDrawNavMeshPoly(duDebugDraw* dd, const dtNavMesh& mesh, dtPolyRef re const unsigned int c = (col & 0x00ffffff) | (64 << 24); const unsigned int ip = (unsigned int)(poly - tile->polys); - if (poly->type == DT_POLYTYPE_OFFMESH_CONNECTION) + if (poly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION) { dtOffMeshConnection* con = &tile->offMeshCons[ip - tile->header->offMeshBase]; diff --git a/Detour/Include/DetourNavMesh.h b/Detour/Include/DetourNavMesh.h index 92e5cb6..b441bc6 100644 --- a/Detour/Include/DetourNavMesh.h +++ b/Detour/Include/DetourNavMesh.h @@ -71,8 +71,11 @@ struct dtPoly unsigned short neis[DT_VERTS_PER_POLYGON]; // Refs to neighbours of the poly. unsigned short flags; // Flags (see dtPolyFlags). unsigned char vertCount; // Number of vertices. - unsigned char area : 6; // Area ID of the polygon. - unsigned char type : 2; // Polygon type, see dtPolyTypes. + unsigned char areaAndtype; // Bit packed: Area ID of the polygon, and Polygon type, see dtPolyTypes.. + inline void setArea(unsigned char a) { areaAndtype = (areaAndtype & 0xc0) | (a & 0x3f); } + inline void setType(unsigned char t) { areaAndtype = (areaAndtype & 0x3f) | (t << 6); } + inline unsigned char getArea() const { return areaAndtype & 0x3f; } + inline unsigned char getType() const { return areaAndtype >> 6; } }; // Stucture describing polygon detail triangles. diff --git a/Detour/Source/DetourNavMesh.cpp b/Detour/Source/DetourNavMesh.cpp index 9c09c80..ab805d3 100644 --- a/Detour/Source/DetourNavMesh.cpp +++ b/Detour/Source/DetourNavMesh.cpp @@ -455,7 +455,7 @@ void dtNavMesh::connectIntLinks(dtMeshTile* tile) dtPoly* poly = &tile->polys[i]; poly->firstLink = DT_NULL_LINK; - if (poly->type == DT_POLYTYPE_OFFMESH_CONNECTION) + if (poly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION) continue; // Build edge links backwards so that the links will be @@ -1065,7 +1065,7 @@ bool dtNavMesh::storeTileState(const dtMeshTile* tile, unsigned char* data, cons const dtPoly* p = &tile->polys[i]; dtPolyState* s = &polyStates[i]; s->flags = p->flags; - s->area = p->area; + s->area = p->getArea(); } return true; @@ -1095,7 +1095,7 @@ bool dtNavMesh::restoreTileState(dtMeshTile* tile, const unsigned char* data, co dtPoly* p = &tile->polys[i]; const dtPolyState* s = &polyStates[i]; p->flags = s->flags; - p->area = s->area; + p->setArea(s->area); } return true; @@ -1115,7 +1115,7 @@ bool dtNavMesh::getOffMeshConnectionPolyEndPoints(dtPolyRef prevRef, dtPolyRef p const dtPoly* poly = &tile->polys[ip]; // Make sure that the current poly is indeed off-mesh link. - if (poly->type != DT_POLYTYPE_OFFMESH_CONNECTION) + if (poly->getType() != DT_POLYTYPE_OFFMESH_CONNECTION) return false; // Figure out which way to hand out the vertices. @@ -1177,7 +1177,7 @@ void dtNavMesh::setPolyArea(dtPolyRef ref, unsigned char area) dtMeshTile* tile = &m_tiles[it]; if (ip >= (unsigned int)tile->header->polyCount) return; dtPoly* poly = &tile->polys[ip]; - poly->area = area; + poly->setArea(area); } unsigned char dtNavMesh::getPolyArea(dtPolyRef ref) const @@ -1189,6 +1189,6 @@ unsigned char dtNavMesh::getPolyArea(dtPolyRef ref) const const dtMeshTile* tile = &m_tiles[it]; if (ip >= (unsigned int)tile->header->polyCount) return 0; const dtPoly* poly = &tile->polys[ip]; - return poly->area; + return poly->getArea(); } diff --git a/Detour/Source/DetourNavMeshBuilder.cpp b/Detour/Source/DetourNavMeshBuilder.cpp index ab69952..7f83a99 100644 --- a/Detour/Source/DetourNavMeshBuilder.cpp +++ b/Detour/Source/DetourNavMeshBuilder.cpp @@ -430,8 +430,8 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, dtPoly* p = &navPolys[i]; p->vertCount = 0; p->flags = params->polyFlags[i]; - p->area = params->polyAreas[i]; - p->type = DT_POLYTYPE_GROUND; + p->setArea(params->polyAreas[i]); + p->setType(DT_POLYTYPE_GROUND); for (int j = 0; j < nvp; ++j) { if (src[j] == MESH_NULL_IDX) break; @@ -453,8 +453,8 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, p->verts[0] = (unsigned short)(offMeshVertsBase + n*2+0); p->verts[1] = (unsigned short)(offMeshVertsBase + n*2+1); p->flags = params->offMeshConFlags[i]; - p->area = params->offMeshConAreas[i]; - p->type = DT_POLYTYPE_OFFMESH_CONNECTION; + p->setArea(params->offMeshConAreas[i]); + p->setType(DT_POLYTYPE_OFFMESH_CONNECTION); n++; } } diff --git a/Detour/Source/DetourNavMeshQuery.cpp b/Detour/Source/DetourNavMeshQuery.cpp index 727a392..c02ce47 100644 --- a/Detour/Source/DetourNavMeshQuery.cpp +++ b/Detour/Source/DetourNavMeshQuery.cpp @@ -64,7 +64,7 @@ inline float dtQueryFilter::getCost(const float* pa, const float* pb, const dtPolyRef /*curRef*/, const dtMeshTile* /*curTile*/, const dtPoly* curPoly, const dtPolyRef /*nextRef*/, const dtMeshTile* /*nextTile*/, const dtPoly* /*nextPoly*/) const { - return dtVdist(pa, pb) * m_areaCost[curPoly->area]; + return dtVdist(pa, pb) * m_areaCost[curPoly->getArea()]; } #endif @@ -311,7 +311,7 @@ bool dtNavMeshQuery::getPolyHeight(dtPolyRef ref, const float* pos, float* heigh if (!m_nav->getTileAndPolyByRef(ref, &tile, &poly)) return false; - if (poly->type == DT_POLYTYPE_OFFMESH_CONNECTION) + if (poly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION) { const float* v0 = &tile->verts[poly->verts[0]*3]; const float* v1 = &tile->verts[poly->verts[1]*3]; @@ -1398,13 +1398,13 @@ bool dtNavMeshQuery::getPortalPoints(dtPolyRef from, dtPolyRef to, float* left, const dtPoly* fromPoly = 0; if (!m_nav->getTileAndPolyByRef(from, &fromTile, &fromPoly)) return false; - fromType = fromPoly->type; + fromType = fromPoly->getType(); const dtMeshTile* toTile = 0; const dtPoly* toPoly = 0; if (!m_nav->getTileAndPolyByRef(to, &toTile, &toPoly)) return false; - toType = toPoly->type; + toType = toPoly->getType(); return getPortalPoints(from, fromPoly, fromTile, to, toPoly, toTile, left, right); } @@ -1428,7 +1428,7 @@ bool dtNavMeshQuery::getPortalPoints(dtPolyRef from, const dtPoly* fromPoly, con return false; // Handle off-mesh connections. - if (fromPoly->type == DT_POLYTYPE_OFFMESH_CONNECTION) + if (fromPoly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION) { // Find link that points to first vertex. for (unsigned int i = fromPoly->firstLink; i != DT_NULL_LINK; i = fromTile->links[i].next) @@ -1444,7 +1444,7 @@ bool dtNavMeshQuery::getPortalPoints(dtPolyRef from, const dtPoly* fromPoly, con return false; } - if (toPoly->type == DT_POLYTYPE_OFFMESH_CONNECTION) + if (toPoly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION) { for (unsigned int i = toPoly->firstLink; i != DT_NULL_LINK; i = toTile->links[i].next) { @@ -1583,7 +1583,7 @@ int dtNavMeshQuery::raycast(dtPolyRef centerRef, const float* startPos, const fl m_nav->getTileAndPolyByRefUnsafe(link->ref, &nextTile, &nextPoly); // Skip off-mesh connections. - if (nextPoly->type == DT_POLYTYPE_OFFMESH_CONNECTION) + if (nextPoly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION) continue; // Skip links based on filter. @@ -2025,7 +2025,7 @@ int dtNavMeshQuery::findLocalNeighbourhood(dtPolyRef centerRef, const float* cen m_nav->getTileAndPolyByRefUnsafe(neighbourRef, &neighbourTile, &neighbourPoly); // Skip off-mesh connections. - if (neighbourPoly->type == DT_POLYTYPE_OFFMESH_CONNECTION) + if (neighbourPoly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION) continue; // Do not advance if the polygon is excluded by the filter. @@ -2341,7 +2341,7 @@ float dtNavMeshQuery::findDistanceToWall(dtPolyRef centerRef, const float* cente m_nav->getTileAndPolyByRefUnsafe(neighbourRef, &neighbourTile, &neighbourPoly); // Skip off-mesh connections. - if (neighbourPoly->type == DT_POLYTYPE_OFFMESH_CONNECTION) + if (neighbourPoly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION) continue; // Calc distance to the edge. diff --git a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast index 9ee9caf..bdef8d4 100755 Binary files a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast and b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast differ diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 894414f..1f1008e 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -243,6 +243,29 @@ 6BD66807123D2F4E0021A7A4 /* PBXTextBookmark */ = 6BD66807123D2F4E0021A7A4 /* PBXTextBookmark */; 6BD66808123D2F4E0021A7A4 /* PBXTextBookmark */ = 6BD66808123D2F4E0021A7A4 /* PBXTextBookmark */; 6BD6680B123D30DB0021A7A4 /* PBXTextBookmark */ = 6BD6680B123D30DB0021A7A4 /* PBXTextBookmark */; + 6BD6681612434B790021A7A4 /* PBXTextBookmark */ = 6BD6681612434B790021A7A4 /* PBXTextBookmark */; + 6BD6681712434B790021A7A4 /* PBXTextBookmark */ = 6BD6681712434B790021A7A4 /* PBXTextBookmark */; + 6BD6681812434B790021A7A4 /* PBXTextBookmark */ = 6BD6681812434B790021A7A4 /* PBXTextBookmark */; + 6BD6681912434B790021A7A4 /* PBXTextBookmark */ = 6BD6681912434B790021A7A4 /* PBXTextBookmark */; + 6BD6681A12434B790021A7A4 /* PBXTextBookmark */ = 6BD6681A12434B790021A7A4 /* PBXTextBookmark */; + 6BD6681B12434B790021A7A4 /* PBXTextBookmark */ = 6BD6681B12434B790021A7A4 /* PBXTextBookmark */; + 6BD6681C12434B790021A7A4 /* PBXTextBookmark */ = 6BD6681C12434B790021A7A4 /* PBXTextBookmark */; + 6BD6681D12434B7D0021A7A4 /* PBXTextBookmark */ = 6BD6681D12434B7D0021A7A4 /* PBXTextBookmark */; + 6BD6683412434D9D0021A7A4 /* PBXTextBookmark */ = 6BD6683412434D9D0021A7A4 /* PBXTextBookmark */; + 6BD6683512434D9D0021A7A4 /* PBXTextBookmark */ = 6BD6683512434D9D0021A7A4 /* PBXTextBookmark */; + 6BD6683612434D9D0021A7A4 /* PBXTextBookmark */ = 6BD6683612434D9D0021A7A4 /* PBXTextBookmark */; + 6BD6683712434D9D0021A7A4 /* PBXTextBookmark */ = 6BD6683712434D9D0021A7A4 /* PBXTextBookmark */; + 6BD6683812434D9D0021A7A4 /* PBXTextBookmark */ = 6BD6683812434D9D0021A7A4 /* PBXTextBookmark */; + 6BD6683912434D9D0021A7A4 /* PBXTextBookmark */ = 6BD6683912434D9D0021A7A4 /* PBXTextBookmark */; + 6BD6683A12434D9D0021A7A4 /* PBXTextBookmark */ = 6BD6683A12434D9D0021A7A4 /* PBXTextBookmark */; + 6BD6683C12434D9E0021A7A4 /* PBXTextBookmark */ = 6BD6683C12434D9E0021A7A4 /* PBXTextBookmark */; + 6BD6683D12434DA20021A7A4 /* PBXTextBookmark */ = 6BD6683D12434DA20021A7A4 /* PBXTextBookmark */; + 6BD6683E12434DB00021A7A4 /* PBXTextBookmark */ = 6BD6683E12434DB00021A7A4 /* PBXTextBookmark */; + 6BD6683F12434DB00021A7A4 /* PBXTextBookmark */ = 6BD6683F12434DB00021A7A4 /* PBXTextBookmark */; + 6BD6684012434DB00021A7A4 /* PBXTextBookmark */ = 6BD6684012434DB00021A7A4 /* PBXTextBookmark */; + 6BD6684512434DE80021A7A4 /* PBXTextBookmark */ = 6BD6684512434DE80021A7A4 /* PBXTextBookmark */; + 6BD6684612434DE80021A7A4 /* PBXTextBookmark */ = 6BD6684612434DE80021A7A4 /* PBXTextBookmark */; + 6BD6684712434DE80021A7A4 /* PBXTextBookmark */ = 6BD6684712434DE80021A7A4 /* PBXTextBookmark */; 6BF5F27311747CFA000502A6 = 6BF5F27311747CFA000502A6 /* PBXTextBookmark */; 6BF5F2E411748884000502A6 = 6BF5F2E411748884000502A6 /* PBXTextBookmark */; 6BF5F2E511748884000502A6 = 6BF5F2E511748884000502A6 /* PBXTextBookmark */; @@ -296,15 +319,15 @@ }; 6B1185FC10068B040018F96F /* DetourCommon.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 4464}}"; - sepNavSelRange = "{0, 923}"; - sepNavVisRange = "{0, 1250}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 3081}}"; + sepNavSelRange = "{706, 0}"; + sepNavVisRange = "{0, 1401}"; }; }; 6B1185FD10068B150018F96F /* DetourCommon.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 4928}}"; - sepNavSelRange = "{7047, 0}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 4004}}"; + sepNavSelRange = "{7172, 0}"; sepNavVisRange = "{6676, 739}"; }; }; @@ -449,9 +472,9 @@ }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 14752}}"; - sepNavSelRange = "{5666, 51}"; - sepNavVisRange = "{5152, 697}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 11804}}"; + sepNavSelRange = "{1984, 0}"; + sepNavVisRange = "{1726, 705}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; @@ -631,7 +654,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 78"; rLen = 0; - rLoc = 2839; + rLoc = 2844; rType = 0; vrLen = 1029; vrLoc = 2108; @@ -909,24 +932,24 @@ }; 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 19344}}"; - sepNavSelRange = "{3394, 13}"; - sepNavVisRange = "{3053, 727}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 15574}}"; + sepNavSelRange = "{30359, 0}"; + sepNavVisRange = "{29895, 802}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 11440}}"; - sepNavSelRange = "{20401, 0}"; - sepNavVisRange = "{20162, 460}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 9256}}"; + sepNavSelRange = "{12788, 0}"; + sepNavVisRange = "{12098, 839}"; }; }; 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 6176}}"; - sepNavSelRange = "{13969, 0}"; - sepNavVisRange = "{0, 1193}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 5161}}"; + sepNavSelRange = "{3060, 0}"; + sepNavVisRange = "{2112, 1294}"; }; }; 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */ = { @@ -941,7 +964,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = detail; rLen = 0; - rLoc = 12304; + rLoc = 12606; rType = 0; vrLen = 1182; vrLoc = 9676; @@ -1046,7 +1069,7 @@ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; name = "main.cpp: 232"; rLen = 51; - rLoc = 5666; + rLoc = 5667; rType = 0; vrLen = 697; vrLoc = 5152; @@ -1207,7 +1230,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 699"; rLen = 0; - rLoc = 20401; + rLoc = 20409; rType = 0; vrLen = 460; vrLoc = 20162; @@ -1332,7 +1355,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 363"; rLen = 0; - rLoc = 13969; + rLoc = 14271; rType = 0; vrLen = 1193; vrLoc = 0; @@ -1397,8 +1420,8 @@ 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {933, 9724}}"; - sepNavSelRange = "{2725, 0}"; - sepNavVisRange = "{4765, 650}"; + sepNavSelRange = "{5268, 0}"; + sepNavVisRange = "{4767, 673}"; sepNavWindowFrame = "{{15, 51}, {1214, 722}}"; }; }; @@ -1441,9 +1464,9 @@ }; 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {933, 31603}}"; - sepNavSelRange = "{58044, 101}"; - sepNavVisRange = "{57588, 749}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 31733}}"; + sepNavSelRange = "{38744, 0}"; + sepNavVisRange = "{38369, 869}"; }; }; 6BAF427A121ADCC2008CFCDF /* DetourAssert.h */ = { @@ -1536,7 +1559,7 @@ fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; name = "DetourDebugDraw.cpp: 274"; rLen = 0; - rLoc = 7840; + rLoc = 7870; rType = 0; vrLen = 966; vrLoc = 7266; @@ -1614,9 +1637,9 @@ }; 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1219, 7568}}"; - sepNavSelRange = "{11736, 0}"; - sepNavVisRange = "{11553, 271}"; + sepNavIntBoundsRect = "{{0, 0}, {933, 6162}}"; + sepNavSelRange = "{4979, 0}"; + sepNavVisRange = "{4634, 955}"; sepNavWindowFrame = "{{61, 9}, {1214, 722}}"; }; }; @@ -1994,7 +2017,7 @@ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; name = "DetourNavMeshQuery.cpp: 2141"; rLen = 101; - rLoc = 58044; + rLoc = 58084; rType = 0; vrLen = 749; vrLoc = 57588; @@ -2170,6 +2193,236 @@ vrLen = 650; vrLoc = 4765; }; + 6BD6681612434B790021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; + name = "CrowdTool.cpp: 195"; + rLen = 0; + rLoc = 5268; + rType = 0; + vrLen = 673; + vrLoc = 4767; + }; + 6BD6681712434B790021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FC10068B040018F96F /* DetourCommon.h */; + name = "DetourCommon.h: 13"; + rLen = 0; + rLoc = 706; + rType = 0; + vrLen = 1401; + vrLoc = 0; + }; + 6BD6681812434B790021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B1185FD10068B150018F96F /* DetourCommon.cpp */; + name = "DetourCommon.cpp: 276"; + rLen = 0; + rLoc = 7172; + rType = 0; + vrLen = 739; + vrLoc = 6676; + }; + 6BD6681912434B790021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1179"; + rLen = 0; + rLoc = 32003; + rType = 0; + vrLen = 1066; + vrLoc = 31344; + }; + 6BD6681A12434B790021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 77"; + rLen = 0; + rLoc = 2812; + rType = 0; + vrLen = 1219; + vrLoc = 1813; + }; + 6BD6681B12434B790021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 65"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 888; + vrLoc = 1452; + }; + 6BD6681C12434B790021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 65"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 960; + vrLoc = 1453; + }; + 6BD6681D12434B7D0021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 65"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 119; + vrLoc = 1943; + }; + 6BD6683412434D9D0021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 445"; + rLen = 0; + rLoc = 12788; + rType = 0; + vrLen = 839; + vrLoc = 12098; + }; + 6BD6683512434D9D0021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1120"; + rLen = 0; + rLoc = 30359; + rType = 0; + vrLen = 802; + vrLoc = 29895; + }; + 6BD6683612434D9D0021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; + name = "DetourNavMeshQuery.cpp: 1426"; + rLen = 0; + rLoc = 38744; + rType = 0; + vrLen = 869; + vrLoc = 38369; + }; + 6BD6683712434D9D0021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 178"; + rLen = 0; + rLoc = 4979; + rType = 0; + vrLen = 955; + vrLoc = 4634; + }; + 6BD6683812434D9D0021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 76"; + rLen = 0; + rLoc = 2939; + rType = 0; + vrLen = 1183; + vrLoc = 2020; + }; + 6BD6683912434D9D0021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 66"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 670; + vrLoc = 1693; + }; + 6BD6683A12434D9D0021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 66"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 674; + vrLoc = 1694; + }; + 6BD6683C12434D9E0021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 66"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 761; + vrLoc = 1694; + }; + 6BD6683D12434DA20021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 66"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 159; + vrLoc = 1943; + }; + 6BD6683E12434DB00021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 67"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 761; + vrLoc = 1694; + }; + 6BD6683F12434DB00021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 76"; + rLen = 0; + rLoc = 2939; + rType = 0; + vrLen = 1183; + vrLoc = 2020; + }; + 6BD6684012434DB00021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 69"; + rLen = 0; + rLoc = 2391; + rType = 0; + vrLen = 1183; + vrLoc = 2020; + }; + 6BD6684512434DE80021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 77"; + rLen = 0; + rLoc = 3060; + rType = 0; + vrLen = 1294; + vrLoc = 2112; + }; + 6BD6684612434DE80021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 67"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 729; + vrLoc = 1726; + }; + 6BD6684712434DE80021A7A4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; + name = "main.cpp: 64"; + rLen = 0; + rLoc = 1984; + rType = 0; + vrLen = 705; + vrLoc = 1726; + }; 6BF5F23911747606000502A6 /* Filelist.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {909, 1600}}"; diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index 89831d7..9720348 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -284,14 +284,13 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 53 - 51 + 60 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 820}, {264, 607}} + {{0, 521}, {264, 607}} PBXTopSmartGroupGIDs @@ -326,7 +325,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - CrowdTool.cpp + main.cpp PBXSplitModuleInNavigatorKey Split0 @@ -334,11 +333,11 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - CrowdTool.cpp + main.cpp _historyCapacity 0 bookmark - 6BD6680B123D30DB0021A7A4 + 6BD6684712434DE80021A7A4 history 6BBB4AA5115B4F3400CF791D @@ -359,11 +358,9 @@ 6BAF4446121C40AC008CFCDF 6BAF4525121D1723008CFCDF 6BAF46D3121D8FF1008CFCDF - 6BAF475B121DA31D008CFCDF 6B1C8E08121EB4FF0048697F 6B1C8E0A121EB4FF0048697F 6B1C8E27121EB6D30048697F - 6BA687451222EADA00730711 6BA6876E1222F02E00730711 6BA687831222F42100730711 6BA687881222F4DB00730711 @@ -378,13 +375,11 @@ 6BD4028C1224399300995864 6BD4029B12243A8000995864 6BD402B4122441CB00995864 - 6B9209A412259E5B00D5B5AD 6B920A521225C0AC00D5B5AD 6B920A541225C0AC00D5B5AD 6B920A6D1225C5DD00D5B5AD 6B920A6E1225C5DD00D5B5AD 6B920A811225D2EC00D5B5AD - 6B920A8C1225D3C900D5B5AD 6B920A8F1225D3C900D5B5AD 6B920AA71225DBCB00D5B5AD 6B920AA81225DBCB00D5B5AD @@ -393,18 +388,15 @@ 6BA7F8AC1226EF0400C8C47A 6BA7F8B61226EF1100C8C47A 6BA7F8D01226EF9D00C8C47A - 6BA7F8D91226EFF500C8C47A 6BA7F8E91227002300C8C47A 6BA7F8EB1227002300C8C47A 6BA7F8EC1227002300C8C47A 6BA7F8ED1227002300C8C47A 6BA7F8EE1227002300C8C47A 6B9EFF0B12281C6200535FF1 - 6B9EFF0E12281C6200535FF1 6B847513122B9F4900ADF63D 6B847515122B9F4900ADF63D 6B847516122B9F4900ADF63D - 6B847518122B9F4900ADF63D 6B847634122CE32800ADF63D 6B847635122CE32800ADF63D 6B8476F9122D000800ADF63D @@ -420,12 +412,19 @@ 6B8477FE122D2E2A00ADF63D 6B8477FF122D2E2A00ADF63D 6B73B22F123A7ECC00671B94 - 6BD667D3123D27030021A7A4 6BD667E3123D2BD60021A7A4 6BD667FF123D2D230021A7A4 6BD66800123D2D230021A7A4 6BD66806123D2F4E0021A7A4 - 6BD66807123D2F4E0021A7A4 + 6BD6681612434B790021A7A4 + 6BD6681712434B790021A7A4 + 6BD6681812434B790021A7A4 + 6BD6683412434D9D0021A7A4 + 6BD6683512434D9D0021A7A4 + 6BD6683612434D9D0021A7A4 + 6BD6683712434D9D0021A7A4 + 6BD6684512434DE80021A7A4 + 6BD6684612434DE80021A7A4 SplitCount @@ -439,18 +438,18 @@ GeometryConfiguration Frame - {{0, 0}, {994, 490}} + {{0, 0}, {994, 420}} RubberWindowFrame 0 112 1280 666 0 0 1280 778 Module PBXNavigatorGroup Proportion - 490pt + 420pt Proportion - 130pt + 200pt Tabs @@ -518,7 +517,7 @@ GeometryConfiguration Frame - {{10, 27}, {994, 103}} + {{10, 27}, {994, 173}} RubberWindowFrame 0 112 1280 666 0 0 1280 778 @@ -579,7 +578,6 @@ debugger-step-out debugger-enable-breakpoints NSToolbarFlexibleSpaceItem - com.apple.ide.XCBreakpointsToolbarItem clear-log ControllerClassBaseName @@ -603,12 +601,12 @@ GeometryConfiguration Frame - {{0, 0}, {1280, 501}} + {{0, 0}, {1280, 462}} Module PBXDebugCLIModule Proportion - 501pt + 462pt ContentConfiguration @@ -627,8 +625,8 @@ yes sizes - {{0, 0}, {576, 85}} - {{576, 0}, {704, 85}} + {{0, 0}, {576, 80}} + {{576, 0}, {704, 80}} VerticalSplitView @@ -643,8 +641,8 @@ yes sizes - {{0, 0}, {1280, 85}} - {{0, 85}, {1280, 87}} + {{0, 0}, {1280, 80}} + {{0, 78}, {1280, 80}} @@ -664,7 +662,7 @@ DebugSTDIOWindowFrame {{200, 200}, {500, 300}} Frame - {{0, 506}, {1280, 172}} + {{0, 467}, {1280, 158}} PBXDebugSessionStackFrameViewKey DebugVariablesTableConfiguration @@ -677,13 +675,13 @@ 328 Frame - {{576, 0}, {704, 85}} + {{576, 0}, {704, 80}} Module PBXDebugSessionModule Proportion - 172pt + 158pt Name diff --git a/RecastDemo/Source/main.cpp b/RecastDemo/Source/main.cpp index 8402fb2..50c0fd1 100644 --- a/RecastDemo/Source/main.cpp +++ b/RecastDemo/Source/main.cpp @@ -61,7 +61,7 @@ static const int g_nsamples = sizeof(g_samples)/sizeof(SampleItem); int main(int /*argc*/, char** /*argv*/) -{ +{ // Init SDL if (SDL_Init(SDL_INIT_EVERYTHING) != 0) {