Issue 60: fixed end of path issues in findStraightPath().
This commit is contained in:
parent
77cc2b9eef
commit
1d8c7dac84
@ -1568,19 +1568,24 @@ int dtNavMesh::findStraightPath(const float* startPos, const float* endPos,
|
||||
vcopy(portalApex, portalLeft);
|
||||
apexIndex = leftIndex;
|
||||
|
||||
unsigned char flags = (leftPolyType == DT_POLYTYPE_OFFMESH_CONNECTION) ? DT_STRAIGHTPATH_OFFMESH_CONNECTION : 0;
|
||||
unsigned char flags = 0;
|
||||
if (!leftPolyRef)
|
||||
flags = DT_STRAIGHTPATH_END;
|
||||
else if (rightPolyType == DT_POLYTYPE_OFFMESH_CONNECTION)
|
||||
flags = DT_STRAIGHTPATH_OFFMESH_CONNECTION;
|
||||
dtPolyRef ref = leftPolyRef;
|
||||
|
||||
if (!vequal(&straightPath[(straightPathSize-1)*3], portalApex))
|
||||
{
|
||||
// Append new vertex.
|
||||
vcopy(&straightPath[straightPathSize*3], portalApex);
|
||||
if (straightPathFlags)
|
||||
straightPathFlags[straightPathSize] = flags;
|
||||
if (straightPathRefs)
|
||||
straightPathRefs[straightPathSize] = ref;
|
||||
|
||||
straightPathSize++;
|
||||
if (straightPathSize >= maxStraightPathSize)
|
||||
// If reached end of path or there is no space to append more vertices, return.
|
||||
if (flags == DT_STRAIGHTPATH_END || straightPathSize >= maxStraightPathSize)
|
||||
return straightPathSize;
|
||||
}
|
||||
else
|
||||
@ -1619,19 +1624,24 @@ int dtNavMesh::findStraightPath(const float* startPos, const float* endPos,
|
||||
vcopy(portalApex, portalRight);
|
||||
apexIndex = rightIndex;
|
||||
|
||||
unsigned char flags = (rightPolyType == DT_POLYTYPE_OFFMESH_CONNECTION) ? DT_STRAIGHTPATH_OFFMESH_CONNECTION : 0;
|
||||
unsigned char flags = 0;
|
||||
if (!rightPolyRef)
|
||||
flags = DT_STRAIGHTPATH_END;
|
||||
else if (rightPolyType == DT_POLYTYPE_OFFMESH_CONNECTION)
|
||||
flags = DT_STRAIGHTPATH_OFFMESH_CONNECTION;
|
||||
dtPolyRef ref = rightPolyRef;
|
||||
|
||||
if (!vequal(&straightPath[(straightPathSize-1)*3], portalApex))
|
||||
{
|
||||
// Append new vertex.
|
||||
vcopy(&straightPath[straightPathSize*3], portalApex);
|
||||
if (straightPathFlags)
|
||||
straightPathFlags[straightPathSize] = flags;
|
||||
if (straightPathRefs)
|
||||
straightPathRefs[straightPathSize] = ref;
|
||||
|
||||
straightPathSize++;
|
||||
if (straightPathSize >= maxStraightPathSize)
|
||||
// If reached end of path or there is no space to append more vertices, return.
|
||||
if (flags == DT_STRAIGHTPATH_END || straightPathSize >= maxStraightPathSize)
|
||||
return straightPathSize;
|
||||
}
|
||||
else
|
||||
@ -1657,14 +1667,20 @@ int dtNavMesh::findStraightPath(const float* startPos, const float* endPos,
|
||||
}
|
||||
}
|
||||
|
||||
// If the point already exists, remove it and add reappend the actual end location.
|
||||
if (straightPathSize && vequal(&straightPath[(straightPathSize-1)*3], closestEndPos))
|
||||
straightPathSize--;
|
||||
|
||||
// Add end point.
|
||||
if (straightPathSize < maxStraightPathSize)
|
||||
{
|
||||
vcopy(&straightPath[straightPathSize*3], closestEndPos);
|
||||
if (straightPathFlags)
|
||||
straightPathFlags[straightPathSize] = DT_STRAIGHTPATH_END;
|
||||
if (straightPathRefs)
|
||||
straightPathRefs[straightPathSize] = 0;
|
||||
|
||||
straightPathSize++;
|
||||
}
|
||||
|
||||
return straightPathSize;
|
||||
}
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -270,6 +270,7 @@
|
||||
<string>6BB93C7610CFE1BD00F74F2B</string>
|
||||
<string>6BDD9E030F91110C00904EEF</string>
|
||||
<string>6B555DF5100B25FC00247EA3</string>
|
||||
<string>6BB7FE8E10F4A175006DA0A6</string>
|
||||
<string>29B97315FDCFA39411CA2CEA</string>
|
||||
<string>29B97317FDCFA39411CA2CEA</string>
|
||||
<string>29B97323FDCFA39411CA2CEA</string>
|
||||
@ -281,14 +282,14 @@
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>13</integer>
|
||||
<integer>12</integer>
|
||||
<integer>37</integer>
|
||||
<integer>33</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||
<string>{{0, 52}, {264, 643}}</string>
|
||||
<string>{{0, 217}, {264, 643}}</string>
|
||||
</dict>
|
||||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
@ -305,7 +306,7 @@
|
||||
<real>264</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>11 76 1256 702 0 0 1280 778 </string>
|
||||
<string>13 75 1256 702 0 0 1280 778 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
@ -323,7 +324,7 @@
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>6B8632A30F78115100E2684A</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Sample_TileMesh.cpp</string>
|
||||
<string>DetourNavMesh.cpp</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
@ -331,11 +332,11 @@
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>6B8632A40F78115100E2684A</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Sample_TileMesh.cpp</string>
|
||||
<string>DetourNavMesh.cpp</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>6BBB4C5F115B8BF700CF791D</string>
|
||||
<string>6BED8AF81174570F00582F38</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>6BBB4A94115B4F3400CF791D</string>
|
||||
@ -361,7 +362,6 @@
|
||||
<string>6BBB4AAA115B4F3400CF791D</string>
|
||||
<string>6BBB4AAB115B4F3400CF791D</string>
|
||||
<string>6BBB4AAC115B4F3400CF791D</string>
|
||||
<string>6BBB4AAF115B4F3400CF791D</string>
|
||||
<string>6BBB4AB0115B4F3400CF791D</string>
|
||||
<string>6BBB4AB1115B4F3400CF791D</string>
|
||||
<string>6BBB4AB2115B4F3400CF791D</string>
|
||||
@ -385,22 +385,23 @@
|
||||
<string>6BBB4AC9115B4F3400CF791D</string>
|
||||
<string>6BBB4ACB115B4F3400CF791D</string>
|
||||
<string>6BBB4ACD115B4F3400CF791D</string>
|
||||
<string>6BBB4B2D115B5B3200CF791D</string>
|
||||
<string>6BBB4B7A115B639200CF791D</string>
|
||||
<string>6BBB4B7D115B639200CF791D</string>
|
||||
<string>6BBB4B7E115B639200CF791D</string>
|
||||
<string>6BBB4B7F115B639200CF791D</string>
|
||||
<string>6BBB4BDA115B679300CF791D</string>
|
||||
<string>6BBB4BE6115B69BE00CF791D</string>
|
||||
<string>6BBB4C34115B7A3D00CF791D</string>
|
||||
<string>6BBB4C38115B7A3D00CF791D</string>
|
||||
<string>6BBB4C58115B8BF700CF791D</string>
|
||||
<string>6BBB4C59115B8BF700CF791D</string>
|
||||
<string>6BBB4C5A115B8BF700CF791D</string>
|
||||
<string>6BED8AD41174509800582F38</string>
|
||||
<string>6BED8AE2117451EB00582F38</string>
|
||||
<string>6BED8AEE117455CB00582F38</string>
|
||||
<string>6BED8AF21174567000582F38</string>
|
||||
<string>6BED8AF31174567000582F38</string>
|
||||
</array>
|
||||
<key>nextStack</key>
|
||||
<array>
|
||||
<string>6BBB4C5E115B8BF700CF791D</string>
|
||||
<string>6BED8AF41174567000582F38</string>
|
||||
</array>
|
||||
<key>prevStack</key>
|
||||
<array>
|
||||
@ -408,12 +409,7 @@
|
||||
<string>6BBB4AD2115B4F3400CF791D</string>
|
||||
<string>6BBB4AD3115B4F3400CF791D</string>
|
||||
<string>6BBB4AD4115B4F3400CF791D</string>
|
||||
<string>6BBB4AD5115B4F3400CF791D</string>
|
||||
<string>6BBB4AD6115B4F3400CF791D</string>
|
||||
<string>6BBB4AD7115B4F3400CF791D</string>
|
||||
<string>6BBB4AD8115B4F3400CF791D</string>
|
||||
<string>6BBB4AD9115B4F3400CF791D</string>
|
||||
<string>6BBB4ADB115B4F3400CF791D</string>
|
||||
<string>6BBB4ADD115B4F3400CF791D</string>
|
||||
<string>6BBB4ADE115B4F3400CF791D</string>
|
||||
<string>6BBB4ADF115B4F3400CF791D</string>
|
||||
@ -435,11 +431,7 @@
|
||||
<string>6BBB4AEF115B4F3400CF791D</string>
|
||||
<string>6BBB4AF0115B4F3400CF791D</string>
|
||||
<string>6BBB4AF1115B4F3400CF791D</string>
|
||||
<string>6BBB4AF2115B4F3400CF791D</string>
|
||||
<string>6BBB4AF3115B4F3400CF791D</string>
|
||||
<string>6BBB4AF4115B4F3400CF791D</string>
|
||||
<string>6BBB4AF5115B4F3400CF791D</string>
|
||||
<string>6BBB4AF6115B4F3400CF791D</string>
|
||||
<string>6BBB4AF7115B4F3400CF791D</string>
|
||||
<string>6BBB4AF8115B4F3400CF791D</string>
|
||||
<string>6BBB4AF9115B4F3400CF791D</string>
|
||||
@ -466,83 +458,11 @@
|
||||
<string>6BBB4B0F115B4F3400CF791D</string>
|
||||
<string>6BBB4B10115B4F3400CF791D</string>
|
||||
<string>6BBB4B11115B4F3400CF791D</string>
|
||||
<string>6BBB4B14115B4F3400CF791D</string>
|
||||
<string>6BBB4B3A115B5BFA00CF791D</string>
|
||||
<string>6BBB4B3C115B5BFA00CF791D</string>
|
||||
<string>6BBB4B41115B5D4B00CF791D</string>
|
||||
<string>6BBB4B43115B5D4B00CF791D</string>
|
||||
<string>6BBB4B45115B5D4B00CF791D</string>
|
||||
<string>6BBB4B47115B5D4B00CF791D</string>
|
||||
<string>6BBB4B49115B5D4B00CF791D</string>
|
||||
<string>6BBB4B4E115B5DD900CF791D</string>
|
||||
<string>6BBB4B5E115B609F00CF791D</string>
|
||||
<string>6BBB4B60115B609F00CF791D</string>
|
||||
<string>6BBB4B62115B609F00CF791D</string>
|
||||
<string>6BBB4B64115B609F00CF791D</string>
|
||||
<string>6BBB4B66115B609F00CF791D</string>
|
||||
<string>6BBB4B68115B609F00CF791D</string>
|
||||
<string>6BBB4B6A115B609F00CF791D</string>
|
||||
<string>6BBB4B6C115B609F00CF791D</string>
|
||||
<string>6BBB4B6E115B609F00CF791D</string>
|
||||
<string>6BBB4B85115B639200CF791D</string>
|
||||
<string>6BBB4B87115B639200CF791D</string>
|
||||
<string>6BBB4B88115B639200CF791D</string>
|
||||
<string>6BBB4B8A115B639200CF791D</string>
|
||||
<string>6BBB4B8C115B639200CF791D</string>
|
||||
<string>6BBB4B8E115B639200CF791D</string>
|
||||
<string>6BBB4B90115B639200CF791D</string>
|
||||
<string>6BBB4B92115B639200CF791D</string>
|
||||
<string>6BBB4B95115B639200CF791D</string>
|
||||
<string>6BBB4B96115B639200CF791D</string>
|
||||
<string>6BBB4B97115B639200CF791D</string>
|
||||
<string>6BBB4B98115B639200CF791D</string>
|
||||
<string>6BBB4B99115B639200CF791D</string>
|
||||
<string>6BBB4B9A115B639200CF791D</string>
|
||||
<string>6BBB4B9B115B639200CF791D</string>
|
||||
<string>6BBB4B9C115B639200CF791D</string>
|
||||
<string>6BBB4B9D115B639200CF791D</string>
|
||||
<string>6BBB4B9E115B639200CF791D</string>
|
||||
<string>6BBB4B9F115B639200CF791D</string>
|
||||
<string>6BBB4BA0115B639200CF791D</string>
|
||||
<string>6BBB4BA1115B639200CF791D</string>
|
||||
<string>6BBB4BA2115B639200CF791D</string>
|
||||
<string>6BBB4BA3115B639200CF791D</string>
|
||||
<string>6BBB4BB1115B649700CF791D</string>
|
||||
<string>6BBB4BCC115B653C00CF791D</string>
|
||||
<string>6BBB4BE0115B679300CF791D</string>
|
||||
<string>6BBB4BE1115B679300CF791D</string>
|
||||
<string>6BBB4BE3115B679300CF791D</string>
|
||||
<string>6BBB4BE8115B69BE00CF791D</string>
|
||||
<string>6BBB4BED115B6B8A00CF791D</string>
|
||||
<string>6BBB4BEF115B6B8A00CF791D</string>
|
||||
<string>6BBB4BF1115B6B8A00CF791D</string>
|
||||
<string>6BBB4BF3115B6B8A00CF791D</string>
|
||||
<string>6BBB4BF5115B6B8A00CF791D</string>
|
||||
<string>6BBB4BF7115B6B8A00CF791D</string>
|
||||
<string>6BBB4BFF115B6D9C00CF791D</string>
|
||||
<string>6BBB4C01115B6D9C00CF791D</string>
|
||||
<string>6BBB4C03115B6D9C00CF791D</string>
|
||||
<string>6BBB4C0A115B6E0200CF791D</string>
|
||||
<string>6BBB4C10115B72F400CF791D</string>
|
||||
<string>6BBB4C12115B72F400CF791D</string>
|
||||
<string>6BBB4C17115B758400CF791D</string>
|
||||
<string>6BBB4C18115B758400CF791D</string>
|
||||
<string>6BBB4C19115B758400CF791D</string>
|
||||
<string>6BBB4C1A115B758400CF791D</string>
|
||||
<string>6BBB4C1B115B758400CF791D</string>
|
||||
<string>6BBB4C22115B784C00CF791D</string>
|
||||
<string>6BBB4C24115B784C00CF791D</string>
|
||||
<string>6BBB4C26115B784C00CF791D</string>
|
||||
<string>6BBB4C28115B784C00CF791D</string>
|
||||
<string>6BBB4C2A115B784C00CF791D</string>
|
||||
<string>6BBB4C2C115B784C00CF791D</string>
|
||||
<string>6BBB4C3B115B7A3D00CF791D</string>
|
||||
<string>6BBB4C3F115B7A3D00CF791D</string>
|
||||
<string>6BBB4C41115B7A3D00CF791D</string>
|
||||
<string>6BBB4C43115B7A3D00CF791D</string>
|
||||
<string>6BBB4C5B115B8BF700CF791D</string>
|
||||
<string>6BBB4C5C115B8BF700CF791D</string>
|
||||
<string>6BBB4C5D115B8BF700CF791D</string>
|
||||
<string>6BED8AD61174509800582F38</string>
|
||||
<string>6BED8AF0117455CB00582F38</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
@ -558,7 +478,7 @@
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {970, 564}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>11 76 1256 702 0 0 1280 778 </string>
|
||||
<string>13 75 1256 702 0 0 1280 778 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
@ -581,7 +501,9 @@
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {876, 55}}</string>
|
||||
<string>{{10, 27}, {970, 65}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>13 75 1256 702 0 0 1280 778 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
@ -636,8 +558,6 @@
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {970, 65}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>11 76 1256 702 0 0 1280 778 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
@ -665,11 +585,11 @@
|
||||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>6BBB4B17115B4F3400CF791D</string>
|
||||
<string>6BED8AE6117451EB00582F38</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>6BBB4B18115B4F3400CF791D</string>
|
||||
<string>6BED8AE7117451EB00582F38</string>
|
||||
<string>6B8632A30F78115100E2684A</string>
|
||||
<string>6BBB4B19115B4F3400CF791D</string>
|
||||
<string>6BED8AE8117451EB00582F38</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
@ -818,14 +738,14 @@
|
||||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>6BBB4B1A115B4F3400CF791D</string>
|
||||
<string>6BED8AE9117451EB00582F38</string>
|
||||
<string>1CCC7628064C1048000F2A68</string>
|
||||
<string>1CCC7629064C1048000F2A68</string>
|
||||
<string>6BBB4B1B115B4F3400CF791D</string>
|
||||
<string>6BBB4B1C115B4F3400CF791D</string>
|
||||
<string>6BBB4B1D115B4F3400CF791D</string>
|
||||
<string>6BBB4B1E115B4F3400CF791D</string>
|
||||
<string>6BBB4B1F115B4F3400CF791D</string>
|
||||
<string>6BED8AEA117451EB00582F38</string>
|
||||
<string>6BED8AEB117451EB00582F38</string>
|
||||
<string>6BED8AEC117451EB00582F38</string>
|
||||
<string>6BED8AED117451EB00582F38</string>
|
||||
<string>6B8632A30F78115100E2684A</string>
|
||||
</array>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
@ -857,12 +777,10 @@
|
||||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>6BBB4BB4115B649700CF791D</string>
|
||||
<string>6BBB4BB5115B649700CF791D</string>
|
||||
<string>/Users/memon/Code/recastnavigation/RecastDemo/Build/Xcode/Recast.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>11 76 1256 702 0 0 1280 778 </string>
|
||||
<string>13 75 1256 702 0 0 1280 778 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
@ -707,19 +707,21 @@ void NavMeshTesterTool::handleRender()
|
||||
static const unsigned int endCol = duRGBA(51,102,0,129);
|
||||
static const unsigned int pathCol = duRGBA(0,0,0,64);
|
||||
|
||||
glDepthMask(GL_FALSE);
|
||||
|
||||
const float agentRadius = m_sample->getAgentRadius();
|
||||
const float agentHeight = m_sample->getAgentHeight();
|
||||
const float agentClimb = m_sample->getAgentClimb();
|
||||
|
||||
dd.depthMask(false);
|
||||
if (m_sposSet)
|
||||
drawAgent(m_spos, agentRadius, agentHeight, agentClimb, startCol);
|
||||
if (m_eposSet)
|
||||
drawAgent(m_epos, agentRadius, agentHeight, agentClimb, endCol);
|
||||
dd.depthMask(true);
|
||||
|
||||
if (!m_navMesh)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_toolMode == TOOLMODE_PATHFIND_ITER)
|
||||
{
|
||||
@ -734,17 +736,20 @@ void NavMeshTesterTool::handleRender()
|
||||
|
||||
if (m_nsmoothPath)
|
||||
{
|
||||
dd.depthMask(false);
|
||||
const unsigned int pathCol = duRGBA(0,0,0,220);
|
||||
dd.begin(DU_DRAW_LINES, 3.0f);
|
||||
for (int i = 0; i < m_nsmoothPath; ++i)
|
||||
dd.vertex(m_smoothPath[i*3], m_smoothPath[i*3+1]+0.1f, m_smoothPath[i*3+2], pathCol);
|
||||
dd.end();
|
||||
dd.depthMask(true);
|
||||
}
|
||||
|
||||
if (m_pathIterNum)
|
||||
{
|
||||
duDebugDrawNavMeshPoly(&dd, m_navMesh, m_pathIterPolys[0], duRGBA(255,255,255,128));
|
||||
|
||||
dd.depthMask(false);
|
||||
dd.begin(DU_DRAW_LINES, 1.0f);
|
||||
|
||||
const unsigned int prevCol = duRGBA(255,192,0,220);
|
||||
@ -770,6 +775,7 @@ void NavMeshTesterTool::handleRender()
|
||||
}
|
||||
|
||||
dd.end();
|
||||
dd.depthMask(true);
|
||||
}
|
||||
}
|
||||
else if (m_toolMode == TOOLMODE_PATHFIND_STRAIGHT)
|
||||
@ -785,6 +791,7 @@ void NavMeshTesterTool::handleRender()
|
||||
|
||||
if (m_nstraightPath)
|
||||
{
|
||||
dd.depthMask(false);
|
||||
const unsigned int pathCol = duRGBA(64,16,0,220);
|
||||
const unsigned int offMeshCol = duRGBA(128,96,0,220);
|
||||
dd.begin(DU_DRAW_LINES, 2.0f);
|
||||
@ -815,6 +822,7 @@ void NavMeshTesterTool::handleRender()
|
||||
dd.vertex(m_straightPath[i*3], m_straightPath[i*3+1]+0.4f, m_straightPath[i*3+2], pathCol);
|
||||
}
|
||||
dd.end();
|
||||
dd.depthMask(true);
|
||||
}
|
||||
}
|
||||
else if (m_toolMode == TOOLMODE_RAYCAST)
|
||||
@ -826,6 +834,7 @@ void NavMeshTesterTool::handleRender()
|
||||
for (int i = 1; i < m_npolys; ++i)
|
||||
duDebugDrawNavMeshPoly(&dd, m_navMesh, m_polys[i], pathCol);
|
||||
|
||||
dd.depthMask(false);
|
||||
const unsigned int pathCol = m_hitResult ? duRGBA(64,16,0,220) : duRGBA(240,240,240,220);
|
||||
dd.begin(DU_DRAW_LINES, 2.0f);
|
||||
for (int i = 0; i < m_nstraightPath-1; ++i)
|
||||
@ -849,22 +858,26 @@ void NavMeshTesterTool::handleRender()
|
||||
m_hitPos[2] + m_hitNormal[2]*agentRadius, hitCol);
|
||||
dd.end();
|
||||
}
|
||||
dd.depthMask(true);
|
||||
}
|
||||
}
|
||||
else if (m_toolMode == TOOLMODE_DISTANCE_TO_WALL)
|
||||
{
|
||||
duDebugDrawNavMeshPoly(&dd, m_navMesh, m_startRef, startCol);
|
||||
dd.depthMask(false);
|
||||
duDebugDrawCircle(&dd, m_spos[0], m_spos[1]+agentHeight/2, m_spos[2], m_distanceToWall, duRGBA(64,16,0,220), 2.0f);
|
||||
dd.begin(DU_DRAW_LINES, 3.0f);
|
||||
dd.vertex(m_hitPos[0], m_hitPos[1] + 0.02f, m_hitPos[2], duRGBA(0,0,0,192));
|
||||
dd.vertex(m_hitPos[0], m_hitPos[1] + agentHeight, m_hitPos[2], duRGBA(0,0,0,192));
|
||||
dd.end();
|
||||
dd.depthMask(true);
|
||||
}
|
||||
else if (m_toolMode == TOOLMODE_FIND_POLYS_AROUND)
|
||||
{
|
||||
for (int i = 0; i < m_npolys; ++i)
|
||||
{
|
||||
duDebugDrawNavMeshPoly(&dd, m_navMesh, m_polys[i], pathCol);
|
||||
dd.depthMask(false);
|
||||
if (m_parent[i])
|
||||
{
|
||||
float p0[3], p1[3];
|
||||
@ -874,6 +887,7 @@ void NavMeshTesterTool::handleRender()
|
||||
duDebugDrawArc(&dd, p0[0],p0[1],p0[2], p1[0],p1[1],p1[2], 0.25f, 0.0f, 0.4f, duRGBA(0,0,0,128), 2.0f);
|
||||
dd.depthMask(true);
|
||||
}
|
||||
dd.depthMask(true);
|
||||
}
|
||||
|
||||
if (m_sposSet && m_eposSet)
|
||||
@ -886,8 +900,6 @@ void NavMeshTesterTool::handleRender()
|
||||
dd.depthMask(true);
|
||||
}
|
||||
}
|
||||
|
||||
glDepthMask(GL_TRUE);
|
||||
}
|
||||
|
||||
void NavMeshTesterTool::handleRenderOverlay(double* proj, double* model, int* view)
|
||||
|
Loading…
x
Reference in New Issue
Block a user