From e973b71d4ba8158446efef760059d57a9c3e59d7 Mon Sep 17 00:00:00 2001 From: Mikko Mononen Date: Tue, 19 Jan 2010 15:13:33 +0000 Subject: [PATCH] More polygons flags. Added filter for Detour queries. --- Detour/Include/DetourNavMesh.h | 51 +- Detour/Source/DetourNavMesh.cpp | 91 +- Detour/Source/DetourNavMeshBuilder.cpp | 1 + .../Bin/Recast.app/Contents/MacOS/Recast | Bin 401268 -> 405980 bytes .../Xcode/Recast.xcodeproj/memon.pbxuser | 958 ++++++++++++++---- .../Recast.xcodeproj/memon.perspectivev3 | 66 +- RecastDemo/Include/NavMeshTesterTool.h | 2 + RecastDemo/Source/NavMeshTesterTool.cpp | 46 +- 8 files changed, 965 insertions(+), 250 deletions(-) diff --git a/Detour/Include/DetourNavMesh.h b/Detour/Include/DetourNavMesh.h index 984ff24..a4284fa 100644 --- a/Detour/Include/DetourNavMesh.h +++ b/Detour/Include/DetourNavMesh.h @@ -28,19 +28,39 @@ static const int DT_VERTS_PER_POLYGON = 6; static const int DT_NAVMESH_MAGIC = 'DNAV'; static const int DT_NAVMESH_VERSION = 2; -static const unsigned char DT_POLY_OFFMESH_CONNECTION = 1; - static const unsigned short DT_EXT_LINK = 0x8000; +// Flags returned by findStraightPath(). +enum dtStraightPathFlags +{ + DT_STRAIGHTPATH_START = 0x01, // The vertex is the start position. + DT_STRAIGHTPATH_END = 0x02, // The vertex is the end position. + DT_STRAIGHTPATH_OFFMESH_CONNECTION = 0x04, // The vertex is start of an off-mesh link. +}; + +// Flags describing polygon properties. +enum dtPolyFlags +{ + DT_POLY_GROUND = 0x01, // Regular ground polygons. + DT_POLY_OFFMESH_CONNECTION = 0x02, // Off-mesh connections. +}; + +struct dtQueryFilter +{ + dtQueryFilter() : includeFlags(0xffff), excludeFlags(0) {} + unsigned short includeFlags; // If any of the flags are set, the poly is included. + unsigned short excludeFlags; // If any of the flags are set, the poly is excluded. +}; + // Structure describing the navigation polygon data. struct dtPoly { unsigned short verts[DT_VERTS_PER_POLYGON]; // Indices to vertices of the poly. unsigned short neis[DT_VERTS_PER_POLYGON]; // Refs to neighbours of the poly. unsigned short linkBase; // Base index to header 'links' array. + unsigned short flags; // Flags (see dtPolyFlags). unsigned char linkCount; // Number of links for unsigned char vertCount; // Number of vertices. - unsigned char flags; // Flags. }; // Stucture describing polygon detail triangles. @@ -118,13 +138,6 @@ struct dtMeshTile dtMeshTile* next; // Next free tile or, next tile in spatial grid. }; -// Flags returned by findStraightPath(). -enum dtStraightPathFlags -{ - DT_STRAIGHTPATH_START = 0x01, // The vertex is the start position. - DT_STRAIGHTPATH_END = 0x02, // The vertex is the end position. - DT_STRAIGHTPATH_OFFMESH_CONNECTION = 0x04, // The vertex is start of an off-mesh link. -}; class dtNavMesh { @@ -206,16 +219,17 @@ public: // extents - (in) The extents of the search box. // nearestPt - (out, opt) The nearest point on found polygon, null if not needed. // Returns: Reference identifier for the polygon, or 0 if no polygons found. - dtPolyRef findNearestPoly(const float* center, const float* extents, float* nearestPt); + dtPolyRef findNearestPoly(const float* center, const float* extents, dtQueryFilter* filter, float* nearestPt); // Returns polygons which touch the query box. // Params: // center - (in) the center of the search box. // extents - (in) the extents of the search box. + // flags - (int) // polys - (out) array holding the search result. // maxPolys - (in) The max number of polygons the polys array can hold. // Returns: Number of polygons in search result array. - int queryPolygons(const float* center, const float* extents, + int queryPolygons(const float* center, const float* extents, dtQueryFilter* filter, dtPolyRef* polys, const int maxPolys); // Finds path from start polygon to end polygon. @@ -229,6 +243,7 @@ public: // Returns: Number of polygons in search result array. int findPath(dtPolyRef startRef, dtPolyRef endRef, const float* startPos, const float* endPos, + dtQueryFilter* filter, dtPolyRef* path, const int maxPathSize); // Finds a straight path from start to end locations within the corridor @@ -266,7 +281,7 @@ public: // hitNormal - (out) normal of the nearest hit. // endRef - (out) ref to the last polygon which was processed. // Returns: Number of polygons in path or 0 if failed. - int raycast(dtPolyRef startRef, const float* startPos, const float* endPos, + int raycast(dtPolyRef startRef, const float* startPos, const float* endPos, dtQueryFilter* filter, float& t, float* hitNormal, dtPolyRef* path, const int pathSize); // Returns distance to nearest wall from the specified location. @@ -278,7 +293,7 @@ public: // hitNormal - (out) normal of the nearest hit. // Returns: Distance to nearest wall from the test location. float findDistanceToWall(dtPolyRef centerRef, const float* centerPos, float maxRadius, - float* hitPos, float* hitNormal); + dtQueryFilter* filter, float* hitPos, float* hitNormal); // Finds polygons found along the navigation graph which touch the specified circle. // Params: @@ -290,7 +305,7 @@ public: // resultCost - (out, opt) search cost at each result polygon. // maxResult - (int) maximum capacity of search results. // Returns: Number of results. - int findPolysAround(dtPolyRef centerRef, const float* centerPos, float radius, + int findPolysAround(dtPolyRef centerRef, const float* centerPos, float radius, dtQueryFilter* filter, dtPolyRef* resultRef, dtPolyRef* resultParent, float* resultCost, const int maxResult); @@ -371,9 +386,9 @@ private: // Removes external links at specified side. void removeExtLinks(dtMeshTile* tile, int side); // Queries polygons within a tile. - int queryTilePolygons(dtMeshTile* tile, const float* qmin, const float* qmax, + int queryTilePolygons(dtMeshTile* tile, const float* qmin, const float* qmax, dtQueryFilter* filter, dtPolyRef* polys, const int maxPolys); - + unsigned short getPolyFlags(dtPolyRef ref); float getCost(dtPolyRef prev, dtPolyRef from, dtPolyRef to) const; float getFirstCost(const float* pos, dtPolyRef from, dtPolyRef to) const; float getLastCost(dtPolyRef from, dtPolyRef to, const float* pos) const; @@ -381,7 +396,7 @@ private: // Returns portal points between two polygons. bool getPortalPoints(dtPolyRef from, dtPolyRef to, float* left, float* right, - unsigned char& fromFlags, unsigned char& toFlags) const; + unsigned short& fromFlags, unsigned short& toFlags) const; // Returns edge mid point between two polygons. bool getEdgeMidPoint(dtPolyRef from, dtPolyRef to, float* mid) const; diff --git a/Detour/Source/DetourNavMesh.cpp b/Detour/Source/DetourNavMesh.cpp index 7fb3705..e1eec9d 100644 --- a/Detour/Source/DetourNavMesh.cpp +++ b/Detour/Source/DetourNavMesh.cpp @@ -74,6 +74,11 @@ inline int computeTileHash(int x, int y, const int mask) return (int)(n & mask); } +inline bool passFilter(dtQueryFilter* filter, unsigned short flags) +{ + return (flags & filter->includeFlags) != 0 && (flags & filter->excludeFlags) == 0; +} + ////////////////////////////////////////////////////////////////////////////////////////// @@ -361,6 +366,7 @@ void dtNavMesh::buildIntLinks(dtMeshTile* tile) { dtOffMeshConnection* con = &h->offMeshCons[i]; dtPoly* poly = &h->polys[con->poly]; + dtQueryFilter defaultFilter; con->ref[0] = 0; con->ref[1] = 0; @@ -371,7 +377,7 @@ void dtNavMesh::buildIntLinks(dtMeshTile* tile) // Find polygon to connect to. const float* p = &con->pos[j*3]; float nearestPt[3]; - dtPolyRef ref = findNearestPoly(p, ext, nearestPt); + dtPolyRef ref = findNearestPoly(p, ext, &defaultFilter, nearestPt); // findNearestPoly may return too optimistic results, further check to make sure. if (sqr(nearestPt[0]-p[0])+sqr(nearestPt[2]-p[2]) > sqr(con->rad)) continue; @@ -847,11 +853,11 @@ bool dtNavMesh::getPolyHeight(dtPolyRef ref, const float* pos, float* height) co } -dtPolyRef dtNavMesh::findNearestPoly(const float* center, const float* extents, float* nearestPt) +dtPolyRef dtNavMesh::findNearestPoly(const float* center, const float* extents, dtQueryFilter* filter, float* nearestPt) { // Get nearby polygons from proximity grid. dtPolyRef polys[128]; - int polyCount = queryPolygons(center, extents, polys, 128); + int polyCount = queryPolygons(center, extents, filter, polys, 128); // Find nearest polygon amongst the nearby polygons. dtPolyRef nearest = 0; @@ -875,8 +881,8 @@ dtPolyRef dtNavMesh::findNearestPoly(const float* center, const float* extents, return nearest; } -int dtNavMesh::queryTilePolygons(dtMeshTile* tile, - const float* qmin, const float* qmax, +int dtNavMesh::queryTilePolygons(dtMeshTile* tile, const float* qmin, const float* qmax, + dtQueryFilter* filter, dtPolyRef* polys, const int maxPolys) { const dtMeshHeader* header = tile->header; @@ -912,8 +918,11 @@ int dtNavMesh::queryTilePolygons(dtMeshTile* tile, if (isLeafNode && overlap) { - if (n < maxPolys) - polys[n++] = base | (dtPolyRef)node->i; + if (passFilter(filter, header->polys[node->i].flags)) + { + if (n < maxPolys) + polys[n++] = base | (dtPolyRef)node->i; + } } if (overlap || isLeafNode) @@ -948,15 +957,18 @@ int dtNavMesh::queryTilePolygons(dtMeshTile* tile, } if (overlapBoxes(qmin,qmax, bmin,bmax)) { - if (n < maxPolys) - polys[n++] = base | (dtPolyRef)i; + if (passFilter(filter, p->flags)) + { + if (n < maxPolys) + polys[n++] = base | (dtPolyRef)i; + } } } return n; } } -int dtNavMesh::queryPolygons(const float* center, const float* extents, +int dtNavMesh::queryPolygons(const float* center, const float* extents, dtQueryFilter* filter, dtPolyRef* polys, const int maxPolys) { float bmin[3], bmax[3]; @@ -982,7 +994,7 @@ int dtNavMesh::queryPolygons(const float* center, const float* extents, { dtMeshTile* tile = getTileAt(x,y); if (!tile) continue; - n += queryTilePolygons(tile, bmin, bmax, polys+n, maxPolys-n); + n += queryTilePolygons(tile, bmin, bmax, filter, polys+n, maxPolys-n); if (n >= maxPolys) return n; } } @@ -991,8 +1003,9 @@ int dtNavMesh::queryPolygons(const float* center, const float* extents, } int dtNavMesh::findPath(dtPolyRef startRef, dtPolyRef endRef, - const float* startPos, const float* endPos, - dtPolyRef* path, const int maxPathSize) + const float* startPos, const float* endPos, + dtQueryFilter* filter, + dtPolyRef* path, const int maxPathSize) { if (!startRef || !endRef) return 0; @@ -1053,6 +1066,10 @@ int dtNavMesh::findPath(dtPolyRef startRef, dtPolyRef endRef, if (bestNode->pidx && m_nodePool->getNodeAtIdx(bestNode->pidx)->id == neighbour) continue; + // TODO: Avoid digging the polygon (done in getEdgeMidPoint too). + if (!passFilter(filter, getPolyFlags(neighbour))) + continue; + dtNode* parent = bestNode; dtNode newNode; newNode.pidx = m_nodePool->getNodeIdx(parent); @@ -1064,7 +1081,9 @@ int dtNavMesh::findPath(dtPolyRef startRef, dtPolyRef endRef, vcopy(p0, startPos); else getEdgeMidPoint(m_nodePool->getNodeAtIdx(parent->pidx)->id, parent->id, p0); + getEdgeMidPoint(parent->id, newNode.id, p1); + newNode.cost = parent->cost + vdist(p0,p1); // Special case for last node. if (newNode.id == endRef) @@ -1174,8 +1193,8 @@ int dtNavMesh::findStraightPath(const float* startPos, const float* endPos, int leftIndex = 0; int rightIndex = 0; - unsigned char leftPolyFlags = 0; - unsigned char rightPolyFlags = 0; + unsigned short leftPolyFlags = 0; + unsigned short rightPolyFlags = 0; dtPolyRef leftPolyRef = path[0]; dtPolyRef rightPolyRef = path[0]; @@ -1183,7 +1202,7 @@ int dtNavMesh::findStraightPath(const float* startPos, const float* endPos, for (int i = 0; i < pathSize; ++i) { float left[3], right[3]; - unsigned char fromFlags, toFlags; + unsigned short fromFlags, toFlags; if (i+1 < pathSize) { @@ -1382,7 +1401,7 @@ int dtNavMesh::moveAlongPathCorridor(const float* startPos, const float* endPos, if (n+1 < pathSize) { float left[3], right[3]; - unsigned char fromFlags, toFlags; + unsigned short fromFlags, toFlags; if (!getPortalPoints(path[n], path[n+1], left, right, fromFlags, toFlags)) return n; vcopy(resultPos, endPos); @@ -1426,7 +1445,7 @@ int dtNavMesh::moveAlongPathCorridor(const float* startPos, const float* endPos, if (n+1 >= pathSize) return n; float left[3], right[3]; - unsigned char fromFlags, toFlags; + unsigned short fromFlags, toFlags; if (!getPortalPoints(path[n], path[n+1], left, right, fromFlags, toFlags)) return n; // If the clamped point is close to the next portal edge, advance to next poly. @@ -1443,7 +1462,7 @@ int dtNavMesh::moveAlongPathCorridor(const float* startPos, const float* endPos, // Returns portal points between two polygons. bool dtNavMesh::getPortalPoints(dtPolyRef from, dtPolyRef to, float* left, float* right, - unsigned char& fromFlags, unsigned char& toFlags) const + unsigned short& fromFlags, unsigned short& toFlags) const { unsigned int salt, it, ip; dtDecodePolyId(from, salt, it, ip); @@ -1526,7 +1545,7 @@ bool dtNavMesh::getPortalPoints(dtPolyRef from, dtPolyRef to, float* left, float bool dtNavMesh::getEdgeMidPoint(dtPolyRef from, dtPolyRef to, float* mid) const { float left[3], right[3]; - unsigned char fromFlags, toFlags; + unsigned short fromFlags, toFlags; if (!getPortalPoints(from, to, left,right, fromFlags, toFlags)) return false; mid[0] = (left[0]+right[0])*0.5f; mid[1] = (left[1]+right[1])*0.5f; @@ -1534,7 +1553,19 @@ bool dtNavMesh::getEdgeMidPoint(dtPolyRef from, dtPolyRef to, float* mid) const return true; } -int dtNavMesh::raycast(dtPolyRef centerRef, const float* startPos, const float* endPos, +unsigned short dtNavMesh::getPolyFlags(dtPolyRef ref) +{ + unsigned int salt, it, ip; + dtDecodePolyId(ref, salt, it, ip); + if (it >= (unsigned int)m_maxTiles) return 0; + if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return 0; + if (ip >= (unsigned int)m_tiles[it].header->polyCount) return 0; + const dtMeshHeader* header = m_tiles[it].header; + const dtPoly* poly = &header->polys[ip]; + return poly->flags; +} + +int dtNavMesh::raycast(dtPolyRef centerRef, const float* startPos, const float* endPos, dtQueryFilter* filter, float& t, float* hitNormal, dtPolyRef* path, const int pathSize) { t = 0; @@ -1638,7 +1669,7 @@ int dtNavMesh::raycast(dtPolyRef centerRef, const float* startPos, const float* } } - if (!nextRef) + if (!nextRef || !passFilter(filter, getPolyFlags(nextRef))) { // No neighbour, we hit a wall. @@ -1664,7 +1695,7 @@ int dtNavMesh::raycast(dtPolyRef centerRef, const float* startPos, const float* return n; } -int dtNavMesh::findPolysAround(dtPolyRef centerRef, const float* centerPos, float radius, +int dtNavMesh::findPolysAround(dtPolyRef centerRef, const float* centerPos, float radius, dtQueryFilter* filter, dtPolyRef* resultRef, dtPolyRef* resultParent, float* resultCost, const int maxResult) { @@ -1727,6 +1758,9 @@ int dtNavMesh::findPolysAround(dtPolyRef centerRef, const float* centerPos, floa // If the circle is not touching the next polygon, skip it. if (distSqr > radiusSqr) continue; + + if (!passFilter(filter, getPolyFlags(neighbour))) + continue; dtNode* parent = bestNode; dtNode newNode; @@ -1780,8 +1814,8 @@ int dtNavMesh::findPolysAround(dtPolyRef centerRef, const float* centerPos, floa return n; } -float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos, float maxRadius, - float* hitPos, float* hitNormal) +float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos, float maxRadius, dtQueryFilter* filter, + float* hitPos, float* hitNormal) { if (!centerRef) return 0; if (!getPolyByRef(centerRef)) return 0; @@ -1822,7 +1856,7 @@ float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos, for (int i = 0; i < poly->linkCount; ++i) { const dtLink* link = &header->links[poly->linkBase+i]; - if (link->edge == j && link->ref != 0) + if (link->edge == j && link->ref != 0 && passFilter(filter, getPolyFlags(link->ref))) { solid = false; break; @@ -1830,7 +1864,7 @@ float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos, } if (!solid) continue; } - else if (poly->neis[j]) + else if (poly->neis[j] && passFilter(filter, getPolyFlags(poly->neis[j]))) { // Internal edge continue; @@ -1874,6 +1908,9 @@ float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos, if (distSqr > radiusSqr) continue; + if (!passFilter(filter, getPolyFlags(neighbour))) + continue; + dtNode* parent = bestNode; dtNode newNode; newNode.pidx = m_nodePool->getNodeIdx(parent); diff --git a/Detour/Source/DetourNavMeshBuilder.cpp b/Detour/Source/DetourNavMeshBuilder.cpp index 01aaf75..cdeffcf 100644 --- a/Detour/Source/DetourNavMeshBuilder.cpp +++ b/Detour/Source/DetourNavMeshBuilder.cpp @@ -486,6 +486,7 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, { dtPoly* p = &navPolys[i]; p->vertCount = 0; + p->flags = DT_POLY_GROUND; for (int j = 0; j < nvp; ++j) { if (src[j] == 0xffff) break; diff --git a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast index ffbd99bf331ac64dc450c632c7808ae3a5d601a0..bea0fdafdbb034562bce3f28f88199d9d0c60328 100755 GIT binary patch delta 91613 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 diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 0db18dc..43da251 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -17,10 +17,10 @@ ); breakpoints = ( 6BBB88CC10EAA37B008FEA1F /* NavMeshTesterTool.cpp:282 */, - 6BB700A210FA36C3006DA0A6 /* DetourNavMesh.cpp:207 */, - 6BB700DA10FA3D0C006DA0A6 /* DetourNavMesh.cpp:207 */, - 6BCF32FA1104D84C009445BF /* DetourNavMeshBuilder.cpp:572 */, - 6BCF349A1105F843009445BF /* DetourNavMesh.cpp:510 */, + 6BB700A210FA36C3006DA0A6 /* DetourNavMesh.cpp:212 */, + 6BB700DA10FA3D0C006DA0A6 /* DetourNavMesh.cpp:212 */, + 6BCF32FA1104D84C009445BF /* DetourNavMeshBuilder.cpp:573 */, + 6BCF349A1105F843009445BF /* DetourNavMesh.cpp:516 */, ); codeSenseManager = 6B8632AA0F78115100E2684A /* Code sense */; executables = ( @@ -762,6 +762,60 @@ 6BCF34AD1105F8DB009445BF /* PBXTextBookmark */ = 6BCF34AD1105F8DB009445BF /* PBXTextBookmark */; 6BCF34AE1105F8DB009445BF /* PBXTextBookmark */ = 6BCF34AE1105F8DB009445BF /* PBXTextBookmark */; 6BCF34AF1105F8DB009445BF /* PBXTextBookmark */ = 6BCF34AF1105F8DB009445BF /* PBXTextBookmark */; + 6BCF34B01105FA03009445BF /* PBXTextBookmark */ = 6BCF34B01105FA03009445BF /* PBXTextBookmark */; + 6BCF34B11105FA03009445BF /* PBXTextBookmark */ = 6BCF34B11105FA03009445BF /* PBXTextBookmark */; + 6BCF34B21105FA03009445BF /* PBXTextBookmark */ = 6BCF34B21105FA03009445BF /* PBXTextBookmark */; + 6BCF34B31105FA03009445BF /* PBXTextBookmark */ = 6BCF34B31105FA03009445BF /* PBXTextBookmark */; + 6BCF34B41105FA03009445BF /* PBXTextBookmark */ = 6BCF34B41105FA03009445BF /* PBXTextBookmark */; + 6BCF34B51105FA03009445BF /* PBXTextBookmark */ = 6BCF34B51105FA03009445BF /* PBXTextBookmark */; + 6BCF34B61105FA03009445BF /* PBXTextBookmark */ = 6BCF34B61105FA03009445BF /* PBXTextBookmark */; + 6BCF34B71105FA9F009445BF /* PBXTextBookmark */ = 6BCF34B71105FA9F009445BF /* PBXTextBookmark */; + 6BCF34B81105FB17009445BF /* PBXTextBookmark */ = 6BCF34B81105FB17009445BF /* PBXTextBookmark */; + 6BCF34BC1105FD0F009445BF /* PBXTextBookmark */ = 6BCF34BC1105FD0F009445BF /* PBXTextBookmark */; + 6BCF34BD1105FD0F009445BF /* PBXTextBookmark */ = 6BCF34BD1105FD0F009445BF /* PBXTextBookmark */; + 6BCF34BE1105FD0F009445BF /* PBXTextBookmark */ = 6BCF34BE1105FD0F009445BF /* PBXTextBookmark */; + 6BCF34BF1105FD0F009445BF /* PBXTextBookmark */ = 6BCF34BF1105FD0F009445BF /* PBXTextBookmark */; + 6BCF34C01105FD0F009445BF /* PBXTextBookmark */ = 6BCF34C01105FD0F009445BF /* PBXTextBookmark */; + 6BCF34C11105FD0F009445BF /* PBXTextBookmark */ = 6BCF34C11105FD0F009445BF /* PBXTextBookmark */; + 6BCF34C21105FD0F009445BF /* PBXTextBookmark */ = 6BCF34C21105FD0F009445BF /* PBXTextBookmark */; + 6BCF34C31105FD0F009445BF /* PBXTextBookmark */ = 6BCF34C31105FD0F009445BF /* PBXTextBookmark */; + 6BCF34C41105FD0F009445BF /* PBXTextBookmark */ = 6BCF34C41105FD0F009445BF /* PBXTextBookmark */; + 6BCF34C51105FD0F009445BF /* PBXTextBookmark */ = 6BCF34C51105FD0F009445BF /* PBXTextBookmark */; + 6BCF34C61105FD0F009445BF /* PBXTextBookmark */ = 6BCF34C61105FD0F009445BF /* PBXTextBookmark */; + 6BCF34C71105FD0F009445BF /* PBXTextBookmark */ = 6BCF34C71105FD0F009445BF /* PBXTextBookmark */; + 6BCF34C81105FD0F009445BF /* PBXTextBookmark */ = 6BCF34C81105FD0F009445BF /* PBXTextBookmark */; + 6BCF34C91105FD0F009445BF /* PBXTextBookmark */ = 6BCF34C91105FD0F009445BF /* PBXTextBookmark */; + 6BCF34CA1105FD0F009445BF /* PBXTextBookmark */ = 6BCF34CA1105FD0F009445BF /* PBXTextBookmark */; + 6BCF34CB1105FD0F009445BF /* PBXTextBookmark */ = 6BCF34CB1105FD0F009445BF /* PBXTextBookmark */; + 6BCF34CC1105FD0F009445BF /* PBXTextBookmark */ = 6BCF34CC1105FD0F009445BF /* PBXTextBookmark */; + 6BCF34CD1105FD0F009445BF /* PBXTextBookmark */ = 6BCF34CD1105FD0F009445BF /* PBXTextBookmark */; + 6BCF34CE1105FF32009445BF /* PBXTextBookmark */ = 6BCF34CE1105FF32009445BF /* PBXTextBookmark */; + 6BCF34CF1105FF32009445BF /* PBXTextBookmark */ = 6BCF34CF1105FF32009445BF /* PBXTextBookmark */; + 6BCF34D01105FF32009445BF /* PBXTextBookmark */ = 6BCF34D01105FF32009445BF /* PBXTextBookmark */; + 6BCF34D11105FF32009445BF /* PBXTextBookmark */ = 6BCF34D11105FF32009445BF /* PBXTextBookmark */; + 6BCF34D21105FF32009445BF /* PBXTextBookmark */ = 6BCF34D21105FF32009445BF /* PBXTextBookmark */; + 6BCF34D31105FF32009445BF /* PBXTextBookmark */ = 6BCF34D31105FF32009445BF /* PBXTextBookmark */; + 6BCF34D41105FF32009445BF /* PBXTextBookmark */ = 6BCF34D41105FF32009445BF /* PBXTextBookmark */; + 6BCF34E1110602BB009445BF /* PBXTextBookmark */ = 6BCF34E1110602BB009445BF /* PBXTextBookmark */; + 6BCF34E2110602BB009445BF /* PBXTextBookmark */ = 6BCF34E2110602BB009445BF /* PBXTextBookmark */; + 6BCF34E3110602BB009445BF /* PBXTextBookmark */ = 6BCF34E3110602BB009445BF /* PBXTextBookmark */; + 6BCF34E4110602BB009445BF /* PBXTextBookmark */ = 6BCF34E4110602BB009445BF /* PBXTextBookmark */; + 6BCF34E5110602BB009445BF /* PBXTextBookmark */ = 6BCF34E5110602BB009445BF /* PBXTextBookmark */; + 6BCF34E6110602BB009445BF /* PBXTextBookmark */ = 6BCF34E6110602BB009445BF /* PBXTextBookmark */; + 6BCF34E7110602BB009445BF /* PBXTextBookmark */ = 6BCF34E7110602BB009445BF /* PBXTextBookmark */; + 6BCF34E8110602BB009445BF /* PBXTextBookmark */ = 6BCF34E8110602BB009445BF /* PBXTextBookmark */; + 6BCF34E9110602BB009445BF /* PBXTextBookmark */ = 6BCF34E9110602BB009445BF /* PBXTextBookmark */; + 6BCF34EA110602BB009445BF /* PBXTextBookmark */ = 6BCF34EA110602BB009445BF /* PBXTextBookmark */; + 6BCF34EB110602BB009445BF /* PBXTextBookmark */ = 6BCF34EB110602BB009445BF /* PBXTextBookmark */; + 6BCF34EC110602BB009445BF /* PBXTextBookmark */ = 6BCF34EC110602BB009445BF /* PBXTextBookmark */; + 6BCF34ED110602BB009445BF /* PBXTextBookmark */ = 6BCF34ED110602BB009445BF /* PBXTextBookmark */; + 6BCF34EE110602BB009445BF /* PBXTextBookmark */ = 6BCF34EE110602BB009445BF /* PBXTextBookmark */; + 6BCF34EF110602BB009445BF /* PBXTextBookmark */ = 6BCF34EF110602BB009445BF /* PBXTextBookmark */; + 6BCF34F0110602BB009445BF /* PBXTextBookmark */ = 6BCF34F0110602BB009445BF /* PBXTextBookmark */; + 6BCF34F111060322009445BF /* PBXTextBookmark */ = 6BCF34F111060322009445BF /* PBXTextBookmark */; + 6BCF34F211060322009445BF /* PBXTextBookmark */ = 6BCF34F211060322009445BF /* PBXTextBookmark */; + 6BCF34F311060322009445BF /* PBXTextBookmark */ = 6BCF34F311060322009445BF /* PBXTextBookmark */; + 6BCF34F411060322009445BF /* PBXTextBookmark */ = 6BCF34F411060322009445BF /* PBXTextBookmark */; 6BE7320210FE6CEF00C1B074 = 6BE7320210FE6CEF00C1B074 /* PBXTextBookmark */; 6BE7320610FE6CEF00C1B074 = 6BE7320610FE6CEF00C1B074 /* PBXTextBookmark */; 6BE7320E10FE6EBE00C1B074 = 6BE7320E10FE6EBE00C1B074 /* PBXTextBookmark */; @@ -1008,7 +1062,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 367"; rLen = 0; - rLoc = 5667; + rLoc = 5824; rType = 0; vrLen = 881; vrLoc = 9733; @@ -1018,7 +1072,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 373"; rLen = 0; - rLoc = 5667; + rLoc = 5824; rType = 0; vrLen = 871; vrLoc = 9574; @@ -1028,7 +1082,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 382"; rLen = 0; - rLoc = 5667; + rLoc = 5824; rType = 0; vrLen = 799; vrLoc = 9600; @@ -1038,7 +1092,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 376"; rLen = 0; - rLoc = 5667; + rLoc = 5824; rType = 0; vrLen = 833; vrLoc = 9698; @@ -1048,7 +1102,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 510"; rLen = 0; - rLoc = 14343; + rLoc = 14372; rType = 0; vrLen = 868; vrLoc = 13419; @@ -1068,7 +1122,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 376"; rLen = 0; - rLoc = 5667; + rLoc = 5824; rType = 0; vrLen = 833; vrLoc = 9698; @@ -1118,7 +1172,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 370"; rLen = 0; - rLoc = 5667; + rLoc = 5824; rType = 0; vrLen = 802; vrLoc = 9655; @@ -1128,7 +1182,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 370"; rLen = 0; - rLoc = 5667; + rLoc = 5824; rType = 0; vrLen = 815; vrLoc = 9655; @@ -1138,7 +1192,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 373"; rLen = 0; - rLoc = 5667; + rLoc = 5824; rType = 0; vrLen = 818; vrLoc = 9701; @@ -1208,7 +1262,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 185"; rLen = 0; - rLoc = 4946; + rLoc = 5103; rType = 0; vrLen = 1069; vrLoc = 4279; @@ -1218,7 +1272,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 373"; rLen = 0; - rLoc = 5667; + rLoc = 5824; rType = 0; vrLen = 818; vrLoc = 9701; @@ -1248,7 +1302,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 386"; rLen = 0; - rLoc = 17124; + rLoc = 17754; rType = 0; vrLen = 1421; vrLoc = 5152; @@ -1288,7 +1342,7 @@ fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; name = "NavMeshTesterTool.h: 45"; rLen = 0; - rLoc = 1401; + rLoc = 1427; rType = 0; vrLen = 709; vrLoc = 1023; @@ -1318,7 +1372,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 279"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 960; vrLoc = 6951; @@ -1338,7 +1392,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 75"; rLen = 0; - rLoc = 2262; + rLoc = 2361; rType = 0; vrLen = 592; vrLoc = 1824; @@ -1388,7 +1442,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 579"; rLen = 0; - rLoc = 16552; + rLoc = 16581; rType = 0; vrLen = 713; vrLoc = 15417; @@ -1428,7 +1482,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 69"; rLen = 19; - rLoc = 2673; + rLoc = 3375; rType = 0; vrLen = 1188; vrLoc = 2200; @@ -1468,7 +1522,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 291"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 922; vrLoc = 7386; @@ -1488,7 +1542,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 569"; rLen = 0; - rLoc = 16105; + rLoc = 16134; rType = 0; vrLen = 857; vrLoc = 15275; @@ -1498,7 +1552,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 291"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 922; vrLoc = 7386; @@ -1518,7 +1572,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 569"; rLen = 0; - rLoc = 16105; + rLoc = 16134; rType = 0; vrLen = 857; vrLoc = 15275; @@ -1631,23 +1685,23 @@ }; 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 30960}}"; - sepNavSelRange = "{13946, 0}"; - sepNavVisRange = "{13376, 1344}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 32064}}"; + sepNavSelRange = "{23344, 0}"; + sepNavVisRange = "{19651, 972}"; }; }; 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 8896}}"; - sepNavSelRange = "{11732, 0}"; - sepNavVisRange = "{12109, 1138}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 8928}}"; + sepNavSelRange = "{13909, 14}"; + sepNavVisRange = "{13741, 887}"; }; }; 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 6592}}"; - sepNavSelRange = "{3715, 0}"; - sepNavVisRange = "{3161, 1442}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 6800}}"; + sepNavSelRange = "{1750, 0}"; + sepNavVisRange = "{1479, 1210}"; }; }; 6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */ = { @@ -1662,7 +1716,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = detail; rLen = 0; - rLoc = 14806; + rLoc = 15375; rType = 0; vrLen = 1182; vrLoc = 9676; @@ -1830,12 +1884,12 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 569"; rLen = 0; - rLoc = 16438; + rLoc = 16467; rType = 0; vrLen = 893; vrLoc = 14757; }; - 6BB700A210FA36C3006DA0A6 /* DetourNavMesh.cpp:207 */ = { + 6BB700A210FA36C3006DA0A6 /* DetourNavMesh.cpp:212 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -1847,7 +1901,7 @@ functionName = "dtNavMesh::buildIntLinks(dtMeshTile* tile)"; hitCount = 0; ignoreCount = 0; - lineNumber = 207; + lineNumber = 212; location = Recast; modificationTime = 285603908.023348; state = 1; @@ -1872,7 +1926,7 @@ vrLen = 1034; vrLoc = 3841; }; - 6BB700DA10FA3D0C006DA0A6 /* DetourNavMesh.cpp:207 */ = { + 6BB700DA10FA3D0C006DA0A6 /* DetourNavMesh.cpp:212 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -1884,7 +1938,7 @@ functionName = "dtNavMesh::addTileAt(int x, int y, unsigned char* data, int dataSize, bool ownsData)"; hitCount = 0; ignoreCount = 0; - lineNumber = 207; + lineNumber = 212; location = Recast; modificationTime = 285603908.023677; state = 1; @@ -1905,23 +1959,23 @@ }; 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {891, 1344}}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 1328}}"; sepNavSelRange = "{1158, 0}"; - sepNavVisRange = "{1023, 709}"; + sepNavVisRange = "{1023, 428}"; }; }; 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 9564}}"; - sepNavSelRange = "{8032, 0}"; - sepNavVisRange = "{7651, 752}"; + sepNavIntBoundsRect = "{{0, 0}, {891, 10672}}"; + sepNavSelRange = "{3865, 0}"; + sepNavVisRange = "{3683, 647}"; }; }; 6BB7FD6310F3564B006DA0A6 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; name = "NavMeshTesterTool.h: 1"; - rLen = 1464; + rLen = 1490; rLoc = 919; rType = 0; vrLen = 570; @@ -2278,8 +2332,8 @@ 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {891, 7632}}"; - sepNavSelRange = "{6122, 0}"; - sepNavVisRange = "{5621, 952}"; + sepNavSelRange = "{6203, 0}"; + sepNavVisRange = "{5621, 1072}"; }; }; 6BB93C7C10CFE1D500F74F2B /* RecastDebugDraw.cpp */ = { @@ -2444,7 +2498,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 200"; rLen = 0; - rLoc = 5467; + rLoc = 5624; rType = 0; vrLen = 1091; vrLoc = 4993; @@ -2464,7 +2518,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 367"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 573; vrLoc = 9620; @@ -2494,7 +2548,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 583"; rLen = 0; - rLoc = 16758; + rLoc = 16787; rType = 0; vrLen = 896; vrLoc = 16422; @@ -2504,7 +2558,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 38"; rLen = 0; - rLoc = 1418; + rLoc = 2101; rType = 0; vrLen = 1151; vrLoc = 1134; @@ -2534,7 +2588,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 100"; rLen = 0; - rLoc = 4065; + rLoc = 4767; rType = 0; vrLen = 1645; vrLoc = 3325; @@ -2544,7 +2598,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 261"; rLen = 0; - rLoc = 7006; + rLoc = 7163; rType = 0; vrLen = 633; vrLoc = 6432; @@ -2554,7 +2608,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 119"; rLen = 0; - rLoc = 5067; + rLoc = 5729; rType = 0; vrLen = 1496; vrLoc = 3778; @@ -2564,7 +2618,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 215"; rLen = 0; - rLoc = 5858; + rLoc = 6015; rType = 0; vrLen = 815; vrLoc = 5350; @@ -2574,7 +2628,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 119"; rLen = 0; - rLoc = 5067; + rLoc = 5729; rType = 0; vrLen = 1409; vrLoc = 3865; @@ -2584,7 +2638,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 219"; rLen = 0; - rLoc = 6064; + rLoc = 6221; rType = 0; vrLen = 771; vrLoc = 5584; @@ -2594,7 +2648,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 119"; rLen = 0; - rLoc = 5067; + rLoc = 5729; rType = 0; vrLen = 1409; vrLoc = 3865; @@ -2604,7 +2658,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 226"; rLen = 0; - rLoc = 6273; + rLoc = 6430; rType = 0; vrLen = 817; vrLoc = 5584; @@ -2614,7 +2668,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 42"; rLen = 0; - rLoc = 1777; + rLoc = 2479; rType = 0; vrLen = 1116; vrLoc = 1004; @@ -2624,7 +2678,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 364"; rLen = 0; - rLoc = 9847; + rLoc = 10004; rType = 0; vrLen = 762; vrLoc = 9653; @@ -2634,7 +2688,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 105"; rLen = 0; - rLoc = 4514; + rLoc = 5216; rType = 0; vrLen = 1891; vrLoc = 3052; @@ -2644,7 +2698,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 526"; rLen = 0; - rLoc = 10769; + rLoc = 10973; rType = 0; vrLen = 1013; vrLoc = 13761; @@ -2654,7 +2708,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 104"; rLen = 0; - rLoc = 4407; + rLoc = 5109; rType = 0; vrLen = 1800; vrLoc = 3143; @@ -2664,7 +2718,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 510"; rLen = 0; - rLoc = 10769; + rLoc = 10973; rType = 0; vrLen = 1332; vrLoc = 13267; @@ -2674,7 +2728,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 104"; rLen = 0; - rLoc = 4405; + rLoc = 5107; rType = 0; vrLen = 1800; vrLoc = 3143; @@ -2684,7 +2738,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 1889"; rLen = 0; - rLoc = 50852; + rLoc = 52224; rType = 0; vrLen = 1130; vrLoc = 49878; @@ -2694,7 +2748,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 92"; rLen = 0; - rLoc = 3651; + rLoc = 4353; rType = 0; vrLen = 1167; vrLoc = 2472; @@ -2734,7 +2788,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 200"; rLen = 0; - rLoc = 5467; + rLoc = 5624; rType = 0; vrLen = 1091; vrLoc = 4993; @@ -2744,7 +2798,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 541"; rLen = 0; - rLoc = 15178; + rLoc = 15207; rType = 0; vrLen = 1003; vrLoc = 14208; @@ -2764,7 +2818,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 38"; rLen = 0; - rLoc = 1418; + rLoc = 2101; rType = 0; vrLen = 1151; vrLoc = 1134; @@ -2794,7 +2848,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 367"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 573; vrLoc = 9620; @@ -2844,7 +2898,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 583"; rLen = 0; - rLoc = 16758; + rLoc = 16787; rType = 0; vrLen = 907; vrLoc = 16408; @@ -2864,7 +2918,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 583"; rLen = 0; - rLoc = 16758; + rLoc = 16787; rType = 0; vrLen = 896; vrLoc = 16422; @@ -2874,7 +2928,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 74"; rLen = 0; - rLoc = 2790; + rLoc = 3492; rType = 0; vrLen = 1233; vrLoc = 2441; @@ -2884,7 +2938,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 86"; rLen = 0; - rLoc = 3160; + rLoc = 3862; rType = 0; vrLen = 1233; vrLoc = 2441; @@ -2904,7 +2958,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 583"; rLen = 0; - rLoc = 16758; + rLoc = 16787; rType = 0; vrLen = 1036; vrLoc = 16326; @@ -2914,7 +2968,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 86"; rLen = 0; - rLoc = 3160; + rLoc = 3862; rType = 0; vrLen = 1233; vrLoc = 2441; @@ -2988,7 +3042,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 555"; rLen = 0; - rLoc = 16805; + rLoc = 17661; rType = 0; vrLen = 908; vrLoc = 15392; @@ -3038,7 +3092,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 326"; rLen = 0; - rLoc = 14463; + rLoc = 15032; rType = 0; vrLen = 1214; vrLoc = 13618; @@ -3048,7 +3102,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 200"; rLen = 0; - rLoc = 5467; + rLoc = 5624; rType = 0; vrLen = 976; vrLoc = 5046; @@ -3158,7 +3212,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 555"; rLen = 0; - rLoc = 16805; + rLoc = 17661; rType = 0; vrLen = 908; vrLoc = 15392; @@ -3208,7 +3262,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 326"; rLen = 0; - rLoc = 14463; + rLoc = 15032; rType = 0; vrLen = 1214; vrLoc = 13618; @@ -3218,7 +3272,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 358"; rLen = 0; - rLoc = 9708; + rLoc = 9865; rType = 0; vrLen = 829; vrLoc = 9550; @@ -3228,7 +3282,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 358"; rLen = 0; - rLoc = 9708; + rLoc = 9865; rType = 0; vrLen = 829; vrLoc = 9550; @@ -3336,7 +3390,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 358"; rLen = 0; - rLoc = 9708; + rLoc = 9865; rType = 0; vrLen = 829; vrLoc = 9550; @@ -3546,7 +3600,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 208"; rLen = 0; - rLoc = 8522; + rLoc = 8928; rType = 0; vrLen = 1536; vrLoc = 7836; @@ -3556,7 +3610,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 378"; rLen = 0; - rLoc = 10348; + rLoc = 10552; rType = 0; vrLen = 672; vrLoc = 9887; @@ -3576,7 +3630,7 @@ comments = "error: no matching function for call to 'dtNavMesh::findNearestPoly(float [3], float [3])'"; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; rLen = 0; - rLoc = 182; + rLoc = 213; rType = 1; }; 6BCF32851104D114009445BF /* PBXTextBookmark */ = { @@ -3594,7 +3648,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 95"; rLen = 0; - rLoc = 3651; + rLoc = 4353; rType = 0; vrLen = 1816; vrLoc = 3246; @@ -3604,7 +3658,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 849"; rLen = 0; - rLoc = 10769; + rLoc = 10973; rType = 0; vrLen = 708; vrLoc = 22303; @@ -3614,7 +3668,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 208"; rLen = 0; - rLoc = 8522; + rLoc = 8928; rType = 0; vrLen = 1536; vrLoc = 7836; @@ -3624,7 +3678,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 378"; rLen = 0; - rLoc = 10348; + rLoc = 10552; rType = 0; vrLen = 672; vrLoc = 9887; @@ -3644,7 +3698,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 173"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 398; vrLoc = 4294; @@ -3654,7 +3708,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 172"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 686; vrLoc = 4104; @@ -3674,7 +3728,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 172"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 686; vrLoc = 4104; @@ -3704,7 +3758,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 378"; rLen = 0; - rLoc = 10348; + rLoc = 10552; rType = 0; vrLen = 785; vrLoc = 9848; @@ -3724,7 +3778,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 377"; rLen = 0; - rLoc = 10347; + rLoc = 10551; rType = 0; vrLen = 785; vrLoc = 9848; @@ -3734,7 +3788,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 366"; rLen = 0; - rLoc = 9925; + rLoc = 10113; rType = 0; vrLen = 841; vrLoc = 9709; @@ -3744,7 +3798,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 200"; rLen = 0; - rLoc = 8186; + rLoc = 8592; rType = 0; vrLen = 1410; vrLoc = 7842; @@ -3764,7 +3818,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 490"; rLen = 0; - rLoc = 13927; + rLoc = 13956; rType = 0; vrLen = 747; vrLoc = 13784; @@ -3774,7 +3828,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 374"; rLen = 0; - rLoc = 10177; + rLoc = 10381; rType = 0; vrLen = 850; vrLoc = 9709; @@ -3784,7 +3838,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 490"; rLen = 0; - rLoc = 13927; + rLoc = 13956; rType = 0; vrLen = 747; vrLoc = 13784; @@ -3794,7 +3848,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 366"; rLen = 0; - rLoc = 9925; + rLoc = 10113; rType = 0; vrLen = 841; vrLoc = 9709; @@ -3804,7 +3858,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 200"; rLen = 0; - rLoc = 8186; + rLoc = 8592; rType = 0; vrLen = 1410; vrLoc = 7842; @@ -3824,7 +3878,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 502"; rLen = 0; - rLoc = 14203; + rLoc = 14232; rType = 0; vrLen = 1032; vrLoc = 15797; @@ -3844,7 +3898,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 368"; rLen = 65; - rLoc = 9931; + rLoc = 10119; rType = 0; vrLen = 846; vrLoc = 9708; @@ -3884,7 +3938,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 368"; rLen = 65; - rLoc = 9931; + rLoc = 10119; rType = 0; vrLen = 846; vrLoc = 9708; @@ -4356,7 +4410,7 @@ vrLen = 1122; vrLoc = 17026; }; - 6BCF32FA1104D84C009445BF /* DetourNavMeshBuilder.cpp:572 */ = { + 6BCF32FA1104D84C009445BF /* DetourNavMeshBuilder.cpp:573 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -4368,7 +4422,7 @@ functionName = "dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, int* outDataSize)"; hitCount = 0; ignoreCount = 0; - lineNumber = 572; + lineNumber = 573; location = Recast; modificationTime = 285603908.024129; state = 1; @@ -4388,7 +4442,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 578"; rLen = 0; - rLoc = 16783; + rLoc = 16812; rType = 0; vrLen = 952; vrLoc = 15939; @@ -4398,7 +4452,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 368"; rLen = 0; - rLoc = 9931; + rLoc = 10119; rType = 0; vrLen = 888; vrLoc = 4088; @@ -4428,7 +4482,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 572"; rLen = 0; - rLoc = 16679; + rLoc = 16708; rType = 0; vrLen = 948; vrLoc = 15943; @@ -4438,7 +4492,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 371"; rLen = 0; - rLoc = 10063; + rLoc = 10251; rType = 0; vrLen = 837; vrLoc = 9708; @@ -4448,7 +4502,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 578"; rLen = 0; - rLoc = 16783; + rLoc = 16812; rType = 0; vrLen = 952; vrLoc = 15939; @@ -4458,7 +4512,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 368"; rLen = 0; - rLoc = 9931; + rLoc = 10119; rType = 0; vrLen = 888; vrLoc = 4088; @@ -4488,7 +4542,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 368"; rLen = 0; - rLoc = 9931; + rLoc = 10119; rType = 0; vrLen = 869; vrLoc = 4107; @@ -4508,7 +4562,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 377"; rLen = 0; - rLoc = 10347; + rLoc = 10551; rType = 0; vrLen = 808; vrLoc = 9750; @@ -4518,7 +4572,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 373"; rLen = 0; - rLoc = 10122; + rLoc = 10311; rType = 0; vrLen = 808; vrLoc = 9750; @@ -4528,7 +4582,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 373"; rLen = 0; - rLoc = 10122; + rLoc = 10311; rType = 0; vrLen = 808; vrLoc = 9750; @@ -4538,7 +4592,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 578"; rLen = 0; - rLoc = 16783; + rLoc = 16812; rType = 0; vrLen = 952; vrLoc = 15939; @@ -4548,7 +4602,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 373"; rLen = 0; - rLoc = 10122; + rLoc = 10311; rType = 0; vrLen = 808; vrLoc = 9750; @@ -4678,7 +4732,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 373"; rLen = 0; - rLoc = 10122; + rLoc = 10311; rType = 0; vrLen = 804; vrLoc = 9750; @@ -4698,7 +4752,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 377"; rLen = 0; - rLoc = 10347; + rLoc = 10551; rType = 0; vrLen = 854; vrLoc = 9750; @@ -4708,7 +4762,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 377"; rLen = 0; - rLoc = 10347; + rLoc = 10551; rType = 0; vrLen = 882; vrLoc = 9750; @@ -4728,7 +4782,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 377"; rLen = 0; - rLoc = 10347; + rLoc = 10551; rType = 0; vrLen = 882; vrLoc = 9750; @@ -5086,7 +5140,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 83"; rLen = 62; - rLoc = 2588; + rLoc = 2687; rType = 0; vrLen = 670; vrLoc = 2182; @@ -5244,7 +5298,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 513"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 900; vrLoc = 14112; @@ -5799,7 +5853,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 83"; rLen = 62; - rLoc = 2588; + rLoc = 2687; rType = 0; vrLen = 627; vrLoc = 2182; @@ -5839,7 +5893,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 83"; rLen = 62; - rLoc = 2588; + rLoc = 2687; rType = 0; vrLen = 627; vrLoc = 2182; @@ -5899,7 +5953,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 83"; rLen = 62; - rLoc = 2588; + rLoc = 2687; rType = 0; vrLen = 627; vrLoc = 2182; @@ -5919,7 +5973,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 523"; rLen = 0; - rLoc = 15787; + rLoc = 16643; rType = 0; vrLen = 783; vrLoc = 14412; @@ -5929,7 +5983,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 513"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 783; vrLoc = 14412; @@ -5939,7 +5993,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 513"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 843; vrLoc = 14331; @@ -5949,7 +6003,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 514"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 843; vrLoc = 14331; @@ -5959,7 +6013,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 514"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 841; vrLoc = 14331; @@ -5969,7 +6023,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 525"; rLen = 0; - rLoc = 15786; + rLoc = 16642; rType = 0; vrLen = 808; vrLoc = 14327; @@ -5979,7 +6033,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 526"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 855; vrLoc = 14327; @@ -5989,7 +6043,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 759"; rLen = 0; - rLoc = 19833; + rLoc = 20037; rType = 0; vrLen = 885; vrLoc = 19619; @@ -5999,7 +6053,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 321"; rLen = 0; - rLoc = 14239; + rLoc = 14808; rType = 0; vrLen = 998; vrLoc = 13802; @@ -6089,7 +6143,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 323"; rLen = 33; - rLoc = 14282; + rLoc = 14851; rType = 0; vrLen = 1225; vrLoc = 13685; @@ -6099,7 +6153,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 759"; rLen = 0; - rLoc = 19833; + rLoc = 20037; rType = 0; vrLen = 885; vrLoc = 19619; @@ -6109,7 +6163,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 321"; rLen = 0; - rLoc = 14239; + rLoc = 14808; rType = 0; vrLen = 998; vrLoc = 13802; @@ -6149,7 +6203,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 759"; rLen = 0; - rLoc = 19833; + rLoc = 20037; rType = 0; vrLen = 885; vrLoc = 19619; @@ -6169,7 +6223,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 387"; rLen = 0; - rLoc = 10577; + rLoc = 10781; rType = 0; vrLen = 761; vrLoc = 9890; @@ -6179,7 +6233,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 448"; rLen = 0; - rLoc = 12137; + rLoc = 12341; rType = 0; vrLen = 735; vrLoc = 11704; @@ -6199,7 +6253,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 97"; rLen = 13; - rLoc = 3704; + rLoc = 4406; rType = 0; vrLen = 1855; vrLoc = 2916; @@ -6219,7 +6273,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 448"; rLen = 0; - rLoc = 12137; + rLoc = 12341; rType = 0; vrLen = 735; vrLoc = 11704; @@ -6239,7 +6293,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 97"; rLen = 13; - rLoc = 3704; + rLoc = 4406; rType = 0; vrLen = 1855; vrLoc = 2916; @@ -6339,7 +6393,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 397"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 747; vrLoc = 10424; @@ -6446,7 +6500,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 397"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 747; vrLoc = 10424; @@ -6495,8 +6549,8 @@ isa = PBXTextBookmark; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 133"; - rLen = 1; - rLoc = 3420; + rLen = 0; + rLoc = 4194; rType = 0; vrLen = 469; vrLoc = 3131; @@ -6663,8 +6717,8 @@ isa = PBXTextBookmark; fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 133"; - rLen = 1; - rLoc = 3420; + rLen = 0; + rLoc = 4194; rType = 0; vrLen = 469; vrLoc = 3131; @@ -7189,7 +7243,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 251"; rLen = 0; - rLoc = 6513; + rLoc = 7336; rType = 0; vrLen = 876; vrLoc = 6395; @@ -7199,7 +7253,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 441"; rLen = 0; - rLoc = 11950; + rLoc = 12154; rType = 0; vrLen = 604; vrLoc = 11805; @@ -7209,7 +7263,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 97"; rLen = 13; - rLoc = 3704; + rLoc = 4406; rType = 0; vrLen = 1442; vrLoc = 3161; @@ -7229,7 +7283,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 251"; rLen = 0; - rLoc = 6513; + rLoc = 7336; rType = 0; vrLen = 876; vrLoc = 6395; @@ -7239,7 +7293,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 441"; rLen = 0; - rLoc = 11950; + rLoc = 12154; rType = 0; vrLen = 604; vrLoc = 11805; @@ -7249,7 +7303,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 97"; rLen = 0; - rLoc = 3715; + rLoc = 4417; rType = 0; vrLen = 1442; vrLoc = 3161; @@ -7259,7 +7313,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 97"; rLen = 0; - rLoc = 3715; + rLoc = 4417; rType = 0; vrLen = 1442; vrLoc = 3161; @@ -7269,7 +7323,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 301"; rLen = 0; - rLoc = 8032; + rLoc = 8855; rType = 0; vrLen = 736; vrLoc = 7651; @@ -7287,7 +7341,7 @@ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; name = "DetourNavMesh.h: 97"; rLen = 0; - rLoc = 3715; + rLoc = 4417; rType = 0; vrLen = 1442; vrLoc = 3161; @@ -7297,7 +7351,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 301"; rLen = 0; - rLoc = 8032; + rLoc = 8855; rType = 0; vrLen = 736; vrLoc = 7651; @@ -7427,7 +7481,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 520"; rLen = 0; - rLoc = 14426; + rLoc = 14630; rType = 0; vrLen = 1367; vrLoc = 13293; @@ -7477,7 +7531,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 520"; rLen = 0; - rLoc = 14426; + rLoc = 14630; rType = 0; vrLen = 1367; vrLoc = 13293; @@ -7487,12 +7541,12 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 533"; rLen = 0; - rLoc = 15196; + rLoc = 15225; rType = 0; vrLen = 960; vrLoc = 15146; }; - 6BCF349A1105F843009445BF /* DetourNavMesh.cpp:510 */ = { + 6BCF349A1105F843009445BF /* DetourNavMesh.cpp:516 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -7504,7 +7558,7 @@ functionName = "dtNavMesh::addTileAt(int x, int y, unsigned char* data, int dataSize, bool ownsData)"; hitCount = 0; ignoreCount = 0; - lineNumber = 510; + lineNumber = 516; location = Recast; modificationTime = 285603908.439503; state = 1; @@ -7514,7 +7568,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 542"; rLen = 0; - rLoc = 15597; + rLoc = 15626; rType = 0; vrLen = 960; vrLoc = 15146; @@ -7524,7 +7578,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 520"; rLen = 0; - rLoc = 14426; + rLoc = 14630; rType = 0; vrLen = 1311; vrLoc = 13349; @@ -7534,7 +7588,7 @@ fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; name = "DetourNavMeshBuilder.cpp: 542"; rLen = 0; - rLoc = 15597; + rLoc = 15626; rType = 0; vrLen = 960; vrLoc = 15146; @@ -7544,7 +7598,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 513"; rLen = 0; - rLoc = 14078; + rLoc = 14282; rType = 0; vrLen = 1121; vrLoc = 13631; @@ -7574,7 +7628,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 513"; rLen = 0; - rLoc = 14078; + rLoc = 14282; rType = 0; vrLen = 1238; vrLoc = 13561; @@ -7584,7 +7638,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 513"; rLen = 0; - rLoc = 14078; + rLoc = 14282; rType = 0; vrLen = 1121; vrLoc = 13631; @@ -7614,7 +7668,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 510"; rLen = 0; - rLoc = 13946; + rLoc = 14150; rType = 0; vrLen = 1307; vrLoc = 13376; @@ -7624,7 +7678,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 510"; rLen = 0; - rLoc = 13946; + rLoc = 14150; rType = 0; vrLen = 1344; vrLoc = 13376; @@ -7644,7 +7698,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 510"; rLen = 0; - rLoc = 13946; + rLoc = 14150; rType = 0; vrLen = 1344; vrLoc = 13376; @@ -7659,6 +7713,546 @@ vrLen = 952; vrLoc = 5621; }; + 6BCF34B01105FA03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 209"; + rLen = 0; + rLoc = 6203; + rType = 0; + vrLen = 1072; + vrLoc = 5621; + }; + 6BCF34B11105FA03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 489"; + rLen = 14; + rLoc = 13909; + rType = 0; + vrLen = 887; + vrLoc = 13741; + }; + 6BCF34B21105FA03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 31"; + rLen = 0; + rLoc = 1221; + rType = 0; + vrLen = 1204; + vrLoc = 1004; + }; + 6BCF34B31105FA03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB93C7B10CFE1D500F74F2B /* DetourDebugDraw.cpp */; + name = "DetourDebugDraw.cpp: 209"; + rLen = 0; + rLoc = 6203; + rType = 0; + vrLen = 1072; + vrLoc = 5621; + }; + 6BCF34B41105FA03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 31"; + rLen = 0; + rLoc = 1221; + rType = 0; + vrLen = 1204; + vrLoc = 1004; + }; + 6BCF34B51105FA03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88810B69E3E00DF20FB /* DetourNavMeshBuilder.cpp */; + name = "DetourNavMeshBuilder.cpp: 489"; + rLen = 14; + rLoc = 13909; + rType = 0; + vrLen = 887; + vrLoc = 13741; + }; + 6BCF34B61105FA03009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 215"; + rLen = 0; + rLoc = 9115; + rType = 0; + vrLen = 1522; + vrLoc = 7818; + }; + 6BCF34B71105FA9F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 289"; + rLen = 0; + rLoc = 12881; + rType = 0; + vrLen = 1789; + vrLoc = 11799; + }; + 6BCF34B81105FB17009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 50"; + rLen = 0; + rLoc = 1837; + rType = 0; + vrLen = 1147; + vrLoc = 1037; + }; + 6BCF34BC1105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 52"; + rLen = 12; + rLoc = 1940; + rType = 0; + vrLen = 861; + vrLoc = 1221; + }; + 6BCF34BD1105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 79"; + rLen = 0; + rLoc = 2675; + rType = 0; + vrLen = 663; + vrLoc = 2094; + }; + 6BCF34BE1105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 307"; + rLen = 0; + rLoc = 13559; + rType = 0; + vrLen = 1718; + vrLoc = 12641; + }; + 6BCF34BF1105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 526"; + rLen = 1; + rLoc = 14787; + rType = 0; + vrLen = 806; + vrLoc = 14040; + }; + 6BCF34C01105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 45"; + rLen = 0; + rLoc = 1722; + rType = 0; + vrLen = 821; + vrLoc = 1134; + }; + 6BCF34C11105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 523"; + rLen = 0; + rLoc = 14735; + rType = 0; + vrLen = 767; + vrLoc = 14079; + }; + 6BCF34C21105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 45"; + rLen = 0; + rLoc = 1722; + rType = 0; + vrLen = 820; + vrLoc = 1134; + }; + 6BCF34C31105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 523"; + rLen = 0; + rLoc = 14735; + rType = 0; + vrLen = 767; + vrLoc = 14079; + }; + 6BCF34C41105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 45"; + rLen = 0; + rLoc = 1722; + rType = 0; + vrLen = 820; + vrLoc = 1134; + }; + 6BCF34C51105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 373"; + rLen = 0; + rLoc = 10311; + rType = 0; + vrLen = 751; + vrLoc = 9709; + }; + 6BCF34C61105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 48"; + rLen = 13; + rLoc = 1761; + rType = 0; + vrLen = 820; + vrLoc = 1134; + }; + 6BCF34C71105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 374"; + rLen = 0; + rLoc = 10311; + rType = 0; + vrLen = 801; + vrLoc = 9709; + }; + 6BCF34C81105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 48"; + rLen = 13; + rLoc = 1761; + rType = 0; + vrLen = 861; + vrLoc = 1221; + }; + 6BCF34C91105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 79"; + rLen = 0; + rLoc = 2675; + rType = 0; + vrLen = 646; + vrLoc = 2094; + }; + 6BCF34CA1105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 51"; + rLen = 12; + rLoc = 1853; + rType = 0; + vrLen = 861; + vrLoc = 1221; + }; + 6BCF34CB1105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 79"; + rLen = 0; + rLoc = 2675; + rType = 0; + vrLen = 663; + vrLoc = 2094; + }; + 6BCF34CC1105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 52"; + rLen = 12; + rLoc = 1940; + rType = 0; + vrLen = 861; + vrLoc = 1221; + }; + 6BCF34CD1105FD0F009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 79"; + rLen = 0; + rLoc = 2592; + rType = 0; + vrLen = 704; + vrLoc = 2094; + }; + 6BCF34CE1105FF32009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 389"; + rLen = 21; + rLoc = 16931; + rType = 0; + vrLen = 1357; + vrLoc = 16519; + }; + 6BCF34CF1105FF32009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 887"; + rLen = 0; + rLoc = 23588; + rType = 0; + vrLen = 1035; + vrLoc = 23382; + }; + 6BCF34D01105FF32009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 77"; + rLen = 0; + rLoc = 2522; + rType = 0; + vrLen = 708; + vrLoc = 2140; + }; + 6BCF34D11105FF32009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 233"; + rLen = 46; + rLoc = 9563; + rType = 0; + vrLen = 1327; + vrLoc = 8928; + }; + 6BCF34D21105FF32009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 887"; + rLen = 0; + rLoc = 23588; + rType = 0; + vrLen = 1035; + vrLoc = 23382; + }; + 6BCF34D31105FF32009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 389"; + rLen = 21; + rLoc = 16931; + rType = 0; + vrLen = 1357; + vrLoc = 16519; + }; + 6BCF34D41105FF32009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1071"; + rLen = 0; + rLoc = 28557; + rType = 0; + vrLen = 848; + vrLoc = 28373; + }; + 6BCF34E1110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 399"; + rLen = 0; + rLoc = 17503; + rType = 0; + vrLen = 1397; + vrLoc = 16467; + }; + 6BCF34E2110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 875"; + rLen = 0; + rLoc = 23344; + rType = 0; + vrLen = 972; + vrLoc = 19651; + }; + 6BCF34E3110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 32"; + rLen = 0; + rLoc = 1158; + rType = 0; + vrLen = 428; + vrLoc = 1023; + }; + 6BCF34E4110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 204"; + rLen = 0; + rLoc = 5847; + rType = 0; + vrLen = 372; + vrLoc = 4922; + }; + 6BCF34E5110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1070"; + rLen = 0; + rLoc = 28557; + rType = 0; + vrLen = 813; + vrLoc = 28373; + }; + 6BCF34E6110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 391"; + rLen = 45; + rLoc = 17001; + rType = 0; + vrLen = 1445; + vrLoc = 16467; + }; + 6BCF34E7110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1070"; + rLen = 0; + rLoc = 28557; + rType = 0; + vrLen = 813; + vrLoc = 28373; + }; + 6BCF34E8110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 391"; + rLen = 12; + rLoc = 17017; + rType = 0; + vrLen = 1395; + vrLoc = 16467; + }; + 6BCF34E9110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1070"; + rLen = 0; + rLoc = 28607; + rType = 0; + vrLen = 795; + vrLoc = 28373; + }; + 6BCF34EA110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 391"; + rLen = 45; + rLoc = 17001; + rType = 0; + vrLen = 1395; + vrLoc = 16467; + }; + 6BCF34EB110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 1466"; + rLen = 0; + rLoc = 38868; + rType = 0; + vrLen = 926; + vrLoc = 38656; + }; + 6BCF34EC110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 399"; + rLen = 0; + rLoc = 17503; + rType = 0; + vrLen = 1397; + vrLoc = 16467; + }; + 6BCF34ED110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; + name = "DetourNavMesh.cpp: 875"; + rLen = 0; + rLoc = 23344; + rType = 0; + vrLen = 972; + vrLoc = 19651; + }; + 6BCF34EE110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 204"; + rLen = 0; + rLoc = 5847; + rType = 0; + vrLen = 410; + vrLoc = 4922; + }; + 6BCF34EF110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */; + name = "NavMeshTesterTool.h: 32"; + rLen = 0; + rLoc = 1158; + rType = 0; + vrLen = 428; + vrLoc = 1023; + }; + 6BCF34F0110602BB009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 165"; + rLen = 0; + rLoc = 4194; + rType = 0; + vrLen = 644; + vrLoc = 3683; + }; + 6BCF34F111060322009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 150"; + rLen = 0; + rLoc = 3865; + rType = 0; + vrLen = 647; + vrLoc = 3683; + }; + 6BCF34F211060322009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 399"; + rLen = 0; + rLoc = 17503; + rType = 0; + vrLen = 1782; + vrLoc = 16233; + }; + 6BCF34F311060322009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; + name = "NavMeshTesterTool.cpp: 150"; + rLen = 0; + rLoc = 3865; + rType = 0; + vrLen = 647; + vrLoc = 3683; + }; + 6BCF34F411060322009445BF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */; + name = "DetourNavMesh.h: 46"; + rLen = 0; + rLoc = 1750; + rType = 0; + vrLen = 1210; + vrLoc = 1479; + }; 6BE7320210FE6CEF00C1B074 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */; @@ -7674,7 +8268,7 @@ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */; name = "DetourNavMesh.cpp: 1374"; rLen = 0; - rLoc = 5667; + rLoc = 5824; rType = 0; vrLen = 1029; vrLoc = 35339; @@ -7684,7 +8278,7 @@ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; name = "NavMeshTesterTool.cpp: 172"; rLen = 0; - rLoc = 4702; + rLoc = 5475; rType = 0; vrLen = 726; vrLoc = 3989; diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index 99bce25..7858401 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -281,14 +281,14 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 11 - 3 + 13 + 12 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 45}, {282, 643}} + {{0, 41}, {282, 643}} PBXTopSmartGroupGIDs @@ -323,7 +323,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - DetourDebugDraw.cpp + DetourNavMesh.h PBXSplitModuleInNavigatorKey Split0 @@ -331,11 +331,11 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - DetourDebugDraw.cpp + DetourNavMesh.h _historyCapacity 0 bookmark - 6BCF34AF1105F8DB009445BF + 6BCF34F411060322009445BF history 6B57D358108C66B200DDD053 @@ -360,7 +360,6 @@ 6BB3605210FE5CBD00A9B4B8 6BB3606210FE5E8F00A9B4B8 6B69736710FFBDCA00984788 - 6B69736810FFBDCA00984788 6B69739F10FFCA4500984788 6BCF325E1104CFE7009445BF 6BCF325F1104CFE7009445BF @@ -379,15 +378,16 @@ 6BCF343A1105ECAB009445BF 6BCF34441105ECEB009445BF 6BCF34691105EF2D009445BF - 6BCF347A1105F519009445BF - 6BCF347B1105F519009445BF 6BCF34831105F555009445BF 6BCF34901105F821009445BF 6BCF34911105F821009445BF 6BCF34A41105F894009445BF - 6BCF34A51105F894009445BF - 6BCF34AC1105F8DB009445BF - 6BCF34AD1105F8DB009445BF + 6BCF34B01105FA03009445BF + 6BCF34B11105FA03009445BF + 6BCF34E2110602BB009445BF + 6BCF34E3110602BB009445BF + 6BCF34F111060322009445BF + 6BCF34F211060322009445BF prevStack @@ -605,6 +605,40 @@ 6BCF34A81105F894009445BF 6BCF34A91105F894009445BF 6BCF34AE1105F8DB009445BF + 6BCF34B31105FA03009445BF + 6BCF34B41105FA03009445BF + 6BCF34B51105FA03009445BF + 6BCF34BE1105FD0F009445BF + 6BCF34BF1105FD0F009445BF + 6BCF34C01105FD0F009445BF + 6BCF34C11105FD0F009445BF + 6BCF34C21105FD0F009445BF + 6BCF34C31105FD0F009445BF + 6BCF34C41105FD0F009445BF + 6BCF34C51105FD0F009445BF + 6BCF34C61105FD0F009445BF + 6BCF34C71105FD0F009445BF + 6BCF34C81105FD0F009445BF + 6BCF34C91105FD0F009445BF + 6BCF34CA1105FD0F009445BF + 6BCF34CB1105FD0F009445BF + 6BCF34CC1105FD0F009445BF + 6BCF34D01105FF32009445BF + 6BCF34D11105FF32009445BF + 6BCF34D21105FF32009445BF + 6BCF34D31105FF32009445BF + 6BCF34E5110602BB009445BF + 6BCF34E6110602BB009445BF + 6BCF34E7110602BB009445BF + 6BCF34E8110602BB009445BF + 6BCF34E9110602BB009445BF + 6BCF34EA110602BB009445BF + 6BCF34EB110602BB009445BF + 6BCF34EC110602BB009445BF + 6BCF34ED110602BB009445BF + 6BCF34EE110602BB009445BF + 6BCF34EF110602BB009445BF + 6BCF34F311060322009445BF SplitCount @@ -618,18 +652,18 @@ GeometryConfiguration Frame - {{0, 0}, {952, 562}} + {{0, 0}, {952, 547}} RubberWindowFrame 11 76 1256 702 0 0 1280 778 Module PBXNavigatorGroup Proportion - 562pt + 547pt Proportion - 94pt + 109pt Tabs @@ -697,7 +731,7 @@ GeometryConfiguration Frame - {{10, 27}, {952, 67}} + {{10, 27}, {952, 82}} RubberWindowFrame 11 76 1256 702 0 0 1280 778 diff --git a/RecastDemo/Include/NavMeshTesterTool.h b/RecastDemo/Include/NavMeshTesterTool.h index 8093894..46a14a1 100644 --- a/RecastDemo/Include/NavMeshTesterTool.h +++ b/RecastDemo/Include/NavMeshTesterTool.h @@ -31,6 +31,8 @@ class NavMeshTesterTool : public SampleTool float m_agentHeight; float m_agentClimb; + dtQueryFilter m_filter; + enum ToolMode { TOOLMODE_PATHFIND, diff --git a/RecastDemo/Source/NavMeshTesterTool.cpp b/RecastDemo/Source/NavMeshTesterTool.cpp index 1fbffb6..544a8f4 100644 --- a/RecastDemo/Source/NavMeshTesterTool.cpp +++ b/RecastDemo/Source/NavMeshTesterTool.cpp @@ -59,6 +59,9 @@ NavMeshTesterTool::NavMeshTesterTool() : m_sposSet(false), m_eposSet(false) { + m_filter.includeFlags = DT_POLY_GROUND | DT_POLY_OFFMESH_CONNECTION; + m_filter.excludeFlags = 0; + m_polyPickExt[0] = 2; m_polyPickExt[1] = 4; m_polyPickExt[2] = 2; @@ -117,6 +120,34 @@ void NavMeshTesterTool::handleMenu() recalc(); } + imguiSeparator(); + + imguiLabel("Include Flags"); + + if (imguiCheck("Ground", m_filter.includeFlags & DT_POLY_GROUND)) + { + m_filter.includeFlags ^= DT_POLY_GROUND; + recalc(); + } + if (imguiCheck("Off-Mesh Connections", m_filter.includeFlags & DT_POLY_OFFMESH_CONNECTION)) + { + m_filter.includeFlags ^= DT_POLY_OFFMESH_CONNECTION; + recalc(); + } + + imguiLabel("Exclude Flags"); + + if (imguiCheck("Ground", m_filter.excludeFlags & DT_POLY_GROUND)) + { + m_filter.excludeFlags ^= DT_POLY_GROUND; + recalc(); + } + if (imguiCheck("Off-Mesh Connections", m_filter.excludeFlags & DT_POLY_OFFMESH_CONNECTION)) + { + m_filter.excludeFlags ^= DT_POLY_OFFMESH_CONNECTION; + recalc(); + } + if (m_toolMode == TOOLMODE_PATHFIND) { unsigned char flags = DU_DRAWNAVMESH_CLOSEDLIST; @@ -203,12 +234,12 @@ void NavMeshTesterTool::recalc() return; if (m_sposSet) - m_startRef = m_navMesh->findNearestPoly(m_spos, m_polyPickExt, 0); + m_startRef = m_navMesh->findNearestPoly(m_spos, m_polyPickExt, &m_filter, 0); else m_startRef = 0; if (m_eposSet) - m_endRef = m_navMesh->findNearestPoly(m_epos, m_polyPickExt, 0); + m_endRef = m_navMesh->findNearestPoly(m_epos, m_polyPickExt, &m_filter, 0); else m_endRef = 0; @@ -216,7 +247,7 @@ void NavMeshTesterTool::recalc() { if (m_sposSet && m_eposSet && m_startRef && m_endRef) { - m_npolys = m_navMesh->findPath(m_startRef, m_endRef, m_spos, m_epos, m_polys, MAX_POLYS); + m_npolys = m_navMesh->findPath(m_startRef, m_endRef, m_spos, m_epos, &m_filter, m_polys, MAX_POLYS); m_nstraightPath = 0; m_nsmoothPath = 0; @@ -224,7 +255,8 @@ void NavMeshTesterTool::recalc() if (m_npolys) { m_nstraightPath = m_navMesh->findStraightPath(m_spos, m_epos, m_polys, m_npolys, - m_straightPath, m_straightPathFlags, m_straightPathPolys, MAX_POLYS); + m_straightPath, m_straightPathFlags, + m_straightPathPolys, MAX_POLYS); // Iterate over the path to find smooth path on the detail mesh surface. @@ -364,7 +396,7 @@ void NavMeshTesterTool::recalc() m_straightPath[1] = m_spos[1]; m_straightPath[2] = m_spos[2]; vcopy(m_hitPos, m_epos); - m_npolys = m_navMesh->raycast(m_startRef, m_spos, m_epos, t, m_hitNormal, m_polys, MAX_POLYS); + m_npolys = m_navMesh->raycast(m_startRef, m_spos, m_epos, &m_filter, t, m_hitNormal, m_polys, MAX_POLYS); if (m_npolys && t < 1) { m_hitPos[0] = m_spos[0] + (m_epos[0] - m_spos[0]) * t; @@ -378,7 +410,7 @@ void NavMeshTesterTool::recalc() { m_distanceToWall = 0; if (m_sposSet && m_startRef) - m_distanceToWall = m_navMesh->findDistanceToWall(m_startRef, m_spos, 100.0f, m_hitPos, m_hitNormal); + m_distanceToWall = m_navMesh->findDistanceToWall(m_startRef, m_spos, 100.0f, &m_filter, m_hitPos, m_hitNormal); } else if (m_toolMode == TOOLMODE_FIND_POLYS_AROUND) { @@ -387,7 +419,7 @@ void NavMeshTesterTool::recalc() const float dx = m_epos[0] - m_spos[0]; const float dz = m_epos[2] - m_spos[2]; float dist = sqrtf(dx*dx + dz*dz); - m_npolys = m_navMesh->findPolysAround(m_startRef, m_spos, dist, m_polys, m_parent, 0, MAX_POLYS); + m_npolys = m_navMesh->findPolysAround(m_startRef, m_spos, dist, &m_filter, m_polys, m_parent, 0, MAX_POLYS); } } }