NavMeshTesterTool XZY->XYZ

This commit is contained in:
Kawe Mazidjatari 2022-07-28 12:14:35 +02:00
parent 34076142ba
commit 4ada4cef72

View File

@ -941,15 +941,14 @@ void NavMeshTesterTool::recalc()
#endif
m_navQuery->findPolysAroundCircle(m_startRef, m_spos, dist, &m_filter,
m_polys, m_parent, 0, &m_npolys, MAX_POLYS);
}
}
else if (m_toolMode == TOOLMODE_FIND_POLYS_IN_SHAPE)
{
if (m_sposSet && m_startRef && m_eposSet)
{
const float nx = (m_epos[1] - m_spos[1])*0.25f;
const float ny = -(m_epos[0] - m_spos[0])*0.25f;
const float nx = -(m_epos[1] - m_spos[1])*0.25f;
const float ny = (m_epos[0] - m_spos[0])*0.25f;
const float agentHeight = m_sample ? m_sample->getAgentHeight() : 0;
m_queryPoly[0] = m_spos[0] + nx*1.2f;
@ -967,7 +966,7 @@ void NavMeshTesterTool::recalc()
m_queryPoly[9] = m_epos[0] + nx;
m_queryPoly[10] = m_epos[1] + ny;
m_queryPoly[11] = m_epos[2] + agentHeight/2;
#ifdef DUMP_REQS
printf("fpp %f %f %f %f %f %f %f %f %f %f %f %f 0x%x 0x%x\n",
m_queryPoly[0],m_queryPoly[1],m_queryPoly[2],
@ -1067,7 +1066,7 @@ void NavMeshTesterTool::handleRender()
const unsigned int spathCol = 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], m_smoothPath[i*3+2] + 0.1f, spathCol);
dd.vertex(m_smoothPath[i*3], m_smoothPath[i*3+1], m_smoothPath[i*3+2]+0.1f, spathCol);
dd.end();
dd.depthMask(true);
}
@ -1083,22 +1082,22 @@ void NavMeshTesterTool::handleRender()
const unsigned int curCol = duRGBA(255,255,255,220);
const unsigned int steerCol = duRGBA(0,192,255,220);
dd.vertex(m_prevIterPos[0],m_prevIterPos[1],m_prevIterPos[2] - 0.3f, prevCol);
dd.vertex(m_prevIterPos[0],m_prevIterPos[1],m_prevIterPos[2] + 0.3f, prevCol);
dd.vertex(m_prevIterPos[0],m_prevIterPos[1],m_prevIterPos[2]-0.3f, prevCol);
dd.vertex(m_prevIterPos[0],m_prevIterPos[1],m_prevIterPos[2]+0.3f, prevCol);
dd.vertex(m_iterPos[0],m_iterPos[1],m_iterPos[2] - 0.3f, curCol);
dd.vertex(m_iterPos[0],m_iterPos[1],m_iterPos[2] + 0.3f, curCol);
dd.vertex(m_iterPos[0],m_iterPos[1],m_iterPos[2]-0.3f, curCol);
dd.vertex(m_iterPos[0],m_iterPos[1],m_iterPos[2]+0.3f, curCol);
dd.vertex(m_prevIterPos[0],m_prevIterPos[1],m_prevIterPos[2] + 0.3f, prevCol);
dd.vertex(m_iterPos[0],m_iterPos[1],m_iterPos[2] + 0.3f, prevCol);
dd.vertex(m_prevIterPos[0],m_prevIterPos[1],m_prevIterPos[2]+0.3f,prevCol);
dd.vertex(m_iterPos[0],m_iterPos[1],m_iterPos[2]+0.3f,prevCol);
dd.vertex(m_prevIterPos[0],m_prevIterPos[1],m_prevIterPos[2] + 0.3f, steerCol);
dd.vertex(m_steerPos[0],m_steerPos[1],m_steerPos[2] + 0.3f, steerCol);
dd.vertex(m_prevIterPos[0],m_prevIterPos[1],m_prevIterPos[2]+0.3f,steerCol);
dd.vertex(m_steerPos[0],m_steerPos[1],m_steerPos[2]+0.3f,steerCol);
for (int i = 0; i < m_steerPointCount-1; ++i)
{
dd.vertex(m_steerPoints[i*3+0],m_steerPoints[i*3+1],m_steerPoints[i*3+2] + 0.2f, duDarkenCol(steerCol));
dd.vertex(m_steerPoints[(i+1)*3+0],m_steerPoints[(i+1)*3+1],m_steerPoints[(i+1)*3+2] + 0.2f, duDarkenCol(steerCol));
dd.vertex(m_steerPoints[(i+1)*3+0],m_steerPoints[(i+1)*3+1],m_steerPoints[(i+1)*3+2]+0.2f,duDarkenCol(steerCol));
}
dd.end();
@ -1184,10 +1183,10 @@ void NavMeshTesterTool::handleRender()
{
const unsigned int hitCol = duRGBA(0,0,0,128);
dd.begin(DU_DRAW_LINES, 2.0f);
dd.vertex(m_hitPos[0], m_hitPos[1] , m_hitPos[2] + 0.4f, hitCol);
dd.vertex(m_hitPos[0] + m_hitNormal[0]*agentRadius,
m_hitPos[1] + m_hitNormal[1] * agentRadius ,
m_hitPos[2] + 0.4f + m_hitNormal[2] * agentRadius, hitCol);
dd.vertex(m_hitPos[0],m_hitPos[1],m_hitPos[2]+0.4f,hitCol);
dd.vertex(m_hitPos[0]+m_hitNormal[0]*agentRadius,
m_hitPos[1]+m_hitNormal[1]*agentRadius,
m_hitPos[2]+0.4f+m_hitNormal[2]*agentRadius,hitCol);
dd.end();
}
dd.depthMask(true);
@ -1216,7 +1215,7 @@ void NavMeshTesterTool::handleRender()
dd.depthMask(false);
getPolyCenter(m_navMesh, m_parent[i], p0);
getPolyCenter(m_navMesh, m_polys[i], p1);
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);
duDebugDrawArc(&dd, p0[0],p0[1],p0[2], p1[0],p1[1],p1[2], 0.25f, 0.0f, 30.0f, duRGBA(0,0,0,128), 2.0f);
dd.depthMask(true);
}
dd.depthMask(true);
@ -1244,7 +1243,7 @@ void NavMeshTesterTool::handleRender()
dd.depthMask(false);
getPolyCenter(m_navMesh, m_parent[i], p0);
getPolyCenter(m_navMesh, m_polys[i], p1);
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);
duDebugDrawArc(&dd, p0[0],p0[1],p0[2], p1[0],p1[1],p1[2], 0.25f, 0.0f, 30.0f, duRGBA(0,0,0,128), 2.0f);
dd.depthMask(true);
}
dd.depthMask(true);
@ -1278,7 +1277,7 @@ void NavMeshTesterTool::handleRender()
dd.depthMask(false);
getPolyCenter(m_navMesh, m_parent[i], p0);
getPolyCenter(m_navMesh, m_polys[i], p1);
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);
duDebugDrawArc(&dd, p0[0],p0[1],p0[2], p1[0],p1[1],p1[2], 0.25f, 0.0f, 30.0f, duRGBA(0,0,0,128), 2.0f);
dd.depthMask(true);
}
@ -1302,8 +1301,8 @@ void NavMeshTesterTool::handleRender()
float delta[3], norm[3], p0[3], p1[3];
dtVsub(delta, s+3,s);
dtVmad(p0, s, delta, 0.5f);
norm[0] = delta[2];
norm[1] = -delta[0]; //NB(warmist):unsure TODO
norm[0] = delta[1];
norm[1] = -delta[0];
norm[2] = 0;
dtVnormalize(norm);
dtVmad(p1, p0, norm, agentRadius*0.5f);
@ -1312,8 +1311,8 @@ void NavMeshTesterTool::handleRender()
if (refs[j])
{
unsigned int col = duRGBA(255,255,255,32);
dd.vertex(s[0],s[1],s[2] + agentClimb,col);
dd.vertex(s[3],s[4],s[5] + agentClimb,col);
dd.vertex(s[0],s[1],s[2]+agentClimb,col);
dd.vertex(s[3],s[4],s[5]+agentClimb,col);
}
else
{
@ -1321,11 +1320,11 @@ void NavMeshTesterTool::handleRender()
if (dtTriArea2D(m_spos, s, s+3) < 0.0f)
col = duRGBA(96,32,16,192);
dd.vertex(p0[0],p0[1],p0[2] + agentClimb,col);
dd.vertex(p1[0],p1[1],p1[2] + agentClimb,col);
dd.vertex(p0[0],p0[1],p0[2]+agentClimb,col);
dd.vertex(p1[0],p1[1],p1[2]+agentClimb,col);
dd.vertex(s[0],s[1],s[2] + agentClimb,col);
dd.vertex(s[3],s[4],s[5] + agentClimb,col);
dd.vertex(s[0],s[1],s[2]+agentClimb,col);
dd.vertex(s[3],s[4],s[5]+agentClimb,col);
}
}
dd.end();