diff --git a/Detour/Include/DetourNavMesh.h b/Detour/Include/DetourNavMesh.h
index 1ad948f..310bf64 100644
--- a/Detour/Include/DetourNavMesh.h
+++ b/Detour/Include/DetourNavMesh.h
@@ -379,6 +379,15 @@ public:
// area - (in) area ID (0-63).
float getAreaCost(const int area) const;
+ // Sets polygon flags.
+ void setPolyFlags(dtPolyRef ref, unsigned short flags);
+
+ // Return polygon flags.
+ unsigned short getPolyFlags(dtPolyRef ref);
+
+ // Return polygon type.
+ unsigned char getPolyType(dtPolyRef ref);
+
// Returns pointer to a polygon based on ref.
const dtPoly* getPolyByRef(dtPolyRef ref) const;
@@ -447,20 +456,20 @@ private:
dtQueryFilter* filter, float* nearestPt);
// Returns closest point on polygon.
bool closestPointOnPolyInTile(const dtMeshTile* tile, unsigned int ip, const float* pos, float* closest) const;
-
- unsigned short getPolyFlags(dtPolyRef ref);
- unsigned char getPolyType(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;
- float getHeuristic(const float* from, const float* to) const;
// Returns portal points between two polygons.
bool getPortalPoints(dtPolyRef from, dtPolyRef to, float* left, float* right,
unsigned char& fromType, unsigned char& toType) const;
+ bool getPortalPoints(dtPolyRef from, const dtPoly* fromPoly, const dtMeshHeader* fromHeader,
+ dtPolyRef to, const dtPoly* toPoly, const dtMeshHeader* toHeader,
+ float* left, float* right) const;
+
// Returns edge mid point between two polygons.
bool getEdgeMidPoint(dtPolyRef from, dtPolyRef to, float* mid) const;
-
+ bool getEdgeMidPoint(dtPolyRef from, const dtPoly* fromPoly, const dtMeshHeader* fromHeader,
+ dtPolyRef to, const dtPoly* toPoly, const dtMeshHeader* toHeader,
+ float* mid) const;
+
float m_orig[3]; // Origin of the tile (0,0)
float m_tileWidth, m_tileHeight; // Dimensions of each tile.
int m_maxTiles; // Max number of tiles.
diff --git a/Detour/Source/DetourNavMesh.cpp b/Detour/Source/DetourNavMesh.cpp
index 0162faf..3d237ac 100644
--- a/Detour/Source/DetourNavMesh.cpp
+++ b/Detour/Source/DetourNavMesh.cpp
@@ -116,6 +116,9 @@ dtNavMesh::dtNavMesh() :
m_orig[0] = 0;
m_orig[1] = 0;
m_orig[2] = 0;
+
+ for (int i = 0; i < DT_MAX_AREAS; ++i)
+ m_areaCost[i] = 1.0f;
}
dtNavMesh::~dtNavMesh()
@@ -905,13 +908,13 @@ bool dtNavMesh::getPolyHeight(dtPolyRef ref, const float* pos, float* height) co
void dtNavMesh::setAreaCost(const int area, float cost)
{
- if (area >= 0 && area > DT_MAX_AREAS)
+ if (area >= 0 && area < DT_MAX_AREAS)
m_areaCost[area] = cost;
}
float dtNavMesh::getAreaCost(const int area) const
{
- if (area >= 0 && area > DT_MAX_AREAS)
+ if (area >= 0 && area < DT_MAX_AREAS)
return m_areaCost[area];
return -1;
}
@@ -1130,6 +1133,9 @@ int dtNavMesh::findPath(dtPolyRef startRef, dtPolyRef endRef,
dtNode* lastBestNode = startNode;
float lastBestNodeCost = startNode->total;
+
+ unsigned int it, ip;
+
while (!m_openList->empty())
{
dtNode* bestNode = m_openList->pop();
@@ -1140,79 +1146,115 @@ int dtNavMesh::findPath(dtPolyRef startRef, dtPolyRef endRef,
break;
}
- // Get poly and tile.
- unsigned int salt, it, ip;
- decodePolyId(bestNode->id, salt, it, ip);
+ float previousEdgeMidPoint[3];
+
+ // Get current poly and tile.
// The API input has been cheked already, skip checking internal data.
- const dtMeshHeader* header = m_tiles[it].header;
- const dtPoly* poly = &header->polys[ip];
-
- for (unsigned int i = poly->firstLink; i != DT_NULL_LINK; i = header->links[i].next)
+ const dtPolyRef bestRef = bestNode->id;
+ it = decodePolyIdTile(bestRef);
+ ip = decodePolyIdPoly(bestRef);
+ const dtMeshHeader* bestHeader = m_tiles[it].header;
+ const dtPoly* bestPoly = &bestHeader->polys[ip];
+
+ // Get parent poly and tile.
+ dtPolyRef parentRef = 0;
+ const dtMeshHeader* parentHeader = 0;
+ const dtPoly* parentPoly = 0;
+ if (bestNode->pidx)
+ parentRef = m_nodePool->getNodeAtIdx(bestNode->pidx)->id;
+ if (parentRef)
{
- dtPolyRef neighbour = header->links[i].ref;
- if (neighbour)
+ it = decodePolyIdTile(parentRef);
+ ip = decodePolyIdPoly(parentRef);
+ parentHeader = m_tiles[it].header;
+ parentPoly = &parentHeader->polys[ip];
+
+ getEdgeMidPoint(parentRef, parentPoly, parentHeader,
+ bestRef, bestPoly, bestHeader, previousEdgeMidPoint);
+ }
+ else
+ {
+ vcopy(previousEdgeMidPoint, startPos);
+ }
+
+ for (unsigned int i = bestPoly->firstLink; i != DT_NULL_LINK; i = bestHeader->links[i].next)
+ {
+ dtPolyRef neighbourRef = bestHeader->links[i].ref;
+ // Skip invalid ids and do not expand back to parent node.
+ if (!neighbourRef || parentRef == neighbourRef)
+ continue;
+
+ // Get neighbour poly and tile.
+ // The API input has been cheked already, skip checking internal data.
+ it = decodePolyIdTile(neighbourRef);
+ ip = decodePolyIdPoly(neighbourRef);
+ const dtMeshHeader* neighbourHeader = m_tiles[it].header;
+ const dtPoly* neighbourPoly = &neighbourHeader->polys[ip];
+
+ if (!passFilter(filter, neighbourPoly->flags))
+ continue;
+
+ dtNode newNode;
+ newNode.pidx = m_nodePool->getNodeIdx(bestNode);
+ newNode.id = neighbourRef;
+
+ // Calculate cost.
+ float edgeMidPoint[3];
+
+ getEdgeMidPoint(bestRef, bestPoly, bestHeader,
+ neighbourRef, neighbourPoly, neighbourHeader, edgeMidPoint);
+
+ // Special case for last node.
+ float h = 0;
+ if (neighbourRef == endRef)
{
- // Skip parent node.
- 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);
- newNode.id = neighbour;
-
- // Calculate cost.
- float p0[3], p1[3];
- if (!parent->pidx)
- 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)
- newNode.cost += vdist(p1, endPos);
-
+ // Cost
+ newNode.cost = bestNode->cost +
+ vdist(previousEdgeMidPoint,edgeMidPoint) * m_areaCost[bestPoly->area] +
+ vdist(edgeMidPoint, endPos) * m_areaCost[neighbourPoly->area];
// Heuristic
- const float h = vdist(p1,endPos)*H_SCALE;
- newNode.total = newNode.cost + h;
+ h = 0;
+ }
+ else
+ {
+ // Cost
+ newNode.cost = bestNode->cost +
+ vdist(previousEdgeMidPoint,edgeMidPoint) * m_areaCost[bestPoly->area];
+ // Heuristic
+ h = vdist(edgeMidPoint,endPos)*H_SCALE;
+ }
+ newNode.total = newNode.cost + h;
+
+ dtNode* actualNode = m_nodePool->getNode(newNode.id);
+ if (!actualNode)
+ continue;
+
+ if (!((actualNode->flags & DT_NODE_OPEN) && newNode.total > actualNode->total) &&
+ !((actualNode->flags & DT_NODE_CLOSED) && newNode.total > actualNode->total))
+ {
+ actualNode->flags &= ~DT_NODE_CLOSED;
+ actualNode->pidx = newNode.pidx;
+ actualNode->cost = newNode.cost;
+ actualNode->total = newNode.total;
- dtNode* actualNode = m_nodePool->getNode(newNode.id);
- if (!actualNode)
- continue;
-
- if (!((actualNode->flags & DT_NODE_OPEN) && newNode.total > actualNode->total) &&
- !((actualNode->flags & DT_NODE_CLOSED) && newNode.total > actualNode->total))
+ if (h < lastBestNodeCost)
{
- actualNode->flags &= ~DT_NODE_CLOSED;
- actualNode->pidx = newNode.pidx;
- actualNode->cost = newNode.cost;
- actualNode->total = newNode.total;
-
- if (h < lastBestNodeCost)
- {
- lastBestNodeCost = h;
- lastBestNode = actualNode;
- }
-
- if (actualNode->flags & DT_NODE_OPEN)
- {
- m_openList->modify(actualNode);
- }
- else
- {
- actualNode->flags |= DT_NODE_OPEN;
- m_openList->push(actualNode);
- }
+ lastBestNodeCost = h;
+ lastBestNode = actualNode;
+ }
+
+ if (actualNode->flags & DT_NODE_OPEN)
+ {
+ m_openList->modify(actualNode);
+ }
+ else
+ {
+ actualNode->flags |= DT_NODE_OPEN;
+ m_openList->push(actualNode);
}
}
}
+
bestNode->flags |= DT_NODE_CLOSED;
}
@@ -1550,7 +1592,6 @@ int dtNavMesh::moveAlongPathCorridor(const float* startPos, const float* endPos,
return n;
}
-// Returns portal points between two polygons.
bool dtNavMesh::getPortalPoints(dtPolyRef from, dtPolyRef to, float* left, float* right,
unsigned char& fromType, unsigned char& toType) const
{
@@ -1563,87 +1604,105 @@ bool dtNavMesh::getPortalPoints(dtPolyRef from, dtPolyRef to, float* left, float
const dtPoly* fromPoly = &fromHeader->polys[ip];
fromType = fromPoly->type;
+ decodePolyId(to, salt, it, ip);
+ if (it >= (unsigned int)m_maxTiles) return false;
+ if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return false;
+ if (ip >= (unsigned int)m_tiles[it].header->polyCount) return false;
+ const dtMeshHeader* toHeader = m_tiles[it].header;
+ const dtPoly* toPoly = &toHeader->polys[ip];
+ toType = toPoly->type;
+
+ return getPortalPoints(from, fromPoly, fromHeader,
+ to, toPoly, toHeader,
+ left, right);
+}
+
+// Returns portal points between two polygons.
+bool dtNavMesh::getPortalPoints(dtPolyRef from, const dtPoly* fromPoly, const dtMeshHeader* fromHeader,
+ dtPolyRef to, const dtPoly* toPoly, const dtMeshHeader* toHeader,
+ float* left, float* right) const
+{
+ // Find the link that points to the 'to' polygon.
+ const dtLink* link = 0;
for (unsigned int i = fromPoly->firstLink; i != DT_NULL_LINK; i = fromHeader->links[i].next)
{
- const dtLink* link = &fromHeader->links[i];
- if (link->ref != to)
- continue;
-
- decodePolyId(to, salt, it, ip);
- if (it >= (unsigned int)m_maxTiles) return false;
- if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return false;
- if (ip >= (unsigned int)m_tiles[it].header->polyCount) return false;
- const dtMeshHeader* toHeader = m_tiles[it].header;
- const dtPoly* toPoly = &toHeader->polys[ip];
- toType = toPoly->type;
-
- if (fromPoly->type == DT_POLYTYPE_OFFMESH_CONNECTION)
+ if (fromHeader->links[i].ref == to)
{
- // Find link that points to first vertex.
- for (unsigned int i = fromPoly->firstLink; i != DT_NULL_LINK; i = fromHeader->links[i].next)
- {
- if (fromHeader->links[i].ref == to)
- {
- const int v = fromHeader->links[i].edge;
- vcopy(left, &fromHeader->verts[fromPoly->verts[v]*3]);
- vcopy(right, &fromHeader->verts[fromPoly->verts[v]*3]);
- return true;
- }
- }
- return false;
+ link = &fromHeader->links[i];
+ break;
}
-
- if (toPoly->type == DT_POLYTYPE_OFFMESH_CONNECTION)
- {
- for (unsigned int i = toPoly->firstLink; i != DT_NULL_LINK; i = toHeader->links[i].next)
- {
- if (toHeader->links[i].ref == from)
- {
- const int v = toHeader->links[i].edge;
- vcopy(left, &toHeader->verts[toPoly->verts[v]*3]);
- vcopy(right, &toHeader->verts[toPoly->verts[v]*3]);
- return true;
- }
- }
- return false;
- }
-
- // Find portal vertices.
- const int v0 = fromPoly->verts[link->edge];
- const int v1 = fromPoly->verts[(link->edge+1) % (int)fromPoly->vertCount];
- vcopy(left, &fromHeader->verts[v0*3]);
- vcopy(right, &fromHeader->verts[v1*3]);
- // If the link is at tile boundary, clamp the vertices to
- // the link width.
- if (link->side == 0 || link->side == 4)
- {
- // Unpack portal limits.
- const float smin = min(left[2],right[2]);
- const float smax = max(left[2],right[2]);
- const float s = (smax-smin) / 255.0f;
- const float lmin = smin + link->bmin*s;
- const float lmax = smin + link->bmax*s;
- left[2] = max(left[2],lmin);
- left[2] = min(left[2],lmax);
- right[2] = max(right[2],lmin);
- right[2] = min(right[2],lmax);
- }
- else if (link->side == 2 || link->side == 6)
- {
- // Unpack portal limits.
- const float smin = min(left[0],right[0]);
- const float smax = max(left[0],right[0]);
- const float s = (smax-smin) / 255.0f;
- const float lmin = smin + link->bmin*s;
- const float lmax = smin + link->bmax*s;
- left[0] = max(left[0],lmin);
- left[0] = min(left[0],lmax);
- right[0] = max(right[0],lmin);
- right[0] = min(right[0],lmax);
- }
- return true;
}
- return false;
+ if (!link)
+ return false;
+
+ // Handle off-mesh connections.
+ if (fromPoly->type == DT_POLYTYPE_OFFMESH_CONNECTION)
+ {
+ // Find link that points to first vertex.
+ for (unsigned int i = fromPoly->firstLink; i != DT_NULL_LINK; i = fromHeader->links[i].next)
+ {
+ if (fromHeader->links[i].ref == to)
+ {
+ const int v = fromHeader->links[i].edge;
+ vcopy(left, &fromHeader->verts[fromPoly->verts[v]*3]);
+ vcopy(right, &fromHeader->verts[fromPoly->verts[v]*3]);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ if (toPoly->type == DT_POLYTYPE_OFFMESH_CONNECTION)
+ {
+ for (unsigned int i = toPoly->firstLink; i != DT_NULL_LINK; i = toHeader->links[i].next)
+ {
+ if (toHeader->links[i].ref == from)
+ {
+ const int v = toHeader->links[i].edge;
+ vcopy(left, &toHeader->verts[toPoly->verts[v]*3]);
+ vcopy(right, &toHeader->verts[toPoly->verts[v]*3]);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ // Find portal vertices.
+ const int v0 = fromPoly->verts[link->edge];
+ const int v1 = fromPoly->verts[(link->edge+1) % (int)fromPoly->vertCount];
+ vcopy(left, &fromHeader->verts[v0*3]);
+ vcopy(right, &fromHeader->verts[v1*3]);
+
+ // If the link is at tile boundary, clamp the vertices to
+ // the link width.
+ if (link->side == 0 || link->side == 4)
+ {
+ // Unpack portal limits.
+ const float smin = min(left[2],right[2]);
+ const float smax = max(left[2],right[2]);
+ const float s = (smax-smin) / 255.0f;
+ const float lmin = smin + link->bmin*s;
+ const float lmax = smin + link->bmax*s;
+ left[2] = max(left[2],lmin);
+ left[2] = min(left[2],lmax);
+ right[2] = max(right[2],lmin);
+ right[2] = min(right[2],lmax);
+ }
+ else if (link->side == 2 || link->side == 6)
+ {
+ // Unpack portal limits.
+ const float smin = min(left[0],right[0]);
+ const float smax = max(left[0],right[0]);
+ const float s = (smax-smin) / 255.0f;
+ const float lmin = smin + link->bmin*s;
+ const float lmax = smin + link->bmax*s;
+ left[0] = max(left[0],lmin);
+ left[0] = min(left[0],lmax);
+ right[0] = max(right[0],lmin);
+ right[0] = min(right[0],lmax);
+ }
+
+ return true;
}
// Returns edge mid point between two polygons.
@@ -1658,6 +1717,32 @@ bool dtNavMesh::getEdgeMidPoint(dtPolyRef from, dtPolyRef to, float* mid) const
return true;
}
+bool dtNavMesh::getEdgeMidPoint(dtPolyRef from, const dtPoly* fromPoly, const dtMeshHeader* fromHeader,
+ dtPolyRef to, const dtPoly* toPoly, const dtMeshHeader* toHeader,
+ float* mid) const
+{
+ float left[3], right[3];
+ if (!getPortalPoints(from, fromPoly, fromHeader, to, toPoly, toHeader, left, right))
+ return false;
+ mid[0] = (left[0]+right[0])*0.5f;
+ mid[1] = (left[1]+right[1])*0.5f;
+ mid[2] = (left[2]+right[2])*0.5f;
+ return true;
+}
+
+void dtNavMesh::setPolyFlags(dtPolyRef ref, unsigned short flags)
+{
+ unsigned int salt, it, ip;
+ decodePolyId(ref, salt, it, ip);
+ if (it >= (unsigned int)m_maxTiles) return;
+ if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return;
+ if (ip >= (unsigned int)m_tiles[it].header->polyCount) return;
+ dtMeshHeader* header = m_tiles[it].header;
+ dtPoly* poly = &header->polys[ip];
+ // Change flags.
+ poly->flags = flags;
+}
+
unsigned short dtNavMesh::getPolyFlags(dtPolyRef ref)
{
unsigned int salt, it, ip;
@@ -1845,85 +1930,111 @@ int dtNavMesh::findPolysAround(dtPolyRef centerRef, const float* centerPos, floa
}
const float radiusSqr = sqr(radius);
+
+ unsigned int it, ip;
while (!m_openList->empty())
{
dtNode* bestNode = m_openList->pop();
+ float previousEdgeMidPoint[3];
+
// Get poly and tile.
// The API input has been cheked already, skip checking internal data.
- unsigned int it = decodePolyIdTile(bestNode->id);
- unsigned int ip = decodePolyIdPoly(bestNode->id);
- const dtMeshHeader* header = m_tiles[it].header;
- const dtPoly* poly = &header->polys[ip];
-
- for (unsigned int i = poly->firstLink; i != DT_NULL_LINK; i = header->links[i].next)
+ const dtPolyRef bestRef = bestNode->id;
+ it = decodePolyIdTile(bestRef);
+ ip = decodePolyIdPoly(bestRef);
+ const dtMeshHeader* bestHeader = m_tiles[it].header;
+ const dtPoly* bestPoly = &bestHeader->polys[ip];
+
+ // Get parent poly and tile.
+ dtPolyRef parentRef = 0;
+ const dtMeshHeader* parentHeader = 0;
+ const dtPoly* parentPoly = 0;
+ if (bestNode->pidx)
+ parentRef = m_nodePool->getNodeAtIdx(bestNode->pidx)->id;
+ if (parentRef)
{
- const dtLink* link = &header->links[i];
- dtPolyRef neighbour = link->ref;
- if (neighbour)
+ it = decodePolyIdTile(parentRef);
+ ip = decodePolyIdPoly(parentRef);
+ parentHeader = m_tiles[it].header;
+ parentPoly = &parentHeader->polys[ip];
+
+ getEdgeMidPoint(parentRef, parentPoly, parentHeader,
+ bestRef, bestPoly, bestHeader, previousEdgeMidPoint);
+ }
+ else
+ {
+ vcopy(previousEdgeMidPoint, centerPos);
+ }
+
+ for (unsigned int i = bestPoly->firstLink; i != DT_NULL_LINK; i = bestHeader->links[i].next)
+ {
+ const dtLink* link = &bestHeader->links[i];
+ dtPolyRef neighbourRef = link->ref;
+ // Skip invalid neighbours and do not follow back to parent.
+ if (!neighbourRef || neighbourRef == parentRef)
+ continue;
+
+ // Calc distance to the edge.
+ const float* va = &bestHeader->verts[bestPoly->verts[link->edge]*3];
+ const float* vb = &bestHeader->verts[bestPoly->verts[(link->edge+1) % bestPoly->vertCount]*3];
+ float tseg;
+ float distSqr = distancePtSegSqr2D(centerPos, va, vb, tseg);
+
+ // If the circle is not touching the next polygon, skip it.
+ if (distSqr > radiusSqr)
+ continue;
+
+ // Expand to neighbour
+ it = decodePolyIdTile(neighbourRef);
+ ip = decodePolyIdPoly(neighbourRef);
+ const dtMeshHeader* neighbourHeader = m_tiles[it].header;
+ const dtPoly* neighbourPoly = &neighbourHeader->polys[ip];
+
+ if (!passFilter(filter, neighbourPoly->flags))
+ continue;
+
+ dtNode newNode;
+ newNode.pidx = m_nodePool->getNodeIdx(bestNode);
+ newNode.id = neighbourRef;
+
+ // Cost
+ float edgeMidPoint[3];
+ getEdgeMidPoint(bestRef, bestPoly, bestHeader,
+ neighbourRef, neighbourPoly, neighbourHeader, edgeMidPoint);
+
+ newNode.total = bestNode->total + vdist(previousEdgeMidPoint, edgeMidPoint);
+
+ dtNode* actualNode = m_nodePool->getNode(newNode.id);
+ if (!actualNode)
+ continue;
+
+ if (!((actualNode->flags & DT_NODE_OPEN) && newNode.total > actualNode->total) &&
+ !((actualNode->flags & DT_NODE_CLOSED) && newNode.total > actualNode->total))
{
- // Skip parent node.
- if (bestNode->pidx && m_nodePool->getNodeAtIdx(bestNode->pidx)->id == neighbour)
- continue;
+ actualNode->flags &= ~DT_NODE_CLOSED;
+ actualNode->pidx = newNode.pidx;
+ actualNode->total = newNode.total;
- // Calc distance to the edge.
- const float* va = &header->verts[poly->verts[link->edge]*3];
- const float* vb = &header->verts[poly->verts[(link->edge+1) % poly->vertCount]*3];
- float tseg;
- float distSqr = distancePtSegSqr2D(centerPos, va, vb, tseg);
-
- // 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;
- newNode.pidx = m_nodePool->getNodeIdx(parent);
- newNode.id = neighbour;
-
- // Cost
- float p0[3], p1[3];
- if (!parent->pidx)
- vcopy(p0, centerPos);
- else
- getEdgeMidPoint(m_nodePool->getNodeAtIdx(parent->pidx)->id, parent->id, p0);
- getEdgeMidPoint(parent->id, newNode.id, p1);
- newNode.total = parent->total + vdist(p0,p1);
-
- dtNode* actualNode = m_nodePool->getNode(newNode.id);
- if (!actualNode)
- continue;
-
- if (!((actualNode->flags & DT_NODE_OPEN) && newNode.total > actualNode->total) &&
- !((actualNode->flags & DT_NODE_CLOSED) && newNode.total > actualNode->total))
+ if (actualNode->flags & DT_NODE_OPEN)
{
- actualNode->flags &= ~DT_NODE_CLOSED;
- actualNode->pidx = newNode.pidx;
- actualNode->total = newNode.total;
-
- if (actualNode->flags & DT_NODE_OPEN)
+ m_openList->modify(actualNode);
+ }
+ else
+ {
+ if (n < maxResult)
{
- m_openList->modify(actualNode);
- }
- else
- {
- if (n < maxResult)
- {
- if (resultRef)
- resultRef[n] = actualNode->id;
- if (resultParent)
- resultParent[n] = m_nodePool->getNodeAtIdx(actualNode->pidx)->id;
- if (resultCost)
- resultCost[n] = actualNode->total;
- ++n;
- }
- actualNode->flags = DT_NODE_OPEN;
- m_openList->push(actualNode);
+ if (resultRef)
+ resultRef[n] = actualNode->id;
+ if (resultParent)
+ resultParent[n] = m_nodePool->getNodeAtIdx(actualNode->pidx)->id;
+ if (resultCost)
+ resultCost[n] = actualNode->total;
+ ++n;
}
+ actualNode->flags = DT_NODE_OPEN;
+ m_openList->push(actualNode);
}
}
}
@@ -1952,45 +2063,72 @@ float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos,
float radiusSqr = sqr(maxRadius);
+ unsigned int it, ip;
+
while (!m_openList->empty())
{
dtNode* bestNode = m_openList->pop();
+ float previousEdgeMidPoint[3];
+
// Get poly and tile.
// The API input has been cheked already, skip checking internal data.
- unsigned int it = decodePolyIdTile(bestNode->id);
- unsigned int ip = decodePolyIdPoly(bestNode->id);
- const dtMeshHeader* header = m_tiles[it].header;
- const dtPoly* poly = &header->polys[ip];
+ const dtPolyRef bestRef = bestNode->id;
+ it = decodePolyIdTile(bestRef);
+ ip = decodePolyIdPoly(bestRef);
+ const dtMeshHeader* bestHeader = m_tiles[it].header;
+ const dtPoly* bestPoly = &bestHeader->polys[ip];
+
+ // Get parent poly and tile.
+ dtPolyRef parentRef = 0;
+ const dtMeshHeader* parentHeader = 0;
+ const dtPoly* parentPoly = 0;
+ if (bestNode->pidx)
+ parentRef = m_nodePool->getNodeAtIdx(bestNode->pidx)->id;
+ if (parentRef)
+ {
+ it = decodePolyIdTile(parentRef);
+ ip = decodePolyIdPoly(parentRef);
+ parentHeader = m_tiles[it].header;
+ parentPoly = &parentHeader->polys[ip];
+
+ getEdgeMidPoint(parentRef, parentPoly, parentHeader,
+ bestRef, bestPoly, bestHeader, previousEdgeMidPoint);
+ }
+ else
+ {
+ vcopy(previousEdgeMidPoint, centerPos);
+ }
// Hit test walls.
- for (int i = 0, j = (int)poly->vertCount-1; i < (int)poly->vertCount; j = i++)
+ for (int i = 0, j = (int)bestPoly->vertCount-1; i < (int)bestPoly->vertCount; j = i++)
{
// Skip non-solid edges.
- if (poly->neis[j] & DT_EXT_LINK)
+ if (bestPoly->neis[j] & DT_EXT_LINK)
{
// Tile border.
bool solid = true;
- for (unsigned int k = poly->firstLink; k != DT_NULL_LINK; k = header->links[k].next)
+ for (unsigned int k = bestPoly->firstLink; k != DT_NULL_LINK; k = bestHeader->links[k].next)
{
- const dtLink* link = &header->links[k];
- if (link->edge == j && link->ref != 0 && passFilter(filter, getPolyFlags(link->ref)))
+ const dtLink* link = &bestHeader->links[k];
+ if (link->edge == j)
{
- solid = false;
+ if (link->ref != 0 && passFilter(filter, getPolyFlags(link->ref)))
+ solid = false;
break;
}
}
if (!solid) continue;
}
- else if (poly->neis[j] && passFilter(filter, header->polys[poly->neis[j]].flags))
+ else if (bestPoly->neis[j] && passFilter(filter, bestHeader->polys[bestPoly->neis[j]].flags))
{
// Internal edge
continue;
}
// Calc distance to the edge.
- const float* vj = &header->verts[poly->verts[j]*3];
- const float* vi = &header->verts[poly->verts[i]*3];
+ const float* vj = &bestHeader->verts[bestPoly->verts[j]*3];
+ const float* vi = &bestHeader->verts[bestPoly->verts[i]*3];
float tseg;
float distSqr = distancePtSegSqr2D(centerPos, vj, vi, tseg);
@@ -2006,62 +2144,63 @@ float dtNavMesh::findDistanceToWall(dtPolyRef centerRef, const float* centerPos,
hitPos[2] = vj[2] + (vi[2] - vj[2])*tseg;
}
- for (unsigned int i = poly->firstLink; i != DT_NULL_LINK; i = header->links[i].next)
+ for (unsigned int i = bestPoly->firstLink; i != DT_NULL_LINK; i = bestHeader->links[i].next)
{
- const dtLink* link = &header->links[i];
- dtPolyRef neighbour = link->ref;
- if (neighbour)
- {
- // Skip parent node.
- if (bestNode->pidx && m_nodePool->getNodeAtIdx(bestNode->pidx)->id == neighbour)
- continue;
-
- // Calc distance to the edge.
- const float* va = &header->verts[poly->verts[link->edge]*3];
- const float* vb = &header->verts[poly->verts[(link->edge+1) % poly->vertCount]*3];
- float tseg;
- float distSqr = distancePtSegSqr2D(centerPos, va, vb, tseg);
-
- // 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;
- newNode.pidx = m_nodePool->getNodeIdx(parent);
- newNode.id = neighbour;
+ const dtLink* link = &bestHeader->links[i];
+ dtPolyRef neighbourRef = link->ref;
+ // Skip invalid neighbours and do not follow back to parent.
+ if (!neighbourRef || neighbourRef == parentRef)
+ continue;
+
+ // Calc distance to the edge.
+ const float* va = &bestHeader->verts[bestPoly->verts[link->edge]*3];
+ const float* vb = &bestHeader->verts[bestPoly->verts[(link->edge+1) % bestPoly->vertCount]*3];
+ float tseg;
+ float distSqr = distancePtSegSqr2D(centerPos, va, vb, tseg);
+
+ // If the circle is not touching the next polygon, skip it.
+ if (distSqr > radiusSqr)
+ continue;
+
+ // Expand to neighbour.
+ it = decodePolyIdTile(neighbourRef);
+ ip = decodePolyIdPoly(neighbourRef);
+ const dtMeshHeader* neighbourHeader = m_tiles[it].header;
+ const dtPoly* neighbourPoly = &neighbourHeader->polys[ip];
+
+ if (!passFilter(filter, neighbourPoly->flags))
+ continue;
+
+ dtNode newNode;
+ newNode.pidx = m_nodePool->getNodeIdx(bestNode);
+ newNode.id = neighbourRef;
+
+ // Cost
+ float edgeMidPoint[3];
+ getEdgeMidPoint(bestRef, bestPoly, bestHeader,
+ neighbourRef, neighbourPoly, neighbourHeader, edgeMidPoint);
- float p0[3], p1[3];
- if (!parent->pidx)
- vcopy(p0, centerPos);
- else
- getEdgeMidPoint(m_nodePool->getNodeAtIdx(parent->pidx)->id, parent->id, p0);
- getEdgeMidPoint(parent->id, newNode.id, p1);
- newNode.total = parent->total + vdist(p0,p1);
+ newNode.total = bestNode->total + vdist(previousEdgeMidPoint, edgeMidPoint);
+
+ dtNode* actualNode = m_nodePool->getNode(newNode.id);
+ if (!actualNode)
+ continue;
+
+ if (!((actualNode->flags & DT_NODE_OPEN) && newNode.total > actualNode->total) &&
+ !((actualNode->flags & DT_NODE_CLOSED) && newNode.total > actualNode->total))
+ {
+ actualNode->flags &= ~DT_NODE_CLOSED;
+ actualNode->pidx = newNode.pidx;
+ actualNode->total = newNode.total;
- dtNode* actualNode = m_nodePool->getNode(newNode.id);
- if (!actualNode)
- continue;
-
- if (!((actualNode->flags & DT_NODE_OPEN) && newNode.total > actualNode->total) &&
- !((actualNode->flags & DT_NODE_CLOSED) && newNode.total > actualNode->total))
+ if (actualNode->flags & DT_NODE_OPEN)
{
- actualNode->flags &= ~DT_NODE_CLOSED;
- actualNode->pidx = newNode.pidx;
- actualNode->total = newNode.total;
-
- if (actualNode->flags & DT_NODE_OPEN)
- {
- m_openList->modify(actualNode);
- }
- else
- {
- actualNode->flags = DT_NODE_OPEN;
- m_openList->push(actualNode);
- }
+ m_openList->modify(actualNode);
+ }
+ else
+ {
+ actualNode->flags = DT_NODE_OPEN;
+ m_openList->push(actualNode);
}
}
}
diff --git a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast
index f8e43cc..94a15a4 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 2eacd78..2923eb0 100644
--- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser
+++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser
@@ -9,16 +9,18 @@
};
};
29B97313FDCFA39411CA2CEA /* Project object */ = {
- activeBuildConfigurationName = Debug;
+ activeBuildConfigurationName = Release;
activeExecutable = 6B8632970F78114600E2684A /* Recast */;
activeTarget = 8D1107260486CEB800E47090 /* Recast */;
addToTargets = (
8D1107260486CEB800E47090 /* Recast */,
);
breakpoints = (
- 6B84BDF5110DF38D007D997B /* DetourNavMesh.cpp:251 */,
+ 6B84BDF5110DF38D007D997B /* DetourNavMesh.cpp:254 */,
6B84BE1D110DF6C6007D997B /* Sample_TileMesh.cpp:478 */,
6B324BE6111C511800EBD2FD /* BoxVolumeTool.cpp:27 */,
+ 6B324DF11125530F00EBD2FD /* DetourNavMesh.cpp:1212 */,
+ 6B324DF81125533B00EBD2FD /* NavMeshTesterTool.cpp:297 */,
);
codeSenseManager = 6B8632AA0F78115100E2684A /* Code sense */;
executables = (
@@ -584,6 +586,200 @@
6B324D0B111C7C1700EBD2FD /* PBXTextBookmark */ = 6B324D0B111C7C1700EBD2FD /* PBXTextBookmark */;
6B324D0C111C7C1700EBD2FD /* PBXTextBookmark */ = 6B324D0C111C7C1700EBD2FD /* PBXTextBookmark */;
6B324D0D111C7C1700EBD2FD /* PBXTextBookmark */ = 6B324D0D111C7C1700EBD2FD /* PBXTextBookmark */;
+ 6B324D0F1121C78000EBD2FD /* PBXTextBookmark */ = 6B324D0F1121C78000EBD2FD /* PBXTextBookmark */;
+ 6B324D101121C78000EBD2FD /* PBXTextBookmark */ = 6B324D101121C78000EBD2FD /* PBXTextBookmark */;
+ 6B324D111121C78000EBD2FD /* PBXTextBookmark */ = 6B324D111121C78000EBD2FD /* PBXTextBookmark */;
+ 6B324D121121C78000EBD2FD /* PBXTextBookmark */ = 6B324D121121C78000EBD2FD /* PBXTextBookmark */;
+ 6B324D131121C78000EBD2FD /* PBXTextBookmark */ = 6B324D131121C78000EBD2FD /* PBXTextBookmark */;
+ 6B324D141121C78000EBD2FD /* PBXTextBookmark */ = 6B324D141121C78000EBD2FD /* PBXTextBookmark */;
+ 6B324D151121C78000EBD2FD /* PBXTextBookmark */ = 6B324D151121C78000EBD2FD /* PBXTextBookmark */;
+ 6B324D161121C78000EBD2FD /* PBXTextBookmark */ = 6B324D161121C78000EBD2FD /* PBXTextBookmark */;
+ 6B324D191121CC6800EBD2FD /* PBXTextBookmark */ = 6B324D191121CC6800EBD2FD /* PBXTextBookmark */;
+ 6B324D1B1121CC8100EBD2FD /* PBXTextBookmark */ = 6B324D1B1121CC8100EBD2FD /* PBXTextBookmark */;
+ 6B324D1C1121CCCE00EBD2FD /* PBXTextBookmark */ = 6B324D1C1121CCCE00EBD2FD /* PBXTextBookmark */;
+ 6B324D1D1121CCD200EBD2FD /* PBXTextBookmark */ = 6B324D1D1121CCD200EBD2FD /* PBXTextBookmark */;
+ 6B324D1E1121CCD400EBD2FD /* PBXTextBookmark */ = 6B324D1E1121CCD400EBD2FD /* PBXTextBookmark */;
+ 6B324D1F1121CCD400EBD2FD /* PBXTextBookmark */ = 6B324D1F1121CCD400EBD2FD /* PBXTextBookmark */;
+ 6B324D211121CD0C00EBD2FD /* PBXTextBookmark */ = 6B324D211121CD0C00EBD2FD /* PBXTextBookmark */;
+ 6B324D221121CD0C00EBD2FD /* PBXTextBookmark */ = 6B324D221121CD0C00EBD2FD /* PBXTextBookmark */;
+ 6B324D231121CD0C00EBD2FD /* PBXTextBookmark */ = 6B324D231121CD0C00EBD2FD /* PBXTextBookmark */;
+ 6B324D241121CD0C00EBD2FD /* PBXTextBookmark */ = 6B324D241121CD0C00EBD2FD /* PBXTextBookmark */;
+ 6B324D261121CD2000EBD2FD /* PBXTextBookmark */ = 6B324D261121CD2000EBD2FD /* PBXTextBookmark */;
+ 6B324D271121CD2000EBD2FD /* PBXTextBookmark */ = 6B324D271121CD2000EBD2FD /* PBXTextBookmark */;
+ 6B324D281121CD2000EBD2FD /* PBXTextBookmark */ = 6B324D281121CD2000EBD2FD /* PBXTextBookmark */;
+ 6B324D291121CD2000EBD2FD /* PBXTextBookmark */ = 6B324D291121CD2000EBD2FD /* PBXTextBookmark */;
+ 6B324D2B1121CD2900EBD2FD /* PBXTextBookmark */ = 6B324D2B1121CD2900EBD2FD /* PBXTextBookmark */;
+ 6B324D2C1121CD3200EBD2FD /* PBXTextBookmark */ = 6B324D2C1121CD3200EBD2FD /* PBXTextBookmark */;
+ 6B324D2D1121CD3600EBD2FD /* PBXTextBookmark */ = 6B324D2D1121CD3600EBD2FD /* PBXTextBookmark */;
+ 6B324D2E1121CD9300EBD2FD /* PBXTextBookmark */ = 6B324D2E1121CD9300EBD2FD /* PBXTextBookmark */;
+ 6B324D2F1121CD9300EBD2FD /* PBXTextBookmark */ = 6B324D2F1121CD9300EBD2FD /* PBXTextBookmark */;
+ 6B324D301121CDAF00EBD2FD /* PBXTextBookmark */ = 6B324D301121CDAF00EBD2FD /* PBXTextBookmark */;
+ 6B324D311121CDAF00EBD2FD /* PBXTextBookmark */ = 6B324D311121CDAF00EBD2FD /* PBXTextBookmark */;
+ 6B324D321121CDAF00EBD2FD /* PBXTextBookmark */ = 6B324D321121CDAF00EBD2FD /* PBXTextBookmark */;
+ 6B324D331121CDAF00EBD2FD /* PBXTextBookmark */ = 6B324D331121CDAF00EBD2FD /* PBXTextBookmark */;
+ 6B324D361121CFCF00EBD2FD /* PBXTextBookmark */ = 6B324D361121CFCF00EBD2FD /* PBXTextBookmark */;
+ 6B324D371121CFCF00EBD2FD /* PBXTextBookmark */ = 6B324D371121CFCF00EBD2FD /* PBXTextBookmark */;
+ 6B324D381121CFCF00EBD2FD /* PBXTextBookmark */ = 6B324D381121CFCF00EBD2FD /* PBXTextBookmark */;
+ 6B324D391121CFCF00EBD2FD /* PBXTextBookmark */ = 6B324D391121CFCF00EBD2FD /* PBXTextBookmark */;
+ 6B324D3A1121CFCF00EBD2FD /* PBXTextBookmark */ = 6B324D3A1121CFCF00EBD2FD /* PBXTextBookmark */;
+ 6B324D3B1121CFCF00EBD2FD /* PBXTextBookmark */ = 6B324D3B1121CFCF00EBD2FD /* PBXTextBookmark */;
+ 6B324D3C1121CFCF00EBD2FD /* PBXTextBookmark */ = 6B324D3C1121CFCF00EBD2FD /* PBXTextBookmark */;
+ 6B324D3D1121CFCF00EBD2FD /* PBXTextBookmark */ = 6B324D3D1121CFCF00EBD2FD /* PBXTextBookmark */;
+ 6B324D3E1121CFD900EBD2FD /* PBXTextBookmark */ = 6B324D3E1121CFD900EBD2FD /* PBXTextBookmark */;
+ 6B324D3F1121CFE300EBD2FD /* PBXTextBookmark */ = 6B324D3F1121CFE300EBD2FD /* PBXTextBookmark */;
+ 6B324D401121CFE300EBD2FD /* PBXTextBookmark */ = 6B324D401121CFE300EBD2FD /* PBXTextBookmark */;
+ 6B324D421121CFFD00EBD2FD /* PBXTextBookmark */ = 6B324D421121CFFD00EBD2FD /* PBXTextBookmark */;
+ 6B324D431121CFFD00EBD2FD /* PBXTextBookmark */ = 6B324D431121CFFD00EBD2FD /* PBXTextBookmark */;
+ 6B324D441121CFFD00EBD2FD /* PBXTextBookmark */ = 6B324D441121CFFD00EBD2FD /* PBXTextBookmark */;
+ 6B324D451121CFFD00EBD2FD /* PBXTextBookmark */ = 6B324D451121CFFD00EBD2FD /* PBXTextBookmark */;
+ 6B324D461121D00800EBD2FD /* PBXTextBookmark */ = 6B324D461121D00800EBD2FD /* PBXTextBookmark */;
+ 6B324D471121D00D00EBD2FD /* PBXTextBookmark */ = 6B324D471121D00D00EBD2FD /* PBXTextBookmark */;
+ 6B324D491121D04800EBD2FD /* PBXTextBookmark */ = 6B324D491121D04800EBD2FD /* PBXTextBookmark */;
+ 6B324D4A1121D0AB00EBD2FD /* PBXTextBookmark */ = 6B324D4A1121D0AB00EBD2FD /* PBXTextBookmark */;
+ 6B324D4B1121D0AB00EBD2FD /* PBXTextBookmark */ = 6B324D4B1121D0AB00EBD2FD /* PBXTextBookmark */;
+ 6B324D4C1121D0AE00EBD2FD /* PBXTextBookmark */ = 6B324D4C1121D0AE00EBD2FD /* PBXTextBookmark */;
+ 6B324D4D1121D13500EBD2FD /* PBXTextBookmark */ = 6B324D4D1121D13500EBD2FD /* PBXTextBookmark */;
+ 6B324D4F1121D61A00EBD2FD /* PBXTextBookmark */ = 6B324D4F1121D61A00EBD2FD /* PBXTextBookmark */;
+ 6B324D501121D61A00EBD2FD /* PBXTextBookmark */ = 6B324D501121D61A00EBD2FD /* PBXTextBookmark */;
+ 6B324D511121D61A00EBD2FD /* PBXTextBookmark */ = 6B324D511121D61A00EBD2FD /* PBXTextBookmark */;
+ 6B324D521121D61A00EBD2FD /* PBXTextBookmark */ = 6B324D521121D61A00EBD2FD /* PBXTextBookmark */;
+ 6B324D531121D61A00EBD2FD /* PBXTextBookmark */ = 6B324D531121D61A00EBD2FD /* PBXTextBookmark */;
+ 6B324D541121D61A00EBD2FD /* PBXTextBookmark */ = 6B324D541121D61A00EBD2FD /* PBXTextBookmark */;
+ 6B324D551121D61A00EBD2FD /* PBXTextBookmark */ = 6B324D551121D61A00EBD2FD /* PBXTextBookmark */;
+ 6B324D561121D61A00EBD2FD /* PBXTextBookmark */ = 6B324D561121D61A00EBD2FD /* PBXTextBookmark */;
+ 6B324D581121D6A600EBD2FD /* PBXTextBookmark */ = 6B324D581121D6A600EBD2FD /* PBXTextBookmark */;
+ 6B324D591121D70600EBD2FD /* PBXTextBookmark */ = 6B324D591121D70600EBD2FD /* PBXTextBookmark */;
+ 6B324D5A1121D70600EBD2FD /* PBXTextBookmark */ = 6B324D5A1121D70600EBD2FD /* PBXTextBookmark */;
+ 6B324D5C1121D71800EBD2FD /* PBXTextBookmark */ = 6B324D5C1121D71800EBD2FD /* PBXTextBookmark */;
+ 6B324D5D1121D71800EBD2FD /* PBXTextBookmark */ = 6B324D5D1121D71800EBD2FD /* PBXTextBookmark */;
+ 6B324D5E1121D71800EBD2FD /* PBXTextBookmark */ = 6B324D5E1121D71800EBD2FD /* PBXTextBookmark */;
+ 6B324D5F1121D71800EBD2FD /* PBXTextBookmark */ = 6B324D5F1121D71800EBD2FD /* PBXTextBookmark */;
+ 6B324D601121D71A00EBD2FD /* PBXTextBookmark */ = 6B324D601121D71A00EBD2FD /* PBXTextBookmark */;
+ 6B324D611121D72100EBD2FD /* PBXTextBookmark */ = 6B324D611121D72100EBD2FD /* PBXTextBookmark */;
+ 6B324D621121D72100EBD2FD /* PBXTextBookmark */ = 6B324D621121D72100EBD2FD /* PBXTextBookmark */;
+ 6B324D631121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D631121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D641121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D641121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D651121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D651121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D661121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D661121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D671121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D671121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D681121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D681121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D691121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D691121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D6A1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D6A1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D6B1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D6B1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D6C1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D6C1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D6D1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D6D1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D6E1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D6E1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D6F1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D6F1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D701121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D701121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D711121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D711121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D721121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D721121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D731121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D731121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D741121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D741121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D751121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D751121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D761121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D761121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D771121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D771121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D781121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D781121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D791121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D791121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D7A1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D7A1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D7B1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D7B1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D7C1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D7C1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D7D1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D7D1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D7E1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D7E1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D7F1121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D7F1121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D801121DE7A00EBD2FD /* PBXTextBookmark */ = 6B324D801121DE7A00EBD2FD /* PBXTextBookmark */;
+ 6B324D8111253B8E00EBD2FD /* PBXTextBookmark */ = 6B324D8111253B8E00EBD2FD /* PBXTextBookmark */;
+ 6B324D8211253B8E00EBD2FD /* PBXTextBookmark */ = 6B324D8211253B8E00EBD2FD /* PBXTextBookmark */;
+ 6B324D8311253B8E00EBD2FD /* PBXTextBookmark */ = 6B324D8311253B8E00EBD2FD /* PBXTextBookmark */;
+ 6B324D8411253B8E00EBD2FD /* PBXTextBookmark */ = 6B324D8411253B8E00EBD2FD /* PBXTextBookmark */;
+ 6B324D8511253B8E00EBD2FD /* PBXTextBookmark */ = 6B324D8511253B8E00EBD2FD /* PBXTextBookmark */;
+ 6B324D8611253BD300EBD2FD /* PBXTextBookmark */ = 6B324D8611253BD300EBD2FD /* PBXTextBookmark */;
+ 6B324D8711253FD300EBD2FD /* PBXTextBookmark */ = 6B324D8711253FD300EBD2FD /* PBXTextBookmark */;
+ 6B324D92112542DA00EBD2FD /* PBXTextBookmark */ = 6B324D92112542DA00EBD2FD /* PBXTextBookmark */;
+ 6B324D93112542DA00EBD2FD /* PBXTextBookmark */ = 6B324D93112542DA00EBD2FD /* PBXTextBookmark */;
+ 6B324D94112542DA00EBD2FD /* PBXTextBookmark */ = 6B324D94112542DA00EBD2FD /* PBXTextBookmark */;
+ 6B324D95112542DA00EBD2FD /* PBXTextBookmark */ = 6B324D95112542DA00EBD2FD /* PBXTextBookmark */;
+ 6B324D96112542DA00EBD2FD /* PBXTextBookmark */ = 6B324D96112542DA00EBD2FD /* PBXTextBookmark */;
+ 6B324D97112542DA00EBD2FD /* PBXTextBookmark */ = 6B324D97112542DA00EBD2FD /* PBXTextBookmark */;
+ 6B324D98112542DA00EBD2FD /* PBXTextBookmark */ = 6B324D98112542DA00EBD2FD /* PBXTextBookmark */;
+ 6B324DAD112548EF00EBD2FD /* PBXTextBookmark */ = 6B324DAD112548EF00EBD2FD /* PBXTextBookmark */;
+ 6B324DAE112548EF00EBD2FD /* PBXTextBookmark */ = 6B324DAE112548EF00EBD2FD /* PBXTextBookmark */;
+ 6B324DB11125492F00EBD2FD /* PBXTextBookmark */ = 6B324DB11125492F00EBD2FD /* PBXTextBookmark */;
+ 6B324DB21125492F00EBD2FD /* PBXTextBookmark */ = 6B324DB21125492F00EBD2FD /* PBXTextBookmark */;
+ 6B324DB31125492F00EBD2FD /* PBXTextBookmark */ = 6B324DB31125492F00EBD2FD /* PBXTextBookmark */;
+ 6B324DB41125492F00EBD2FD /* PBXTextBookmark */ = 6B324DB41125492F00EBD2FD /* PBXTextBookmark */;
+ 6B324DB51125494100EBD2FD /* PBXTextBookmark */ = 6B324DB51125494100EBD2FD /* PBXTextBookmark */;
+ 6B324DB91125495F00EBD2FD /* PBXTextBookmark */ = 6B324DB91125495F00EBD2FD /* PBXTextBookmark */;
+ 6B324DBD112549C000EBD2FD /* PBXTextBookmark */ = 6B324DBD112549C000EBD2FD /* PBXTextBookmark */;
+ 6B324DBF11254A8400EBD2FD /* PBXTextBookmark */ = 6B324DBF11254A8400EBD2FD /* PBXTextBookmark */;
+ 6B324DC211254B0C00EBD2FD /* PBXTextBookmark */ = 6B324DC211254B0C00EBD2FD /* PBXTextBookmark */;
+ 6B324DC311254B0C00EBD2FD /* PBXTextBookmark */ = 6B324DC311254B0C00EBD2FD /* PBXTextBookmark */;
+ 6B324DC411254B0C00EBD2FD /* PBXTextBookmark */ = 6B324DC411254B0C00EBD2FD /* PBXTextBookmark */;
+ 6B324DC511254B0C00EBD2FD /* PBXTextBookmark */ = 6B324DC511254B0C00EBD2FD /* PBXTextBookmark */;
+ 6B324DC611254B0C00EBD2FD /* PBXTextBookmark */ = 6B324DC611254B0C00EBD2FD /* PBXTextBookmark */;
+ 6B324DC911254B2E00EBD2FD /* PBXTextBookmark */ = 6B324DC911254B2E00EBD2FD /* PBXTextBookmark */;
+ 6B324DCA11254B2E00EBD2FD /* PBXTextBookmark */ = 6B324DCA11254B2E00EBD2FD /* PBXTextBookmark */;
+ 6B324DCB11254B2E00EBD2FD /* PBXTextBookmark */ = 6B324DCB11254B2E00EBD2FD /* PBXTextBookmark */;
+ 6B324DCD11254E0400EBD2FD /* PBXTextBookmark */ = 6B324DCD11254E0400EBD2FD /* PBXTextBookmark */;
+ 6B324DCE11254E0400EBD2FD /* PBXTextBookmark */ = 6B324DCE11254E0400EBD2FD /* PBXTextBookmark */;
+ 6B324DCF11254E0400EBD2FD /* PBXTextBookmark */ = 6B324DCF11254E0400EBD2FD /* PBXTextBookmark */;
+ 6B324DD011254E0400EBD2FD /* PBXTextBookmark */ = 6B324DD011254E0400EBD2FD /* PBXTextBookmark */;
+ 6B324DD111254E0400EBD2FD /* PBXTextBookmark */ = 6B324DD111254E0400EBD2FD /* PBXTextBookmark */;
+ 6B324DD311254EE300EBD2FD /* PBXTextBookmark */ = 6B324DD311254EE300EBD2FD /* PBXTextBookmark */;
+ 6B324DD81125503700EBD2FD /* PBXTextBookmark */ = 6B324DD81125503700EBD2FD /* PBXTextBookmark */;
+ 6B324DDE112550BF00EBD2FD /* PBXTextBookmark */ = 6B324DDE112550BF00EBD2FD /* PBXTextBookmark */;
+ 6B324DE21125511B00EBD2FD /* PBXTextBookmark */ = 6B324DE21125511B00EBD2FD /* PBXTextBookmark */;
+ 6B324DE31125511B00EBD2FD /* PBXTextBookmark */ = 6B324DE31125511B00EBD2FD /* PBXTextBookmark */;
+ 6B324DE41125511B00EBD2FD /* PBXTextBookmark */ = 6B324DE41125511B00EBD2FD /* PBXTextBookmark */;
+ 6B324DE51125511B00EBD2FD /* PBXTextBookmark */ = 6B324DE51125511B00EBD2FD /* PBXTextBookmark */;
+ 6B324DE61125511B00EBD2FD /* PBXTextBookmark */ = 6B324DE61125511B00EBD2FD /* PBXTextBookmark */;
+ 6B324DE8112552C200EBD2FD /* PBXTextBookmark */ = 6B324DE8112552C200EBD2FD /* PBXTextBookmark */;
+ 6B324DE9112552C200EBD2FD /* PBXTextBookmark */ = 6B324DE9112552C200EBD2FD /* PBXTextBookmark */;
+ 6B324DEA112552C200EBD2FD /* PBXTextBookmark */ = 6B324DEA112552C200EBD2FD /* PBXTextBookmark */;
+ 6B324DEB112552C200EBD2FD /* PBXTextBookmark */ = 6B324DEB112552C200EBD2FD /* PBXTextBookmark */;
+ 6B324DEC112552C200EBD2FD /* PBXTextBookmark */ = 6B324DEC112552C200EBD2FD /* PBXTextBookmark */;
+ 6B324DED112552C200EBD2FD /* PBXTextBookmark */ = 6B324DED112552C200EBD2FD /* PBXTextBookmark */;
+ 6B324DEF112552DE00EBD2FD /* PBXTextBookmark */ = 6B324DEF112552DE00EBD2FD /* PBXTextBookmark */;
+ 6B324DF21125531100EBD2FD /* PBXTextBookmark */ = 6B324DF21125531100EBD2FD /* PBXTextBookmark */;
+ 6B324DF31125531100EBD2FD /* PBXTextBookmark */ = 6B324DF31125531100EBD2FD /* PBXTextBookmark */;
+ 6B324DF41125531100EBD2FD /* PBXTextBookmark */ = 6B324DF41125531100EBD2FD /* PBXTextBookmark */;
+ 6B324DF51125531100EBD2FD /* PBXTextBookmark */ = 6B324DF51125531100EBD2FD /* PBXTextBookmark */;
+ 6B324DF91125534000EBD2FD /* PBXTextBookmark */ = 6B324DF91125534000EBD2FD /* PBXTextBookmark */;
+ 6B324DFA1125534000EBD2FD /* PBXTextBookmark */ = 6B324DFA1125534000EBD2FD /* PBXTextBookmark */;
+ 6B324DFB1125534000EBD2FD /* PBXTextBookmark */ = 6B324DFB1125534000EBD2FD /* PBXTextBookmark */;
+ 6B324DFC1125534000EBD2FD /* PBXTextBookmark */ = 6B324DFC1125534000EBD2FD /* PBXTextBookmark */;
+ 6B324DFF1125535800EBD2FD /* PBXTextBookmark */ = 6B324DFF1125535800EBD2FD /* PBXTextBookmark */;
+ 6B324E001125535800EBD2FD /* PBXTextBookmark */ = 6B324E001125535800EBD2FD /* PBXTextBookmark */;
+ 6B324E011125535800EBD2FD /* PBXTextBookmark */ = 6B324E011125535800EBD2FD /* PBXTextBookmark */;
+ 6B324E021125535800EBD2FD /* PBXTextBookmark */ = 6B324E021125535800EBD2FD /* PBXTextBookmark */;
+ 6B324E031125535800EBD2FD /* PBXTextBookmark */ = 6B324E031125535800EBD2FD /* PBXTextBookmark */;
+ 6B324E041125535800EBD2FD /* PBXTextBookmark */ = 6B324E041125535800EBD2FD /* PBXTextBookmark */;
+ 6B324E061125554800EBD2FD /* PBXTextBookmark */ = 6B324E061125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E071125554800EBD2FD /* PBXTextBookmark */ = 6B324E071125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E081125554800EBD2FD /* PBXTextBookmark */ = 6B324E081125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E091125554800EBD2FD /* PBXTextBookmark */ = 6B324E091125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E0A1125554800EBD2FD /* PBXTextBookmark */ = 6B324E0A1125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E0B1125554800EBD2FD /* PBXTextBookmark */ = 6B324E0B1125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E0C1125554800EBD2FD /* PBXTextBookmark */ = 6B324E0C1125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E0D1125554800EBD2FD /* PBXTextBookmark */ = 6B324E0D1125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E0E1125554800EBD2FD /* PBXTextBookmark */ = 6B324E0E1125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E0F1125554800EBD2FD /* PBXTextBookmark */ = 6B324E0F1125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E101125554800EBD2FD /* PBXTextBookmark */ = 6B324E101125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E111125554800EBD2FD /* PBXTextBookmark */ = 6B324E111125554800EBD2FD /* PBXTextBookmark */;
+ 6B324E121125559400EBD2FD /* PBXTextBookmark */ = 6B324E121125559400EBD2FD /* PBXTextBookmark */;
+ 6B324E13112555CF00EBD2FD /* PBXTextBookmark */ = 6B324E13112555CF00EBD2FD /* PBXTextBookmark */;
+ 6B324E14112555CF00EBD2FD /* PBXTextBookmark */ = 6B324E14112555CF00EBD2FD /* PBXTextBookmark */;
+ 6B324E15112555CF00EBD2FD /* PBXTextBookmark */ = 6B324E15112555CF00EBD2FD /* PBXTextBookmark */;
+ 6B324E17112555F200EBD2FD /* PBXTextBookmark */ = 6B324E17112555F200EBD2FD /* PBXTextBookmark */;
+ 6B324E181125566A00EBD2FD /* PBXTextBookmark */ = 6B324E181125566A00EBD2FD /* PBXTextBookmark */;
+ 6B324E191125566A00EBD2FD /* PBXTextBookmark */ = 6B324E191125566A00EBD2FD /* PBXTextBookmark */;
+ 6B324E1A1125566A00EBD2FD /* PBXTextBookmark */ = 6B324E1A1125566A00EBD2FD /* PBXTextBookmark */;
+ 6B324E1B1125566A00EBD2FD /* PBXTextBookmark */ = 6B324E1B1125566A00EBD2FD /* PBXTextBookmark */;
+ 6B324E1C1125566A00EBD2FD /* PBXTextBookmark */ = 6B324E1C1125566A00EBD2FD /* PBXTextBookmark */;
+ 6B324E1D1125566A00EBD2FD /* PBXTextBookmark */ = 6B324E1D1125566A00EBD2FD /* PBXTextBookmark */;
+ 6B324E201125568100EBD2FD /* PBXTextBookmark */ = 6B324E201125568100EBD2FD /* PBXTextBookmark */;
+ 6B324E211125568100EBD2FD /* PBXTextBookmark */ = 6B324E211125568100EBD2FD /* PBXTextBookmark */;
+ 6B324E221125568100EBD2FD /* PBXTextBookmark */ = 6B324E221125568100EBD2FD /* PBXTextBookmark */;
+ 6B324E231125568100EBD2FD /* PBXTextBookmark */ = 6B324E231125568100EBD2FD /* PBXTextBookmark */;
6B69739F10FFCA4500984788 = 6B69739F10FFCA4500984788 /* PBXTextBookmark */;
6B6973A210FFCA4500984788 = 6B6973A210FFCA4500984788 /* PBXTextBookmark */;
6B8DE70D10B01BBF00DF20FB = 6B8DE70D10B01BBF00DF20FB /* PBXTextBookmark */;
@@ -995,9 +1191,9 @@
};
6B137C7E0F7FCBFE00459200 /* Recast.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {815, 9184}}";
- sepNavSelRange = "{18922, 0}";
- sepNavVisRange = "{18110, 1493}";
+ sepNavIntBoundsRect = "{{0, 0}, {815, 9920}}";
+ sepNavSelRange = "{3596, 0}";
+ sepNavVisRange = "{2909, 969}";
};
};
6B137C800F7FCBFE00459200 /* RecastLog.h */ = {
@@ -1009,17 +1205,17 @@
};
6B137C810F7FCBFE00459200 /* RecastTimer.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {915, 561}}";
- sepNavSelRange = "{1000, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {815, 513}}";
+ sepNavSelRange = "{981, 0}";
sepNavVisRange = "{0, 1186}";
sepNavWindowFrame = "{{15, 78}, {1011, 695}}";
};
};
6B137C820F7FCC1100459200 /* Recast.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {815, 4256}}";
- sepNavSelRange = "{7159, 77}";
- sepNavVisRange = "{6663, 752}";
+ sepNavIntBoundsRect = "{{0, 0}, {815, 4432}}";
+ sepNavSelRange = "{3188, 0}";
+ sepNavVisRange = "{2892, 689}";
};
};
6B137C830F7FCC1100459200 /* RecastContour.cpp */ = {
@@ -1053,9 +1249,9 @@
};
6B137C880F7FCC1100459200 /* RecastRasterization.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1195, 6144}}";
- sepNavSelRange = "{9841, 0}";
- sepNavVisRange = "{3419, 297}";
+ sepNavIntBoundsRect = "{{0, 0}, {815, 5632}}";
+ sepNavSelRange = "{1836, 0}";
+ sepNavVisRange = "{1732, 859}";
};
};
6B137C890F7FCC1100459200 /* RecastRegion.cpp */ = {
@@ -1068,15 +1264,15 @@
6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {815, 688}}";
- sepNavSelRange = "{471, 0}";
- sepNavVisRange = "{196, 476}";
+ sepNavSelRange = "{427, 0}";
+ sepNavVisRange = "{0, 549}";
};
};
6B25B6100FFA62AD004F1BC4 /* Sample.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {815, 2112}}";
- sepNavSelRange = "{2150, 0}";
- sepNavVisRange = "{1826, 688}";
+ sepNavIntBoundsRect = "{{0, 0}, {815, 2000}}";
+ sepNavSelRange = "{1310, 0}";
+ sepNavVisRange = "{1016, 982}";
};
};
6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = {
@@ -1088,9 +1284,9 @@
};
6B25B6180FFA62BE004F1BC4 /* main.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {815, 13668}}";
- sepNavSelRange = "{4244, 0}";
- sepNavVisRange = "{3980, 635}";
+ sepNavIntBoundsRect = "{{0, 0}, {1195, 13488}}";
+ sepNavSelRange = "{3186, 0}";
+ sepNavVisRange = "{3007, 310}";
};
};
6B2AEC510FFB8946005BE9CC /* Sample_TileMesh.h */ = {
@@ -1204,7 +1400,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 636";
rLen = 0;
- rLoc = 17953;
+ rLoc = 18019;
rType = 0;
vrLen = 653;
vrLoc = 17536;
@@ -1234,7 +1430,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 636";
rLen = 0;
- rLoc = 17953;
+ rLoc = 18019;
rType = 0;
vrLen = 653;
vrLoc = 17536;
@@ -1725,7 +1921,7 @@
fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
name = "DetourNavMesh.h: 446";
rLen = 0;
- rLoc = 20056;
+ rLoc = 19911;
rType = 0;
vrLen = 1563;
vrLoc = 18834;
@@ -1735,7 +1931,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1288";
rLen = 15;
- rLoc = 35081;
+ rLoc = 36235;
rType = 0;
vrLen = 913;
vrLoc = 34283;
@@ -1755,7 +1951,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1288";
rLen = 15;
- rLoc = 35081;
+ rLoc = 36235;
rType = 0;
vrLen = 913;
vrLoc = 34283;
@@ -1765,7 +1961,7 @@
fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
name = "DetourNavMesh.h: 446";
rLen = 0;
- rLoc = 20056;
+ rLoc = 19911;
rType = 0;
vrLen = 1563;
vrLoc = 18834;
@@ -1775,7 +1971,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1584";
rLen = 0;
- rLoc = 43371;
+ rLoc = 44962;
rType = 0;
vrLen = 966;
vrLoc = 44805;
@@ -1785,7 +1981,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1670";
rLen = 0;
- rLoc = 46183;
+ rLoc = 48613;
rType = 0;
vrLen = 874;
vrLoc = 45419;
@@ -1835,7 +2031,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1659";
rLen = 0;
- rLoc = 45774;
+ rLoc = 48204;
rType = 0;
vrLen = 966;
vrLoc = 44805;
@@ -1845,7 +2041,7 @@
fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
name = "DetourNavMesh.h: 439";
rLen = 0;
- rLoc = 19587;
+ rLoc = 19731;
rType = 0;
vrLen = 1637;
vrLoc = 18794;
@@ -1855,7 +2051,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1670";
rLen = 0;
- rLoc = 46183;
+ rLoc = 48613;
rType = 0;
vrLen = 874;
vrLoc = 45419;
@@ -1995,7 +2191,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 424";
rLen = 0;
- rLoc = 11866;
+ rLoc = 11932;
rType = 0;
vrLen = 455;
vrLoc = 11543;
@@ -2032,7 +2228,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 830";
rLen = 30;
- rLoc = 22885;
+ rLoc = 22951;
rType = 0;
vrLen = 710;
vrLoc = 22465;
@@ -2082,7 +2278,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 424";
rLen = 0;
- rLoc = 11866;
+ rLoc = 11932;
rType = 0;
vrLen = 455;
vrLoc = 11543;
@@ -2102,7 +2298,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 158";
rLen = 0;
- rLoc = 4845;
+ rLoc = 5216;
rType = 0;
vrLen = 691;
vrLoc = 3831;
@@ -2112,7 +2308,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 158";
rLen = 0;
- rLoc = 4845;
+ rLoc = 5216;
rType = 0;
vrLen = 646;
vrLoc = 3816;
@@ -2132,7 +2328,7 @@
comments = "error: no matching function for call to 'dtNavMesh::getPortalPoints(dtPolyRef&, dtPolyRef&, float [3], float [3], short unsigned int&, short unsigned int&) const'";
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
rLen = 0;
- rLoc = 1653;
+ rLoc = 1712;
rType = 1;
};
6B324B21111C10C700EBD2FD /* PBXTextBookmark */ = {
@@ -2140,7 +2336,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 158";
rLen = 0;
- rLoc = 4845;
+ rLoc = 5216;
rType = 0;
vrLen = 646;
vrLoc = 3816;
@@ -2150,7 +2346,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1526";
rLen = 0;
- rLoc = 41426;
+ rLoc = 42580;
rType = 0;
vrLen = 656;
vrLoc = 40827;
@@ -2170,7 +2366,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1636";
rLen = 0;
- rLoc = 44972;
+ rLoc = 46518;
rType = 0;
vrLen = 644;
vrLoc = 44542;
@@ -2180,7 +2376,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1633";
rLen = 0;
- rLoc = 44954;
+ rLoc = 46516;
rType = 0;
vrLen = 970;
vrLoc = 44297;
@@ -2240,7 +2436,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 582";
rLen = 0;
- rLoc = 18291;
+ rLoc = 18292;
rType = 0;
vrLen = 1059;
vrLoc = 17413;
@@ -2270,7 +2466,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1633";
rLen = 0;
- rLoc = 44954;
+ rLoc = 46516;
rType = 0;
vrLen = 970;
vrLoc = 44297;
@@ -2330,7 +2526,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 590";
rLen = 128;
- rLoc = 18748;
+ rLoc = 18749;
rType = 0;
vrLen = 1046;
vrLoc = 17413;
@@ -2370,7 +2566,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 582";
rLen = 0;
- rLoc = 18291;
+ rLoc = 18292;
rType = 0;
vrLen = 1059;
vrLoc = 17413;
@@ -2440,7 +2636,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 174";
rLen = 0;
- rLoc = 4573;
+ rLoc = 4944;
rType = 0;
vrLen = 717;
vrLoc = 3938;
@@ -2470,7 +2666,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 580";
rLen = 0;
- rLoc = 17579;
+ rLoc = 17580;
rType = 0;
vrLen = 889;
vrLoc = 17240;
@@ -2588,7 +2784,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 591";
rLen = 0;
- rLoc = 18036;
+ rLoc = 18037;
rType = 0;
vrLen = 894;
vrLoc = 17240;
@@ -2598,7 +2794,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 158";
rLen = 0;
- rLoc = 4845;
+ rLoc = 5216;
rType = 0;
vrLen = 793;
vrLoc = 3686;
@@ -2618,7 +2814,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 174";
rLen = 0;
- rLoc = 4573;
+ rLoc = 4944;
rType = 0;
vrLen = 717;
vrLoc = 3938;
@@ -2648,7 +2844,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 580";
rLen = 0;
- rLoc = 17579;
+ rLoc = 17580;
rType = 0;
vrLen = 889;
vrLoc = 17240;
@@ -2928,7 +3124,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 174";
rLen = 0;
- rLoc = 4573;
+ rLoc = 4944;
rType = 0;
vrLen = 714;
vrLoc = 3941;
@@ -2948,7 +3144,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 158";
rLen = 0;
- rLoc = 4108;
+ rLoc = 4479;
rType = 0;
vrLen = 739;
vrLoc = 3876;
@@ -2958,7 +3154,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 426";
rLen = 0;
- rLoc = 11884;
+ rLoc = 11950;
rType = 0;
vrLen = 816;
vrLoc = 11546;
@@ -2968,7 +3164,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 158";
rLen = 0;
- rLoc = 4108;
+ rLoc = 4479;
rType = 0;
vrLen = 757;
vrLoc = 3876;
@@ -2978,7 +3174,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 158";
rLen = 0;
- rLoc = 4108;
+ rLoc = 4479;
rType = 0;
vrLen = 758;
vrLoc = 3876;
@@ -2988,7 +3184,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 426";
rLen = 0;
- rLoc = 11884;
+ rLoc = 11950;
rType = 0;
vrLen = 816;
vrLoc = 11546;
@@ -2998,7 +3194,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 276";
rLen = 22;
- rLoc = 6946;
+ rLoc = 7317;
rType = 0;
vrLen = 1008;
vrLoc = 8088;
@@ -3008,7 +3204,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 276";
rLen = 22;
- rLoc = 6946;
+ rLoc = 7317;
rType = 0;
vrLen = 1081;
vrLoc = 8088;
@@ -3028,7 +3224,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 276";
rLen = 22;
- rLoc = 6946;
+ rLoc = 7317;
rType = 0;
vrLen = 1081;
vrLoc = 8088;
@@ -3188,7 +3384,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 905";
rLen = 1;
- rLoc = 24733;
+ rLoc = 24799;
rType = 0;
vrLen = 820;
vrLoc = 24435;
@@ -3228,7 +3424,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 912";
rLen = 51;
- rLoc = 24861;
+ rLoc = 24927;
rType = 0;
vrLen = 897;
vrLoc = 24711;
@@ -3248,7 +3444,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 912";
rLen = 0;
- rLoc = 24866;
+ rLoc = 24932;
rType = 0;
vrLen = 898;
vrLoc = 24711;
@@ -3268,7 +3464,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1663";
rLen = 0;
- rLoc = 45359;
+ rLoc = 46905;
rType = 0;
vrLen = 1061;
vrLoc = 44826;
@@ -3278,7 +3474,7 @@
fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
name = "DetourNavMesh.h: 460";
rLen = 0;
- rLoc = 20010;
+ rLoc = 19865;
rType = 0;
vrLen = 1696;
vrLoc = 19209;
@@ -3288,7 +3484,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1559";
rLen = 0;
- rLoc = 41900;
+ rLoc = 44176;
rType = 0;
vrLen = 1065;
vrLoc = 41625;
@@ -3298,7 +3494,7 @@
fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
name = "DetourNavMesh.h: 460";
rLen = 0;
- rLoc = 20010;
+ rLoc = 19865;
rType = 0;
vrLen = 1708;
vrLoc = 19209;
@@ -3308,7 +3504,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1659";
rLen = 0;
- rLoc = 45101;
+ rLoc = 46647;
rType = 0;
vrLen = 1099;
vrLoc = 44826;
@@ -3318,7 +3514,7 @@
fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
name = "DetourNavMesh.h: 463";
rLen = 0;
- rLoc = 20176;
+ rLoc = 20240;
rType = 0;
vrLen = 1706;
vrLoc = 19209;
@@ -3328,7 +3524,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 915";
rLen = 0;
- rLoc = 24979;
+ rLoc = 25045;
rType = 0;
vrLen = 820;
vrLoc = 24435;
@@ -3348,7 +3544,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 905";
rLen = 1;
- rLoc = 24733;
+ rLoc = 24799;
rType = 0;
vrLen = 820;
vrLoc = 24435;
@@ -3438,7 +3634,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 906";
rLen = 0;
- rLoc = 24734;
+ rLoc = 24800;
rType = 0;
vrLen = 820;
vrLoc = 24435;
@@ -3488,7 +3684,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 906";
rLen = 0;
- rLoc = 24734;
+ rLoc = 24800;
rType = 0;
vrLen = 820;
vrLoc = 24435;
@@ -3667,7 +3863,7 @@
ignoreCount = 0;
lineNumber = 27;
location = Recast;
- modificationTime = 287078558.541171;
+ modificationTime = 287658767.511823;
state = 1;
};
6B324BE7111C511900EBD2FD /* PBXTextBookmark */ = {
@@ -4005,7 +4201,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 480";
rLen = 0;
- rLoc = 14895;
+ rLoc = 14896;
rType = 0;
vrLen = 743;
vrLoc = 14600;
@@ -4213,7 +4409,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 480";
rLen = 0;
- rLoc = 14895;
+ rLoc = 14896;
rType = 0;
vrLen = 743;
vrLoc = 14600;
@@ -4592,9 +4788,9 @@
};
6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {815, 4288}}";
- sepNavSelRange = "{2503, 0}";
- sepNavVisRange = "{2175, 546}";
+ sepNavIntBoundsRect = "{{0, 0}, {815, 4112}}";
+ sepNavSelRange = "{5520, 0}";
+ sepNavVisRange = "{5327, 620}";
};
};
6B324C6D111C5DDC00EBD2FD /* PBXTextBookmark */ = {
@@ -4621,7 +4817,7 @@
isa = PBXTextBookmark;
fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
rLen = 0;
- rLoc = 2147483044;
+ rLoc = 2147483257;
rType = 0;
};
6B324C70111C5DDC00EBD2FD /* PBXTextBookmark */ = {
@@ -4907,7 +5103,7 @@
fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
name = "ConvexVolumeTool.cpp: 77";
rLen = 343;
- rLoc = 2105;
+ rLoc = 2363;
rType = 0;
vrLen = 690;
vrLoc = 1887;
@@ -4957,7 +5153,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 477";
rLen = 0;
- rLoc = 14895;
+ rLoc = 14896;
rType = 0;
vrLen = 1018;
vrLoc = 14408;
@@ -4967,7 +5163,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 477";
rLen = 0;
- rLoc = 14895;
+ rLoc = 14896;
rType = 0;
vrLen = 1018;
vrLoc = 14408;
@@ -4977,7 +5173,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 477";
rLen = 0;
- rLoc = 14895;
+ rLoc = 14896;
rType = 0;
vrLen = 1018;
vrLoc = 14408;
@@ -4994,7 +5190,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 477";
rLen = 0;
- rLoc = 14895;
+ rLoc = 14896;
rType = 0;
vrLen = 1018;
vrLoc = 14408;
@@ -5214,7 +5410,7 @@
fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
name = "ConvexVolumeTool.cpp: 77";
rLen = 343;
- rLoc = 2105;
+ rLoc = 2363;
rType = 0;
vrLen = 686;
vrLoc = 1891;
@@ -5244,7 +5440,7 @@
fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
name = "ConvexVolumeTool.cpp: 146";
rLen = 0;
- rLoc = 3569;
+ rLoc = 3827;
rType = 0;
vrLen = 808;
vrLoc = 3127;
@@ -5254,7 +5450,7 @@
fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
name = "ConvexVolumeTool.cpp: 142";
rLen = 0;
- rLoc = 3517;
+ rLoc = 3775;
rType = 0;
vrLen = 804;
vrLoc = 3127;
@@ -5264,7 +5460,7 @@
fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
name = "ConvexVolumeTool.cpp: 96";
rLen = 0;
- rLoc = 2553;
+ rLoc = 2811;
rType = 0;
vrLen = 413;
vrLoc = 2421;
@@ -5274,7 +5470,7 @@
fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
name = "ConvexVolumeTool.cpp: 100";
rLen = 0;
- rLoc = 2605;
+ rLoc = 2863;
rType = 0;
vrLen = 413;
vrLoc = 2421;
@@ -5284,7 +5480,7 @@
fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
name = "ConvexVolumeTool.cpp: 97";
rLen = 0;
- rLoc = 2579;
+ rLoc = 2837;
rType = 0;
vrLen = 413;
vrLoc = 2421;
@@ -5294,7 +5490,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 473";
rLen = 262;
- rLoc = 14633;
+ rLoc = 14634;
rType = 0;
vrLen = 1077;
vrLoc = 14402;
@@ -5322,7 +5518,7 @@
fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
name = "ConvexVolumeTool.cpp: 97";
rLen = 0;
- rLoc = 2579;
+ rLoc = 2837;
rType = 0;
vrLen = 413;
vrLoc = 2421;
@@ -5332,7 +5528,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 473";
rLen = 262;
- rLoc = 14633;
+ rLoc = 14634;
rType = 0;
vrLen = 1077;
vrLoc = 14402;
@@ -5534,7 +5730,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 903";
rLen = 0;
- rLoc = 24730;
+ rLoc = 24796;
rType = 0;
vrLen = 728;
vrLoc = 24435;
@@ -5544,7 +5740,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 571";
rLen = 644;
- rLoc = 17398;
+ rLoc = 17399;
rType = 0;
vrLen = 996;
vrLoc = 17150;
@@ -5594,7 +5790,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 903";
rLen = 0;
- rLoc = 24730;
+ rLoc = 24796;
rType = 0;
vrLen = 728;
vrLoc = 24435;
@@ -5614,7 +5810,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 571";
rLen = 644;
- rLoc = 17398;
+ rLoc = 17399;
rType = 0;
vrLen = 996;
vrLoc = 17150;
@@ -5684,11 +5880,1968 @@
fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
name = "ConvexVolumeTool.cpp: 94";
rLen = 0;
- rLoc = 2503;
+ rLoc = 2761;
rType = 0;
vrLen = 546;
vrLoc = 2175;
};
+ 6B324D0F1121C78000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */;
+ name = "RecastTimer.h: 22";
+ rLen = 0;
+ rLoc = 981;
+ rType = 0;
+ vrLen = 1186;
+ vrLoc = 0;
+ };
+ 6B324D101121C78000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */;
+ name = "RecastTimer.cpp: 24";
+ rLen = 0;
+ rLoc = 427;
+ rType = 0;
+ vrLen = 549;
+ vrLoc = 0;
+ };
+ 6B324D111121C78000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 83";
+ rLen = 0;
+ rLoc = 2536;
+ rType = 0;
+ vrLen = 546;
+ vrLoc = 2175;
+ };
+ 6B324D121121C78000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 83";
+ rLen = 0;
+ rLoc = 2536;
+ rType = 0;
+ vrLen = 546;
+ vrLoc = 2175;
+ };
+ 6B324D131121C78000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */;
+ name = "RecastTimer.cpp: 25";
+ rLen = 0;
+ rLoc = 428;
+ rType = 0;
+ vrLen = 583;
+ vrLoc = 129;
+ };
+ 6B324D141121C78000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C810F7FCBFE00459200 /* RecastTimer.h */;
+ name = "RecastTimer.h: 22";
+ rLen = 0;
+ rLoc = 981;
+ rType = 0;
+ vrLen = 1186;
+ vrLoc = 0;
+ };
+ 6B324D151121C78000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */;
+ name = "RecastTimer.cpp: 24";
+ rLen = 0;
+ rLoc = 427;
+ rType = 0;
+ vrLen = 549;
+ vrLoc = 0;
+ };
+ 6B324D161121C78000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 40";
+ rLen = 1046;
+ rLoc = 1315;
+ rType = 0;
+ vrLen = 914;
+ vrLoc = 1203;
+ };
+ 6B324D191121CC6800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 49";
+ rLen = 0;
+ rLoc = 1673;
+ rType = 0;
+ vrLen = 894;
+ vrLoc = 1203;
+ };
+ 6B324D1B1121CC8100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 40";
+ rLen = 0;
+ rLoc = 1347;
+ rType = 0;
+ vrLen = 894;
+ vrLoc = 1203;
+ };
+ 6B324D1C1121CCCE00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 55";
+ rLen = 0;
+ rLoc = 1859;
+ rType = 0;
+ vrLen = 894;
+ vrLoc = 1203;
+ };
+ 6B324D1D1121CCD200EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 55";
+ rLen = 0;
+ rLoc = 1859;
+ rType = 0;
+ vrLen = 869;
+ vrLoc = 1315;
+ };
+ 6B324D1E1121CCD400EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */;
+ name = "RecastArea.cpp: 229";
+ rLen = 0;
+ rLoc = 6514;
+ rType = 0;
+ vrLen = 523;
+ vrLoc = 5850;
+ };
+ 6B324D1F1121CCD400EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 55";
+ rLen = 0;
+ rLoc = 1859;
+ rType = 0;
+ vrLen = 455;
+ vrLoc = 1642;
+ };
+ 6B324D211121CD0C00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 55";
+ rLen = 0;
+ rLoc = 1859;
+ rType = 0;
+ vrLen = 903;
+ vrLoc = 1314;
+ };
+ 6B324D221121CD0C00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 534";
+ rLen = 0;
+ rLoc = 18922;
+ rType = 0;
+ vrLen = 1493;
+ vrLoc = 18110;
+ };
+ 6B324D231121CD0C00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 55";
+ rLen = 0;
+ rLoc = 1859;
+ rType = 0;
+ vrLen = 903;
+ vrLoc = 1314;
+ };
+ 6B324D241121CD0C00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 55";
+ rLen = 0;
+ rLoc = 2400;
+ rType = 0;
+ vrLen = 919;
+ vrLoc = 1897;
+ };
+ 6B324D261121CD2000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 45";
+ rLen = 6;
+ rLoc = 2212;
+ rType = 0;
+ vrLen = 1026;
+ vrLoc = 1897;
+ };
+ 6B324D271121CD2000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 188";
+ rLen = 0;
+ rLoc = 4244;
+ rType = 0;
+ vrLen = 730;
+ vrLoc = 3933;
+ };
+ 6B324D281121CD2000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 45";
+ rLen = 6;
+ rLoc = 2212;
+ rType = 0;
+ vrLen = 1026;
+ vrLoc = 1897;
+ };
+ 6B324D291121CD2000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 841;
+ vrLoc = 2874;
+ };
+ 6B324D2B1121CD2900EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 846;
+ vrLoc = 2874;
+ };
+ 6B324D2C1121CD3200EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 846;
+ vrLoc = 2874;
+ };
+ 6B324D2D1121CD3600EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 896;
+ vrLoc = 2741;
+ };
+ 6B324D2E1121CD9300EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 55";
+ rLen = 0;
+ rLoc = 1859;
+ rType = 0;
+ vrLen = 473;
+ vrLoc = 1611;
+ };
+ 6B324D2F1121CD9300EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 218;
+ vrLoc = 3081;
+ };
+ 6B324D301121CDAF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 632;
+ vrLoc = 2874;
+ };
+ 6B324D311121CDAF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ rLen = 3;
+ rLoc = 7431;
+ rType = 0;
+ };
+ 6B324D321121CDAF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 632;
+ vrLoc = 2874;
+ };
+ 6B324D331121CDAF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 281";
+ rLen = 0;
+ rLoc = 7469;
+ rType = 0;
+ vrLen = 781;
+ vrLoc = 6783;
+ };
+ 6B324D361121CFCF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 281";
+ rLen = 0;
+ rLoc = 7469;
+ rType = 0;
+ vrLen = 781;
+ vrLoc = 6783;
+ };
+ 6B324D371121CFCF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 50";
+ rLen = 0;
+ rLoc = 2400;
+ rType = 0;
+ vrLen = 1026;
+ vrLoc = 1897;
+ };
+ 6B324D381121CFCF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */;
+ name = "Recast.cpp: 256";
+ rLen = 322;
+ rLoc = 6836;
+ rType = 0;
+ vrLen = 750;
+ vrLoc = 6665;
+ };
+ 6B324D391121CFCF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 571";
+ rLen = 644;
+ rLoc = 17399;
+ rType = 0;
+ vrLen = 996;
+ vrLoc = 17150;
+ };
+ 6B324D3A1121CFCF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 281";
+ rLen = 0;
+ rLoc = 7469;
+ rType = 0;
+ vrLen = 781;
+ vrLoc = 6783;
+ };
+ 6B324D3B1121CFCF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 50";
+ rLen = 0;
+ rLoc = 2400;
+ rType = 0;
+ vrLen = 1026;
+ vrLoc = 1897;
+ };
+ 6B324D3C1121CFCF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */;
+ name = "Recast.cpp: 256";
+ rLen = 322;
+ rLoc = 6836;
+ rType = 0;
+ vrLen = 750;
+ vrLoc = 6665;
+ };
+ 6B324D3D1121CFCF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 442";
+ rLen = 0;
+ rLoc = 13214;
+ rType = 0;
+ vrLen = 1133;
+ vrLoc = 13221;
+ };
+ 6B324D3E1121CFD900EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 445";
+ rLen = 0;
+ rLoc = 13217;
+ rType = 0;
+ vrLen = 1168;
+ vrLoc = 13221;
+ };
+ 6B324D3F1121CFE300EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 218;
+ vrLoc = 3081;
+ };
+ 6B324D401121CFE300EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 445";
+ rLen = 0;
+ rLoc = 13217;
+ rType = 0;
+ vrLen = 156;
+ vrLoc = 13514;
+ };
+ 6B324D421121CFFD00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 445";
+ rLen = 0;
+ rLoc = 13217;
+ rType = 0;
+ vrLen = 1232;
+ vrLoc = 13003;
+ };
+ 6B324D431121CFFD00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 50";
+ rLen = 0;
+ rLoc = 2400;
+ rType = 0;
+ vrLen = 1026;
+ vrLoc = 1897;
+ };
+ 6B324D441121CFFD00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 445";
+ rLen = 0;
+ rLoc = 13217;
+ rType = 0;
+ vrLen = 1232;
+ vrLoc = 13003;
+ };
+ 6B324D451121CFFD00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 47";
+ rLen = 0;
+ rLoc = 2221;
+ rType = 0;
+ vrLen = 1003;
+ vrLoc = 1897;
+ };
+ 6B324D461121D00800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 52";
+ rLen = 0;
+ rLoc = 2400;
+ rType = 0;
+ vrLen = 1003;
+ vrLoc = 1897;
+ };
+ 6B324D471121D00D00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 52";
+ rLen = 0;
+ rLoc = 2400;
+ rType = 0;
+ vrLen = 1090;
+ vrLoc = 1728;
+ };
+ 6B324D491121D04800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 55";
+ rLen = 0;
+ rLoc = 2400;
+ rType = 0;
+ vrLen = 1080;
+ vrLoc = 1728;
+ };
+ 6B324D4A1121D0AB00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 445";
+ rLen = 0;
+ rLoc = 13217;
+ rType = 0;
+ vrLen = 209;
+ vrLoc = 13535;
+ };
+ 6B324D4B1121D0AB00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 59";
+ rLen = 0;
+ rLoc = 2403;
+ rType = 0;
+ vrLen = 447;
+ vrLoc = 2360;
+ };
+ 6B324D4C1121D0AE00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 47";
+ rLen = 0;
+ rLoc = 2220;
+ rType = 0;
+ vrLen = 878;
+ vrLoc = 1982;
+ };
+ 6B324D4D1121D13500EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 51";
+ rLen = 0;
+ rLoc = 2400;
+ rType = 0;
+ vrLen = 888;
+ vrLoc = 1982;
+ };
+ 6B324D4F1121D61A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 53";
+ rLen = 17;
+ rLoc = 2421;
+ rType = 0;
+ vrLen = 892;
+ vrLoc = 1982;
+ };
+ 6B324D501121D61A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */;
+ name = "RecastRasterization.cpp: 50";
+ rLen = 0;
+ rLoc = 1836;
+ rType = 0;
+ vrLen = 859;
+ vrLoc = 1732;
+ };
+ 6B324D511121D61A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */;
+ name = "Recast.cpp: 120";
+ rLen = 0;
+ rLoc = 3188;
+ rType = 0;
+ vrLen = 689;
+ vrLoc = 2892;
+ };
+ 6B324D521121D61A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 346";
+ rLen = 0;
+ rLoc = 9658;
+ rType = 0;
+ vrLen = 710;
+ vrLoc = 9965;
+ };
+ 6B324D531121D61A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 53";
+ rLen = 17;
+ rLoc = 2421;
+ rType = 0;
+ vrLen = 892;
+ vrLoc = 1982;
+ };
+ 6B324D541121D61A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */;
+ name = "RecastRasterization.cpp: 50";
+ rLen = 0;
+ rLoc = 1836;
+ rType = 0;
+ vrLen = 859;
+ vrLoc = 1732;
+ };
+ 6B324D551121D61A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C820F7FCC1100459200 /* Recast.cpp */;
+ name = "Recast.cpp: 120";
+ rLen = 0;
+ rLoc = 3188;
+ rType = 0;
+ vrLen = 689;
+ vrLoc = 2892;
+ };
+ 6B324D561121D61A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 351";
+ rLen = 0;
+ rLoc = 9700;
+ rType = 0;
+ vrLen = 817;
+ vrLoc = 9965;
+ };
+ 6B324D581121D6A600EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 352";
+ rLen = 0;
+ rLoc = 9702;
+ rType = 0;
+ vrLen = 780;
+ vrLoc = 9965;
+ };
+ 6B324D591121D70600EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 52";
+ rLen = 0;
+ rLoc = 2403;
+ rType = 0;
+ vrLen = 440;
+ vrLoc = 2184;
+ };
+ 6B324D5A1121D70600EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 352";
+ rLen = 0;
+ rLoc = 9702;
+ rType = 0;
+ vrLen = 308;
+ vrLoc = 10109;
+ };
+ 6B324D5C1121D71800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 352";
+ rLen = 0;
+ rLoc = 9702;
+ rType = 0;
+ vrLen = 779;
+ vrLoc = 9962;
+ };
+ 6B324D5D1121D71800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 911;
+ vrLoc = 2809;
+ };
+ 6B324D5E1121D71800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 352";
+ rLen = 0;
+ rLoc = 9702;
+ rType = 0;
+ vrLen = 779;
+ vrLoc = 9962;
+ };
+ 6B324D5F1121D71800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 923;
+ vrLoc = 2809;
+ };
+ 6B324D601121D71A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 957;
+ vrLoc = 2809;
+ };
+ 6B324D611121D72100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 352";
+ rLen = 0;
+ rLoc = 9702;
+ rType = 0;
+ vrLen = 308;
+ vrLoc = 10109;
+ };
+ 6B324D621121D72100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 360;
+ vrLoc = 3007;
+ };
+ 6B324D631121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 95";
+ rLen = 0;
+ rLoc = 3596;
+ rType = 0;
+ vrLen = 969;
+ vrLoc = 2909;
+ };
+ 6B324D641121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 893;
+ vrLoc = 2738;
+ };
+ 6B324D651121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */;
+ name = "Sample_SoloMeshTiled.cpp: 1044";
+ rLen = 0;
+ rLoc = 30613;
+ rType = 0;
+ vrLen = 1240;
+ vrLoc = 30352;
+ };
+ 6B324D661121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 427";
+ rLen = 0;
+ rLoc = 13214;
+ rType = 0;
+ vrLen = 1300;
+ vrLoc = 12680;
+ };
+ 6B324D671121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 469";
+ rLen = 0;
+ rLoc = 20249;
+ rType = 0;
+ vrLen = 1613;
+ vrLoc = 19392;
+ };
+ 6B324D681121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1587";
+ rLen = 0;
+ rLoc = 43893;
+ rType = 0;
+ vrLen = 1198;
+ vrLoc = 42930;
+ };
+ 6B324D691121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 913;
+ vrLoc = 2738;
+ };
+ 6B324D6A1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B137C7E0F7FCBFE00459200 /* Recast.h */;
+ name = "Recast.h: 95";
+ rLen = 0;
+ rLoc = 3596;
+ rType = 0;
+ vrLen = 969;
+ vrLoc = 2909;
+ };
+ 6B324D6B1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 893;
+ vrLoc = 2738;
+ };
+ 6B324D6C1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */;
+ name = "Sample_SoloMeshTiled.cpp: 1044";
+ rLen = 0;
+ rLoc = 30613;
+ rType = 0;
+ vrLen = 1240;
+ vrLoc = 30352;
+ };
+ 6B324D6D1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
+ name = "Sample_SoloMeshSimple.cpp: 427";
+ rLen = 0;
+ rLoc = 13214;
+ rType = 0;
+ vrLen = 1300;
+ vrLoc = 12680;
+ };
+ 6B324D6E1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1145";
+ rLen = 0;
+ rLoc = 31330;
+ rType = 0;
+ vrLen = 948;
+ vrLoc = 30982;
+ };
+ 6B324D6F1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 409";
+ rLen = 16;
+ rLoc = 18109;
+ rType = 0;
+ vrLen = 1069;
+ vrLoc = 17040;
+ };
+ 6B324D701121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1180";
+ rLen = 0;
+ rLoc = 32326;
+ rType = 0;
+ vrLen = 1110;
+ vrLoc = 31505;
+ };
+ 6B324D711121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 465";
+ rLen = 0;
+ rLoc = 20249;
+ rType = 0;
+ vrLen = 1662;
+ vrLoc = 19392;
+ };
+ 6B324D721121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1180";
+ rLen = 0;
+ rLoc = 32326;
+ rType = 0;
+ vrLen = 1087;
+ vrLoc = 31670;
+ };
+ 6B324D731121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 465";
+ rLen = 0;
+ rLoc = 20249;
+ rType = 0;
+ vrLen = 1662;
+ vrLoc = 19392;
+ };
+ 6B324D741121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1561";
+ rLen = 0;
+ rLoc = 44176;
+ rType = 0;
+ vrLen = 1132;
+ vrLoc = 41798;
+ };
+ 6B324D751121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 465";
+ rLen = 193;
+ rLoc = 20249;
+ rType = 0;
+ vrLen = 1702;
+ vrLoc = 19392;
+ };
+ 6B324D761121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1582";
+ rLen = 0;
+ rLoc = 43909;
+ rType = 0;
+ vrLen = 1310;
+ vrLoc = 42860;
+ };
+ 6B324D771121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 467";
+ rLen = 0;
+ rLoc = 20423;
+ rType = 0;
+ vrLen = 1734;
+ vrLoc = 19392;
+ };
+ 6B324D781121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1591";
+ rLen = 0;
+ rLoc = 44135;
+ rType = 0;
+ vrLen = 1186;
+ vrLoc = 43315;
+ };
+ 6B324D791121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 465";
+ rLen = 0;
+ rLoc = 20249;
+ rType = 0;
+ vrLen = 1754;
+ vrLoc = 19392;
+ };
+ 6B324D7A1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1592";
+ rLen = 0;
+ rLoc = 44143;
+ rType = 0;
+ vrLen = 1198;
+ vrLoc = 43315;
+ };
+ 6B324D7B1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 469";
+ rLen = 0;
+ rLoc = 20423;
+ rType = 0;
+ vrLen = 1634;
+ vrLoc = 19392;
+ };
+ 6B324D7C1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1598";
+ rLen = 0;
+ rLoc = 44564;
+ rType = 0;
+ vrLen = 943;
+ vrLoc = 43466;
+ };
+ 6B324D7D1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 465";
+ rLen = 0;
+ rLoc = 20249;
+ rType = 0;
+ vrLen = 1669;
+ vrLoc = 19392;
+ };
+ 6B324D7E1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1587";
+ rLen = 0;
+ rLoc = 43893;
+ rType = 0;
+ vrLen = 1198;
+ vrLoc = 42930;
+ };
+ 6B324D7F1121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 469";
+ rLen = 0;
+ rLoc = 20249;
+ rType = 0;
+ vrLen = 1613;
+ vrLoc = 19392;
+ };
+ 6B324D801121DE7A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1605";
+ rLen = 0;
+ rLoc = 44552;
+ rType = 0;
+ vrLen = 946;
+ vrLoc = 43517;
+ };
+ 6B324D8111253B8E00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 468";
+ rLen = 0;
+ rLoc = 20414;
+ rType = 0;
+ vrLen = 1681;
+ vrLoc = 19392;
+ };
+ 6B324D8211253B8E00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1582";
+ rLen = 0;
+ rLoc = 43893;
+ rType = 0;
+ vrLen = 1338;
+ vrLoc = 42378;
+ };
+ 6B324D8311253B8E00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1582";
+ rLen = 0;
+ rLoc = 43893;
+ rType = 0;
+ vrLen = 1338;
+ vrLoc = 42378;
+ };
+ 6B324D8411253B8E00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 468";
+ rLen = 0;
+ rLoc = 20414;
+ rType = 0;
+ vrLen = 1681;
+ vrLoc = 19392;
+ };
+ 6B324D8511253B8E00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1685";
+ rLen = 0;
+ rLoc = 46907;
+ rType = 0;
+ vrLen = 1065;
+ vrLoc = 45499;
+ };
+ 6B324D8611253BD300EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1669";
+ rLen = 0;
+ rLoc = 46501;
+ rType = 0;
+ vrLen = 1095;
+ vrLoc = 44612;
+ };
+ 6B324D8711253FD300EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1171";
+ rLen = 0;
+ rLoc = 32322;
+ rType = 0;
+ vrLen = 1099;
+ vrLoc = 31289;
+ };
+ 6B324D92112542DA00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 461";
+ rLen = 0;
+ rLoc = 20013;
+ rType = 0;
+ vrLen = 1683;
+ vrLoc = 19392;
+ };
+ 6B324D93112542DA00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1167";
+ rLen = 0;
+ rLoc = 31978;
+ rType = 0;
+ vrLen = 1128;
+ vrLoc = 31050;
+ };
+ 6B324D94112542DA00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1202";
+ rLen = 0;
+ rLoc = 32855;
+ rType = 0;
+ vrLen = 703;
+ vrLoc = 32438;
+ };
+ 6B324D95112542DA00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 467";
+ rLen = 0;
+ rLoc = 20342;
+ rType = 0;
+ vrLen = 1682;
+ vrLoc = 19392;
+ };
+ 6B324D96112542DA00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1167";
+ rLen = 0;
+ rLoc = 31978;
+ rType = 0;
+ vrLen = 1128;
+ vrLoc = 31050;
+ };
+ 6B324D97112542DA00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 461";
+ rLen = 0;
+ rLoc = 20013;
+ rType = 0;
+ vrLen = 1683;
+ vrLoc = 19392;
+ };
+ 6B324D98112542DA00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1936";
+ rLen = 0;
+ rLoc = 54215;
+ rType = 0;
+ vrLen = 1061;
+ vrLoc = 52347;
+ };
+ 6B324DAD112548EF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "error: 'parent' was not declared in this scope";
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ rLen = 1;
+ rLoc = 2182;
+ rType = 1;
+ };
+ 6B324DAE112548EF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 2155";
+ rLen = 0;
+ rLoc = 60221;
+ rType = 0;
+ vrLen = 917;
+ vrLoc = 59111;
+ };
+ 6B324DB11125492F00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 2158";
+ rLen = 0;
+ rLoc = 60362;
+ rType = 0;
+ vrLen = 917;
+ vrLoc = 59111;
+ };
+ 6B324DB21125492F00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "warning: unused variable 's'";
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ rLen = 1;
+ rLoc = 230;
+ rType = 1;
+ };
+ 6B324DB31125492F00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 2158";
+ rLen = 0;
+ rLoc = 60362;
+ rType = 0;
+ vrLen = 917;
+ vrLoc = 59111;
+ };
+ 6B324DB41125492F00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 231";
+ rLen = 0;
+ rLoc = 5520;
+ rType = 0;
+ vrLen = 539;
+ vrLoc = 5313;
+ };
+ 6B324DB51125494100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 231";
+ rLen = 0;
+ rLoc = 5520;
+ rType = 0;
+ vrLen = 539;
+ vrLoc = 5313;
+ };
+ 6B324DB91125495F00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 231";
+ rLen = 0;
+ rLoc = 5520;
+ rType = 0;
+ vrLen = 620;
+ vrLoc = 5327;
+ };
+ 6B324DBD112549C000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 231";
+ rLen = 0;
+ rLoc = 5520;
+ rType = 0;
+ vrLen = 620;
+ vrLoc = 5327;
+ };
+ 6B324DBF11254A8400EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 231";
+ rLen = 0;
+ rLoc = 5520;
+ rType = 0;
+ vrLen = 620;
+ vrLoc = 5327;
+ };
+ 6B324DC211254B0C00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 146";
+ rLen = 0;
+ rLoc = 3186;
+ rType = 0;
+ vrLen = 310;
+ vrLoc = 3007;
+ };
+ 6B324DC311254B0C00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 231";
+ rLen = 0;
+ rLoc = 5520;
+ rType = 0;
+ vrLen = 226;
+ vrLoc = 5367;
+ };
+ 6B324DC411254B0C00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ rLen = 0;
+ rLoc = 1179;
+ rType = 1;
+ };
+ 6B324DC511254B0C00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 231";
+ rLen = 0;
+ rLoc = 5520;
+ rType = 0;
+ vrLen = 226;
+ vrLoc = 5367;
+ };
+ 6B324DC611254B0C00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1211";
+ rLen = 0;
+ rLoc = 33290;
+ rType = 0;
+ vrLen = 741;
+ vrLoc = 32759;
+ };
+ 6B324DC911254B2E00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B324C65111C5D9A00EBD2FD /* ConvexVolumeTool.cpp */;
+ name = "ConvexVolumeTool.cpp: 231";
+ rLen = 0;
+ rLoc = 5520;
+ rType = 0;
+ vrLen = 620;
+ vrLoc = 5327;
+ };
+ 6B324DCA11254B2E00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "error: 'h' was not declared in this scope";
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ rLen = 1;
+ rLoc = 1239;
+ rType = 1;
+ };
+ 6B324DCB11254B2E00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1211";
+ rLen = 0;
+ rLoc = 33289;
+ rType = 0;
+ vrLen = 797;
+ vrLoc = 32907;
+ };
+ 6B324DCD11254E0400EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 375";
+ rLen = 11;
+ rLoc = 16754;
+ rType = 0;
+ vrLen = 1052;
+ vrLoc = 16496;
+ };
+ 6B324DCE11254E0400EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1213";
+ rLen = 0;
+ rLoc = 33302;
+ rType = 0;
+ vrLen = 834;
+ vrLoc = 32907;
+ };
+ 6B324DCF11254E0400EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1213";
+ rLen = 0;
+ rLoc = 33302;
+ rType = 0;
+ vrLen = 834;
+ vrLoc = 32907;
+ };
+ 6B324DD011254E0400EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 375";
+ rLen = 11;
+ rLoc = 16754;
+ rType = 0;
+ vrLen = 1052;
+ vrLoc = 16496;
+ };
+ 6B324DD111254E0400EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1221";
+ rLen = 0;
+ rLoc = 33495;
+ rType = 0;
+ vrLen = 869;
+ vrLoc = 32785;
+ };
+ 6B324DD311254EE300EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1210";
+ rLen = 0;
+ rLoc = 33118;
+ rType = 0;
+ vrLen = 869;
+ vrLoc = 32785;
+ };
+ 6B324DD81125503700EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1134";
+ rLen = 0;
+ rLoc = 30960;
+ rType = 0;
+ vrLen = 856;
+ vrLoc = 30549;
+ };
+ 6B324DDE112550BF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1136";
+ rLen = 0;
+ rLoc = 30966;
+ rType = 0;
+ vrLen = 804;
+ vrLoc = 30700;
+ };
+ 6B324DE21125511B00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 375";
+ rLen = 11;
+ rLoc = 16754;
+ rType = 0;
+ vrLen = 1411;
+ vrLoc = 20003;
+ };
+ 6B324DE31125511B00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 120";
+ rLen = 0;
+ rLoc = 3580;
+ rType = 0;
+ vrLen = 535;
+ vrLoc = 3302;
+ };
+ 6B324DE41125511B00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 120";
+ rLen = 0;
+ rLoc = 3580;
+ rType = 0;
+ vrLen = 535;
+ vrLoc = 3302;
+ };
+ 6B324DE51125511B00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 375";
+ rLen = 11;
+ rLoc = 16754;
+ rType = 0;
+ vrLen = 1411;
+ vrLoc = 20003;
+ };
+ 6B324DE61125511B00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 123";
+ rLen = 0;
+ rLoc = 3583;
+ rType = 0;
+ vrLen = 528;
+ vrLoc = 3302;
+ };
+ 6B324DE8112552C200EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 124";
+ rLen = 0;
+ rLoc = 3607;
+ rType = 0;
+ vrLen = 552;
+ vrLoc = 3302;
+ };
+ 6B324DE9112552C200EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */;
+ name = "Sample.h: 31";
+ rLen = 21;
+ rLoc = 1194;
+ rType = 0;
+ vrLen = 997;
+ vrLoc = 1016;
+ };
+ 6B324DEA112552C200EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 286";
+ rLen = 0;
+ rLoc = 7602;
+ rType = 0;
+ vrLen = 1030;
+ vrLoc = 6807;
+ };
+ 6B324DEB112552C200EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 124";
+ rLen = 0;
+ rLoc = 3607;
+ rType = 0;
+ vrLen = 552;
+ vrLoc = 3302;
+ };
+ 6B324DEC112552C200EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */;
+ name = "Sample.h: 31";
+ rLen = 21;
+ rLoc = 1194;
+ rType = 0;
+ vrLen = 997;
+ vrLoc = 1016;
+ };
+ 6B324DED112552C200EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 286";
+ rLen = 0;
+ rLoc = 7602;
+ rType = 0;
+ vrLen = 971;
+ vrLoc = 6807;
+ };
+ 6B324DEF112552DE00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 286";
+ rLen = 0;
+ rLoc = 7602;
+ rType = 0;
+ vrLen = 972;
+ vrLoc = 6807;
+ };
+ 6B324DF11125530F00EBD2FD /* DetourNavMesh.cpp:1212 */ = {
+ isa = PBXFileBreakpoint;
+ actions = (
+ );
+ breakpointStyle = 0;
+ continueAfterActions = 0;
+ countType = 0;
+ delayBeforeContinue = 0;
+ fileReference = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ functionName = "dtNavMesh::findPath(dtPolyRef startRef, dtPolyRef endRef, const float* startPos, const float* endPos, dtQueryFilter* filter, dtPolyRef* path, const int maxPathSize)";
+ hitCount = 1;
+ ignoreCount = 0;
+ lineNumber = 1212;
+ location = Recast;
+ modificationTime = 287658775.008817;
+ state = 1;
+ };
+ 6B324DF21125531100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 286";
+ rLen = 0;
+ rLoc = 7602;
+ rType = 0;
+ vrLen = 972;
+ vrLoc = 6807;
+ };
+ 6B324DF31125531100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 124";
+ rLen = 0;
+ rLoc = 3607;
+ rType = 0;
+ vrLen = 528;
+ vrLoc = 3302;
+ };
+ 6B324DF41125531100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 286";
+ rLen = 0;
+ rLoc = 7602;
+ rType = 0;
+ vrLen = 972;
+ vrLoc = 6807;
+ };
+ 6B324DF51125531100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1212";
+ rLen = 0;
+ rLoc = 33110;
+ rType = 0;
+ vrLen = 852;
+ vrLoc = 32686;
+ };
+ 6B324DF81125533B00EBD2FD /* NavMeshTesterTool.cpp:297 */ = {
+ isa = PBXFileBreakpoint;
+ actions = (
+ );
+ breakpointStyle = 0;
+ continueAfterActions = 0;
+ countType = 0;
+ delayBeforeContinue = 0;
+ fileReference = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ functionName = "NavMeshTesterTool::recalc()";
+ hitCount = 1;
+ ignoreCount = 0;
+ lineNumber = 297;
+ location = Recast;
+ modificationTime = 287658818.519053;
+ state = 1;
+ };
+ 6B324DF91125534000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1212";
+ rLen = 0;
+ rLoc = 33110;
+ rType = 0;
+ vrLen = 861;
+ vrLoc = 32772;
+ };
+ 6B324DFA1125534000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 286";
+ rLen = 0;
+ rLoc = 7602;
+ rType = 0;
+ vrLen = 972;
+ vrLoc = 6807;
+ };
+ 6B324DFB1125534000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1212";
+ rLen = 0;
+ rLoc = 33110;
+ rType = 0;
+ vrLen = 861;
+ vrLoc = 32772;
+ };
+ 6B324DFC1125534000EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 286";
+ rLen = 0;
+ rLoc = 7602;
+ rType = 0;
+ vrLen = 972;
+ vrLoc = 6807;
+ };
+ 6B324DFF1125535800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 286";
+ rLen = 0;
+ rLoc = 7602;
+ rType = 0;
+ vrLen = 972;
+ vrLoc = 6807;
+ };
+ 6B324E001125535800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ rLen = 0;
+ rLoc = 910;
+ rType = 1;
+ };
+ 6B324E011125535800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 286";
+ rLen = 0;
+ rLoc = 7602;
+ rType = 0;
+ vrLen = 972;
+ vrLoc = 6807;
+ };
+ 6B324E021125535800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1214";
+ rLen = 0;
+ rLoc = 33191;
+ rType = 0;
+ vrLen = 861;
+ vrLoc = 32772;
+ };
+ 6B324E031125535800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 286";
+ rLen = 0;
+ rLoc = 7602;
+ rType = 0;
+ vrLen = 972;
+ vrLoc = 6807;
+ };
+ 6B324E041125535800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 907";
+ rLen = 0;
+ rLoc = 24798;
+ rType = 0;
+ vrLen = 713;
+ vrLoc = 24469;
+ };
+ 6B324E061125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 285";
+ rLen = 0;
+ rLoc = 7601;
+ rType = 0;
+ vrLen = 1031;
+ vrLoc = 6789;
+ };
+ 6B324E071125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */;
+ name = "NavMeshTesterTool.h: 26";
+ rLen = 0;
+ rLoc = 1069;
+ rType = 0;
+ vrLen = 670;
+ vrLoc = 1023;
+ };
+ 6B324E081125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 383";
+ rLen = 57;
+ rLoc = 16966;
+ rType = 0;
+ vrLen = 1035;
+ vrLoc = 16660;
+ };
+ 6B324E091125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1733";
+ rLen = 0;
+ rLoc = 47791;
+ rType = 0;
+ vrLen = 1051;
+ vrLoc = 46890;
+ };
+ 6B324E0A1125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 285";
+ rLen = 0;
+ rLoc = 7601;
+ rType = 0;
+ vrLen = 1031;
+ vrLoc = 6789;
+ };
+ 6B324E0B1125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */;
+ name = "NavMeshTesterTool.h: 26";
+ rLen = 0;
+ rLoc = 1069;
+ rType = 0;
+ vrLen = 670;
+ vrLoc = 1023;
+ };
+ 6B324E0C1125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 456";
+ rLen = 0;
+ rLoc = 19731;
+ rType = 0;
+ vrLen = 1711;
+ vrLoc = 18685;
+ };
+ 6B324E0D1125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1217";
+ rLen = 0;
+ rLoc = 33290;
+ rType = 0;
+ vrLen = 856;
+ vrLoc = 32686;
+ };
+ 6B324E0E1125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 382";
+ rLen = 0;
+ rLoc = 17165;
+ rType = 0;
+ vrLen = 1112;
+ vrLoc = 16362;
+ };
+ 6B324E0F1125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1733";
+ rLen = 0;
+ rLoc = 47791;
+ rType = 0;
+ vrLen = 1051;
+ vrLoc = 46890;
+ };
+ 6B324E101125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 383";
+ rLen = 57;
+ rLoc = 16966;
+ rType = 0;
+ vrLen = 1035;
+ vrLoc = 16660;
+ };
+ 6B324E111125554800EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1743";
+ rLen = 0;
+ rLoc = 47788;
+ rType = 0;
+ vrLen = 1054;
+ vrLoc = 46890;
+ };
+ 6B324E121125559400EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1738";
+ rLen = 0;
+ rLoc = 47603;
+ rType = 0;
+ vrLen = 1058;
+ vrLoc = 46904;
+ };
+ 6B324E13112555CF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1736";
+ rLen = 0;
+ rLoc = 47492;
+ rType = 0;
+ vrLen = 1058;
+ vrLoc = 46904;
+ };
+ 6B324E14112555CF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1736";
+ rLen = 0;
+ rLoc = 47492;
+ rType = 0;
+ vrLen = 1058;
+ vrLoc = 46904;
+ };
+ 6B324E15112555CF00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 425";
+ rLen = 0;
+ rLoc = 18296;
+ rType = 0;
+ vrLen = 1044;
+ vrLoc = 17581;
+ };
+ 6B324E17112555F200EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 413";
+ rLen = 0;
+ rLoc = 18013;
+ rType = 0;
+ vrLen = 1044;
+ vrLoc = 17581;
+ };
+ 6B324E181125566A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 413";
+ rLen = 0;
+ rLoc = 18013;
+ rType = 0;
+ vrLen = 1044;
+ vrLoc = 17581;
+ };
+ 6B324E191125566A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */;
+ name = "Sample.h: 36";
+ rLen = 0;
+ rLoc = 1310;
+ rType = 0;
+ vrLen = 982;
+ vrLoc = 1016;
+ };
+ 6B324E1A1125566A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 94";
+ rLen = 0;
+ rLoc = 2707;
+ rType = 0;
+ vrLen = 770;
+ vrLoc = 2140;
+ };
+ 6B324E1B1125566A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
+ name = "DetourNavMesh.h: 413";
+ rLen = 0;
+ rLoc = 18013;
+ rType = 0;
+ vrLen = 1044;
+ vrLoc = 17581;
+ };
+ 6B324E1C1125566A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6100FFA62AD004F1BC4 /* Sample.h */;
+ name = "Sample.h: 36";
+ rLen = 0;
+ rLoc = 1310;
+ rType = 0;
+ vrLen = 982;
+ vrLoc = 1016;
+ };
+ 6B324E1D1125566A00EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 94";
+ rLen = 0;
+ rLoc = 2597;
+ rType = 0;
+ vrLen = 854;
+ vrLoc = 2140;
+ };
+ 6B324E201125568100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 94";
+ rLen = 0;
+ rLoc = 2597;
+ rType = 0;
+ vrLen = 728;
+ vrLoc = 2226;
+ };
+ 6B324E211125568100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "error: return-statement with a value, in function returning 'void'";
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ rLen = 1;
+ rLoc = 1736;
+ rType = 1;
+ };
+ 6B324E221125568100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 94";
+ rLen = 0;
+ rLoc = 2597;
+ rType = 0;
+ vrLen = 728;
+ vrLoc = 2226;
+ };
+ 6B324E231125568100EBD2FD /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
+ name = "DetourNavMesh.cpp: 1739";
+ rLen = 0;
+ rLoc = 47666;
+ rType = 0;
+ vrLen = 829;
+ vrLoc = 47311;
+ };
6B555DAE100B211D00247EA3 /* imguiRenderGL.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {915, 492}}";
@@ -5738,7 +7891,7 @@
vrLen = 849;
vrLoc = 5542;
};
- 6B84BDF5110DF38D007D997B /* DetourNavMesh.cpp:251 */ = {
+ 6B84BDF5110DF38D007D997B /* DetourNavMesh.cpp:254 */ = {
isa = PBXFileBreakpoint;
actions = (
);
@@ -5750,9 +7903,9 @@
functionName = "dtNavMesh::checkLinks(dtMeshTile* tile)";
hitCount = 0;
ignoreCount = 0;
- lineNumber = 251;
+ lineNumber = 254;
location = Recast;
- modificationTime = 287078558.540658;
+ modificationTime = 287658767.511248;
state = 1;
};
6B84BE1D110DF6C6007D997B /* Sample_TileMesh.cpp:478 */ = {
@@ -5769,7 +7922,7 @@
ignoreCount = 0;
lineNumber = 478;
location = Recast;
- modificationTime = 287078558.540979;
+ modificationTime = 287658767.511644;
state = 1;
};
6B8632970F78114600E2684A /* Recast */ = {
@@ -5840,9 +7993,9 @@
};
6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {852, 33184}}";
- sepNavSelRange = "{24730, 0}";
- sepNavVisRange = "{24435, 728}";
+ sepNavIntBoundsRect = "{{0, 0}, {815, 35248}}";
+ sepNavSelRange = "{47666, 0}";
+ sepNavVisRange = "{47311, 829}";
sepNavWindowFrame = "{{15, 51}, {1214, 722}}";
};
};
@@ -5855,9 +8008,9 @@
};
6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {845, 7872}}";
- sepNavSelRange = "{16897, 0}";
- sepNavVisRange = "{16291, 1183}";
+ sepNavIntBoundsRect = "{{0, 0}, {845, 8144}}";
+ sepNavSelRange = "{18013, 0}";
+ sepNavVisRange = "{17581, 1044}";
};
};
6B8DE88C10B69E4C00DF20FB /* DetourNavMeshBuilder.h */ = {
@@ -5872,7 +8025,7 @@
fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
name = detail;
rLen = 0;
- rLoc = 17386;
+ rLoc = 17610;
rType = 0;
vrLen = 1182;
vrLoc = 9676;
@@ -5889,14 +8042,14 @@
};
6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {887, 11376}}";
- sepNavSelRange = "{17398, 644}";
- sepNavVisRange = "{17150, 996}";
+ sepNavIntBoundsRect = "{{0, 0}, {815, 11456}}";
+ sepNavSelRange = "{13214, 0}";
+ sepNavVisRange = "{12680, 1300}";
};
};
6BA1E88910C7BFC9008007F6 /* Sample_SoloMeshTiled.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {943, 18688}}";
+ sepNavIntBoundsRect = "{{0, 0}, {943, 18784}}";
sepNavSelRange = "{30613, 0}";
sepNavVisRange = "{30352, 1240}";
};
@@ -5951,16 +8104,16 @@
};
6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {815, 1312}}";
- sepNavSelRange = "{1030, 17}";
- sepNavVisRange = "{1023, 705}";
+ sepNavIntBoundsRect = "{{0, 0}, {815, 1296}}";
+ sepNavSelRange = "{1069, 0}";
+ sepNavVisRange = "{1023, 670}";
};
};
6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {887, 11424}}";
- sepNavSelRange = "{6946, 22}";
- sepNavVisRange = "{8088, 1081}";
+ sepNavIntBoundsRect = "{{0, 0}, {815, 11584}}";
+ sepNavSelRange = "{2597, 0}";
+ sepNavVisRange = "{2226, 728}";
};
};
6BB7FDA310F36EFC006DA0A6 /* InputGeom.h */ = {
@@ -6563,7 +8716,7 @@
fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
name = "DetourNavMesh.h: 361";
rLen = 0;
- rLoc = 16949;
+ rLoc = 17173;
rType = 0;
vrLen = 1227;
vrLoc = 15736;
@@ -6573,7 +8726,7 @@
fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
name = "DetourNavMesh.h: 361";
rLen = 0;
- rLoc = 16949;
+ rLoc = 17173;
rType = 0;
vrLen = 1311;
vrLoc = 15654;
@@ -6583,7 +8736,7 @@
fRef = 6B8DE88B10B69E4C00DF20FB /* DetourNavMesh.h */;
name = "DetourNavMesh.h: 361";
rLen = 0;
- rLoc = 16949;
+ rLoc = 17173;
rType = 0;
vrLen = 1069;
vrLoc = 2551;
@@ -8110,9 +10263,9 @@
};
6BF7C4531115C277002B3F46 /* RecastArea.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {815, 5184}}";
- sepNavSelRange = "{8758, 0}";
- sepNavVisRange = "{8158, 604}";
+ sepNavIntBoundsRect = "{{0, 0}, {1195, 5280}}";
+ sepNavSelRange = "{6514, 0}";
+ sepNavVisRange = "{5850, 523}";
};
};
6BF7C4571115C403002B3F46 /* RecastArea.cpp */ = {
@@ -8137,7 +10290,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 193";
rLen = 0;
- rLoc = 5419;
+ rLoc = 5790;
rType = 0;
vrLen = 646;
vrLoc = 4301;
@@ -8147,7 +10300,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1151";
rLen = 0;
- rLoc = 31718;
+ rLoc = 32326;
rType = 0;
vrLen = 1087;
vrLoc = 30878;
@@ -8507,7 +10660,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1071";
rLen = 0;
- rLoc = 29790;
+ rLoc = 29856;
rType = 0;
vrLen = 853;
vrLoc = 28942;
@@ -8517,7 +10670,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 178";
rLen = 0;
- rLoc = 5167;
+ rLoc = 5538;
rType = 0;
vrLen = 423;
vrLoc = 4249;
@@ -8537,7 +10690,7 @@
fRef = 6B8DE88710B69E3E00DF20FB /* DetourNavMesh.cpp */;
name = "DetourNavMesh.cpp: 1071";
rLen = 0;
- rLoc = 29790;
+ rLoc = 29856;
rType = 0;
vrLen = 853;
vrLoc = 28942;
@@ -8547,7 +10700,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 178";
rLen = 0;
- rLoc = 5167;
+ rLoc = 5538;
rType = 0;
vrLen = 423;
vrLoc = 4249;
@@ -8627,7 +10780,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 606";
rLen = 0;
- rLoc = 19395;
+ rLoc = 19396;
rType = 0;
vrLen = 872;
vrLoc = 18039;
@@ -8647,7 +10800,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 609";
rLen = 0;
- rLoc = 19439;
+ rLoc = 19440;
rType = 0;
vrLen = 1035;
vrLoc = 16818;
@@ -8714,7 +10867,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 473";
rLen = 264;
- rLoc = 14633;
+ rLoc = 14634;
rType = 0;
vrLen = 1013;
vrLoc = 14323;
@@ -9134,7 +11287,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 639";
rLen = 138;
- rLoc = 20638;
+ rLoc = 20639;
rType = 0;
vrLen = 2394;
vrLoc = 19013;
@@ -9174,7 +11327,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 485";
rLen = 0;
- rLoc = 15048;
+ rLoc = 15049;
rType = 0;
vrLen = 876;
vrLoc = 14618;
@@ -9231,7 +11384,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 493";
rLen = 0;
- rLoc = 15337;
+ rLoc = 15338;
rType = 0;
vrLen = 860;
vrLoc = 14911;
@@ -9271,7 +11424,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 499";
rLen = 0;
- rLoc = 15478;
+ rLoc = 15479;
rType = 0;
vrLen = 894;
vrLoc = 14597;
@@ -9291,7 +11444,7 @@
fRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */;
name = "Sample_SoloMeshSimple.cpp: 499";
rLen = 0;
- rLoc = 15478;
+ rLoc = 15479;
rType = 0;
vrLen = 894;
vrLoc = 14597;
diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3
index d391372..30801d1 100644
--- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3
+++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3
@@ -281,14 +281,14 @@
PBXSmartGroupTreeModuleOutlineStateSelectionKey
- 45
- 44
+ 36
+ 35
1
0
PBXSmartGroupTreeModuleOutlineStateVisibleRectKey
- {{0, 293}, {358, 643}}
+ {{0, 295}, {358, 643}}
PBXTopSmartGroupGIDs
@@ -323,7 +323,7 @@
PBXProjectModuleGUID
6B8632A30F78115100E2684A
PBXProjectModuleLabel
- ConvexVolumeTool.cpp
+ DetourNavMesh.cpp
PBXSplitModuleInNavigatorKey
Split0
@@ -331,11 +331,11 @@
PBXProjectModuleGUID
6B8632A40F78115100E2684A
PBXProjectModuleLabel
- ConvexVolumeTool.cpp
+ DetourNavMesh.cpp
_historyCapacity
0
bookmark
- 6B324D0D111C7C1700EBD2FD
+ 6B324E231125568100EBD2FD
history
6B8DE70D10B01BBF00DF20FB
@@ -350,8 +350,6 @@
6BF7C2441111DAC1002B3F46
6BF7C2761112BE4F002B3F46
6BF7C2851112C348002B3F46
- 6BF7C3211112DB82002B3F46
- 6BF7C3431112E74B002B3F46
6BF7C36E1112EB25002B3F46
6BF7C37D1113026E002B3F46
6BF7C394111316AD002B3F46
@@ -361,13 +359,11 @@
6BF7C4831115C7C4002B3F46
6BF7C5F91116F346002B3F46
6BF7C6591117142A002B3F46
- 6BF7C67C1117163B002B3F46
6BF7C67D1117163B002B3F46
6BF7C69B11172159002B3F46
6BF7C6AA11172278002B3F46
6B324A7C111BF65400EBD2FD
6B324AC3111C00D700EBD2FD
- 6B324AC5111C00D700EBD2FD
6B324ACA111C00D700EBD2FD
6B324AE6111C07AB00EBD2FD
6B324AEA111C0D9700EBD2FD
@@ -380,24 +376,29 @@
6B324B52111C1AC800EBD2FD
6B324B71111C1C4F00EBD2FD
6B324B7A111C1C8200EBD2FD
- 6B324B8A111C1DE600EBD2FD
- 6B324BB8111C4C2B00EBD2FD
6B324BBB111C4C2B00EBD2FD
6B324C45111C5C5A00EBD2FD
- 6B324C51111C5D1400EBD2FD
6B324C92111C604500EBD2FD
- 6B324C9E111C6DD400EBD2FD
6B324CB5111C6EEA00EBD2FD
6B324CC3111C6F6300EBD2FD
- 6B324CF2111C7A9800EBD2FD
6B324CF9111C7B0900EBD2FD
6B324CFA111C7B0900EBD2FD
- 6B324CFB111C7B0900EBD2FD
- 6B324CFC111C7B0900EBD2FD
- 6B324CFD111C7B0900EBD2FD
6B324D09111C7C1700EBD2FD
6B324D0A111C7C1700EBD2FD
- 6B324CDA111C789800EBD2FD
+ 6B324D0F1121C78000EBD2FD
+ 6B324D101121C78000EBD2FD
+ 6B324D501121D61A00EBD2FD
+ 6B324D511121D61A00EBD2FD
+ 6B324D631121DE7A00EBD2FD
+ 6B324D641121DE7A00EBD2FD
+ 6B324D651121DE7A00EBD2FD
+ 6B324D661121DE7A00EBD2FD
+ 6B324DC911254B2E00EBD2FD
+ 6B324E071125554800EBD2FD
+ 6B324E181125566A00EBD2FD
+ 6B324E191125566A00EBD2FD
+ 6B324E201125568100EBD2FD
+ 6B324E211125568100EBD2FD
prevStack
@@ -435,7 +436,6 @@
6BF7C39C111316AD002B3F46
6BB7FDD910F37703006DA0A6
6BF7C16711119C69002B3F46
- 6BF7C4661115C514002B3F46
6BF7C46A1115C514002B3F46
6BF7C52F1115FA3B002B3F46
6BF7C6081116F61A002B3F46
@@ -461,7 +461,6 @@
6B324AEE111C0D9700EBD2FD
6B324AEF111C0D9700EBD2FD
6B324AF0111C0D9700EBD2FD
- 6B324B01111C0F2700EBD2FD
6B324B02111C0F2700EBD2FD
6B324B03111C0F2700EBD2FD
6B324B04111C0F2700EBD2FD
@@ -474,7 +473,6 @@
6B324B14111C103600EBD2FD
6B324B15111C103600EBD2FD
6B324B18111C103600EBD2FD
- 6B324B21111C10C700EBD2FD
6B324B23111C10C700EBD2FD
6B324B33111C153D00EBD2FD
6B324B35111C153D00EBD2FD
@@ -485,13 +483,9 @@
6B324B55111C1AC800EBD2FD
6B324B56111C1AC800EBD2FD
6B324B57111C1AC800EBD2FD
- 6B324B5A111C1AC800EBD2FD
- 6B324B5B111C1AC800EBD2FD
6B324B5C111C1AC800EBD2FD
- 6B324B5D111C1AC800EBD2FD
6B324B5E111C1AC800EBD2FD
6B324B5F111C1AC800EBD2FD
- 6B324B60111C1AC800EBD2FD
6B324B61111C1AC800EBD2FD
6B324B62111C1AC800EBD2FD
6B324B63111C1AC800EBD2FD
@@ -504,10 +498,7 @@
6B324B75111C1C4F00EBD2FD
6B324B7D111C1C8200EBD2FD
6B324B82111C1CF000EBD2FD
- 6B324B87111C1D9700EBD2FD
- 6B324B8C111C1DE600EBD2FD
6B324BBD111C4C2B00EBD2FD
- 6B324BBE111C4C2B00EBD2FD
6B324BC1111C4C2B00EBD2FD
6B324C21111C5B8D00EBD2FD
6B324C23111C5B8D00EBD2FD
@@ -517,25 +508,18 @@
6B324C2B111C5B8D00EBD2FD
6B324C2D111C5B8D00EBD2FD
6B324C2F111C5B8D00EBD2FD
- 6B324C30111C5B8D00EBD2FD
6B324C31111C5B8D00EBD2FD
6B324C33111C5B8D00EBD2FD
- 6B324C34111C5B8D00EBD2FD
6B324C49111C5C5A00EBD2FD
- 6B324C58111C5D1400EBD2FD
6B324C59111C5D1400EBD2FD
6B324C5D111C5D1400EBD2FD
- 6B324C5F111C5D1400EBD2FD
6B324C61111C5D1400EBD2FD
- 6B324C70111C5DDC00EBD2FD
6B324C71111C5DDC00EBD2FD
6B324C79111C5E7C00EBD2FD
6B324C7A111C5E7C00EBD2FD
- 6B324C7B111C5E7C00EBD2FD
6B324C80111C5EF800EBD2FD
6B324CA4111C6DD400EBD2FD
6B324CA5111C6DD400EBD2FD
- 6B324CAE111C6E0100EBD2FD
6B324CB7111C6EEA00EBD2FD
6B324CB8111C6EEA00EBD2FD
6B324CB9111C6EEA00EBD2FD
@@ -545,7 +529,6 @@
6B324CD0111C759F00EBD2FD
6B324CD1111C759F00EBD2FD
6B324CDE111C789800EBD2FD
- 6B324CDF111C789800EBD2FD
6B324CE0111C789800EBD2FD
6B324CE1111C789800EBD2FD
6B324CE5111C78DA00EBD2FD
@@ -554,12 +537,51 @@
6B324CF5111C7A9800EBD2FD
6B324CFF111C7B0900EBD2FD
6B324D00111C7B0900EBD2FD
- 6B324D01111C7B0900EBD2FD
6B324D02111C7B0900EBD2FD
- 6B324D03111C7B0900EBD2FD
6B324D04111C7B0900EBD2FD
6B324D0B111C7C1700EBD2FD
6B324D0C111C7C1700EBD2FD
+ 6B324D121121C78000EBD2FD
+ 6B324D131121C78000EBD2FD
+ 6B324D141121C78000EBD2FD
+ 6B324D151121C78000EBD2FD
+ 6B324D231121CD0C00EBD2FD
+ 6B324D281121CD2000EBD2FD
+ 6B324D321121CDAF00EBD2FD
+ 6B324D3B1121CFCF00EBD2FD
+ 6B324D3C1121CFCF00EBD2FD
+ 6B324D531121D61A00EBD2FD
+ 6B324D541121D61A00EBD2FD
+ 6B324B5A111C1AC800EBD2FD
+ 6B324D5E1121D71800EBD2FD
+ 6B324D691121DE7A00EBD2FD
+ 6B324D6A1121DE7A00EBD2FD
+ 6B324D6B1121DE7A00EBD2FD
+ 6B324D6C1121DE7A00EBD2FD
+ 6B324D6D1121DE7A00EBD2FD
+ 6B324D6F1121DE7A00EBD2FD
+ 6B324D711121DE7A00EBD2FD
+ 6B324D731121DE7A00EBD2FD
+ 6B324D751121DE7A00EBD2FD
+ 6B324D771121DE7A00EBD2FD
+ 6B324D791121DE7A00EBD2FD
+ 6B324D7B1121DE7A00EBD2FD
+ 6B324D7D1121DE7A00EBD2FD
+ 6B324D7F1121DE7A00EBD2FD
+ 6B324D8411253B8E00EBD2FD
+ 6B324D95112542DA00EBD2FD
+ 6B324D97112542DA00EBD2FD
+ 6B324DD011254E0400EBD2FD
+ 6B324DE51125511B00EBD2FD
+ 6B324E0B1125554800EBD2FD
+ 6B324E0C1125554800EBD2FD
+ 6B324E0D1125554800EBD2FD
+ 6B324E0E1125554800EBD2FD
+ 6B324E0F1125554800EBD2FD
+ 6B324E101125554800EBD2FD
+ 6B324E14112555CF00EBD2FD
+ 6B324E1B1125566A00EBD2FD
+ 6B324E221125568100EBD2FD
SplitCount
@@ -573,18 +595,18 @@
GeometryConfiguration
Frame
- {{0, 0}, {876, 545}}
+ {{0, 0}, {876, 426}}
RubberWindowFrame
11 76 1256 702 0 0 1280 778
Module
PBXNavigatorGroup
Proportion
- 545pt
+ 426pt
Proportion
- 111pt
+ 230pt
Tabs
@@ -614,7 +636,7 @@
GeometryConfiguration
Frame
- {{10, 27}, {876, 197}}
+ {{10, 27}, {876, 72}}
Module
PBXProjectFindModule
@@ -652,7 +674,7 @@
GeometryConfiguration
Frame
- {{10, 27}, {876, 84}}
+ {{10, 27}, {876, 203}}
RubberWindowFrame
11 76 1256 702 0 0 1280 778
@@ -737,12 +759,12 @@
GeometryConfiguration
Frame
- {{0, 0}, {1256, 260}}
+ {{0, 0}, {1256, 55}}
Module
PBXDebugCLIModule
Proportion
- 260pt
+ 55pt
ContentConfiguration
@@ -761,8 +783,8 @@
yes
sizes
- {{0, 0}, {625, 125}}
- {{625, 0}, {631, 125}}
+ {{0, 0}, {628, 157}}
+ {{628, 0}, {628, 157}}
VerticalSplitView
@@ -777,8 +799,8 @@
yes
sizes
- {{0, 0}, {1256, 125}}
- {{0, 125}, {1256, 271}}
+ {{0, 0}, {1256, 157}}
+ {{0, 157}, {1256, 444}}
@@ -798,7 +820,7 @@
DebugSTDIOWindowFrame
{{200, 200}, {500, 300}}
Frame
- {{0, 265}, {1256, 396}}
+ {{0, 60}, {1256, 601}}
PBXDebugSessionStackFrameViewKey
DebugVariablesTableConfiguration
@@ -808,16 +830,16 @@
Value
85
Summary
- 401
+ 398
Frame
- {{625, 0}, {631, 125}}
+ {{628, 0}, {628, 157}}
Module
PBXDebugSessionModule
Proportion
- 396pt
+ 601pt
Name
diff --git a/RecastDemo/Source/ConvexVolumeTool.cpp b/RecastDemo/Source/ConvexVolumeTool.cpp
index 98d62cd..818039d 100644
--- a/RecastDemo/Source/ConvexVolumeTool.cpp
+++ b/RecastDemo/Source/ConvexVolumeTool.cpp
@@ -36,11 +36,13 @@
#endif
// Quick and dirty convex hull.
+
+// Returns true if 'c' is left of line 'a'-'b'.
inline bool left(const float* a, const float* b, const float* c)
{
return (b[0] - a[0]) * (c[2] - a[2]) - (c[0] - a[0]) * (b[2] - a[2]) < 0;
}
-
+// Returns true if 'a' is more lower-left than 'b'.
inline bool cmppt(const float* a, const float* b)
{
if (a[0] < b[0]) return true;
@@ -49,15 +51,17 @@ inline bool cmppt(const float* a, const float* b)
if (a[2] > b[2]) return false;
return false;
}
-
+// Calculates convex hull on xz-plane of points on 'pts',
+// stores the indices of the resulting hull in 'out' and
+// returns number of points on hull.
static int convexhull(const float* pts, int npts, int* out)
{
- // Find leftmost point.
+ // Find lower-leftmost point.
int hull = 0;
for (int i = 1; i < npts; ++i)
if (cmppt(&pts[i*3], &pts[hull*3]))
hull = i;
- // Gif wrap hull.
+ // Gift wrap hull.
int endpt = 0;
int i = 0;
do
@@ -224,7 +228,6 @@ void ConvexVolumeTool::handleClick(const float* p, bool shift)
void ConvexVolumeTool::handleRender()
{
DebugDrawGL dd;
- const float s = m_sample->getAgentRadius();
// Find height extents of the shape.
float minh = FLT_MAX, maxh = 0;
diff --git a/RecastDemo/Source/NavMeshTesterTool.cpp b/RecastDemo/Source/NavMeshTesterTool.cpp
index f361ccd..dc6dd6a 100644
--- a/RecastDemo/Source/NavMeshTesterTool.cpp
+++ b/RecastDemo/Source/NavMeshTesterTool.cpp
@@ -85,6 +85,17 @@ void NavMeshTesterTool::init(Sample* sample)
m_navMesh = sample->getNavMesh();
recalc();
+ if (m_navMesh)
+ {
+ // Change costs.
+ m_navMesh->setAreaCost(SAMPLE_POLYAREA_GROUND, 1.0f);
+ m_navMesh->setAreaCost(SAMPLE_POLYAREA_WATER, 10.0f);
+ m_navMesh->setAreaCost(SAMPLE_POLYAREA_ROAD, 1.0f);
+ m_navMesh->setAreaCost(SAMPLE_POLYAREA_DOOR, 1.0f);
+ m_navMesh->setAreaCost(SAMPLE_POLYAREA_GRASS, 2.0f);
+ m_navMesh->setAreaCost(SAMPLE_POLYAREA_JUMP, 1.5f);
+ }
+
if (m_toolMode == TOOLMODE_PATHFIND_ITER || m_toolMode == TOOLMODE_PATHFIND_STRAIGHT)
{
unsigned char flags = DU_DRAWNAVMESH_CLOSEDLIST;
@@ -282,6 +293,7 @@ void NavMeshTesterTool::recalc()
m_spos[0],m_spos[1],m_spos[2], m_epos[0],m_epos[1],m_epos[2],
m_filter.includeFlags, m_filter.excludeFlags);
#endif
+
m_npolys = m_navMesh->findPath(m_startRef, m_endRef, m_spos, m_epos, &m_filter, m_polys, MAX_POLYS);
m_nsmoothPath = 0;
diff --git a/RecastDemo/Source/Sample_SoloMeshSimple.cpp b/RecastDemo/Source/Sample_SoloMeshSimple.cpp
index cac68a1..962f7c1 100644
--- a/RecastDemo/Source/Sample_SoloMeshSimple.cpp
+++ b/RecastDemo/Source/Sample_SoloMeshSimple.cpp
@@ -321,6 +321,7 @@ void Sample_SoloMeshSimple::handleMeshChanged(class InputGeom* geom)
}
}
+
bool Sample_SoloMeshSimple::handleBuild()
{
if (!m_geom || !m_geom->getMesh())