Fixed AABB hit normal.

This commit is contained in:
Branimir Karadžić
2017-09-28 21:50:11 -07:00
parent 5e40a84769
commit 783db66079
3 changed files with 49 additions and 31 deletions

View File

@@ -1103,29 +1103,39 @@ struct DebugDraw
void draw(const Aabb& _aabb)
{
moveTo(_aabb.m_min[0], _aabb.m_min[1], _aabb.m_min[2]);
lineTo(_aabb.m_max[0], _aabb.m_min[1], _aabb.m_min[2]);
lineTo(_aabb.m_max[0], _aabb.m_max[1], _aabb.m_min[2]);
lineTo(_aabb.m_min[0], _aabb.m_max[1], _aabb.m_min[2]);
close();
const Attrib& attrib = m_attrib[m_stack];
if (attrib.m_wireframe)
{
moveTo(_aabb.m_min[0], _aabb.m_min[1], _aabb.m_min[2]);
lineTo(_aabb.m_max[0], _aabb.m_min[1], _aabb.m_min[2]);
lineTo(_aabb.m_max[0], _aabb.m_max[1], _aabb.m_min[2]);
lineTo(_aabb.m_min[0], _aabb.m_max[1], _aabb.m_min[2]);
close();
moveTo(_aabb.m_min[0], _aabb.m_min[1], _aabb.m_max[2]);
lineTo(_aabb.m_max[0], _aabb.m_min[1], _aabb.m_max[2]);
lineTo(_aabb.m_max[0], _aabb.m_max[1], _aabb.m_max[2]);
lineTo(_aabb.m_min[0], _aabb.m_max[1], _aabb.m_max[2]);
close();
moveTo(_aabb.m_min[0], _aabb.m_min[1], _aabb.m_max[2]);
lineTo(_aabb.m_max[0], _aabb.m_min[1], _aabb.m_max[2]);
lineTo(_aabb.m_max[0], _aabb.m_max[1], _aabb.m_max[2]);
lineTo(_aabb.m_min[0], _aabb.m_max[1], _aabb.m_max[2]);
close();
moveTo(_aabb.m_min[0], _aabb.m_min[1], _aabb.m_min[2]);
lineTo(_aabb.m_min[0], _aabb.m_min[1], _aabb.m_max[2]);
moveTo(_aabb.m_min[0], _aabb.m_min[1], _aabb.m_min[2]);
lineTo(_aabb.m_min[0], _aabb.m_min[1], _aabb.m_max[2]);
moveTo(_aabb.m_max[0], _aabb.m_min[1], _aabb.m_min[2]);
lineTo(_aabb.m_max[0], _aabb.m_min[1], _aabb.m_max[2]);
moveTo(_aabb.m_max[0], _aabb.m_min[1], _aabb.m_min[2]);
lineTo(_aabb.m_max[0], _aabb.m_min[1], _aabb.m_max[2]);
moveTo(_aabb.m_min[0], _aabb.m_max[1], _aabb.m_min[2]);
lineTo(_aabb.m_min[0], _aabb.m_max[1], _aabb.m_max[2]);
moveTo(_aabb.m_min[0], _aabb.m_max[1], _aabb.m_min[2]);
lineTo(_aabb.m_min[0], _aabb.m_max[1], _aabb.m_max[2]);
moveTo(_aabb.m_max[0], _aabb.m_max[1], _aabb.m_min[2]);
lineTo(_aabb.m_max[0], _aabb.m_max[1], _aabb.m_max[2]);
moveTo(_aabb.m_max[0], _aabb.m_max[1], _aabb.m_min[2]);
lineTo(_aabb.m_max[0], _aabb.m_max[1], _aabb.m_max[2]);
}
else
{
Obb obb;
aabbToObb(obb, _aabb);
draw(Mesh::Cube, obb.m_mtx, 1, false);
}
}
void draw(const Cylinder& _cylinder, bool _capsule)