consistency

This commit is contained in:
Irlan 2018-04-27 01:01:47 -03:00
parent cd6c7e188a
commit c3b55d3323
2 changed files with 14 additions and 15 deletions

View File

@ -135,7 +135,7 @@ private:
void FindHorizon(qhVertex* eye); void FindHorizon(qhVertex* eye);
void AddNewFaces(qhVertex* eye); void AddNewFaces(qhVertex* eye);
void AddNewFace(qhVertex* v1, qhVertex* v2, qhVertex* v3); qhFace* AddNewFace(qhVertex* v1, qhVertex* v2, qhVertex* v3);
void MergeFaces(); void MergeFaces();
bool MergeFace(qhFace* face); bool MergeFace(qhFace* face);

View File

@ -265,22 +265,20 @@ bool qhHull::BuildInitialHull(const b3Vec3* vertices, u32 vertexCount)
qhVertex* v4 = AllocateVertex(); qhVertex* v4 = AllocateVertex();
v4->position = D; v4->position = D;
qhFace* faces[4];
if (b3Distance(D, plane) < 0.0f) if (b3Distance(D, plane) < 0.0f)
{ {
faces[0] = AddFace(v1, v2, v3); AddFace(v1, v2, v3);
faces[1] = AddFace(v4, v2, v1); AddFace(v4, v2, v1);
faces[2] = AddFace(v4, v3, v2); AddFace(v4, v3, v2);
faces[3] = AddFace(v4, v1, v3); AddFace(v4, v1, v3);
} }
else else
{ {
// Ensure CCW order. // Ensure CCW order.
faces[0] = AddFace(v1, v3, v2); AddFace(v1, v3, v2);
faces[1] = AddFace(v4, v1, v2); AddFace(v4, v1, v2);
faces[2] = AddFace(v4, v2, v3); AddFace(v4, v2, v3);
faces[3] = AddFace(v4, v3, v1); AddFace(v4, v3, v1);
} }
// Connectivity check. // Connectivity check.
@ -301,9 +299,8 @@ bool qhHull::BuildInitialHull(const b3Vec3* vertices, u32 vertexCount)
float32 d0 = m_tolerance; float32 d0 = m_tolerance;
qhFace* f0 = NULL; qhFace* f0 = NULL;
for (u32 j = 0; j < 4; ++j) for (qhFace* f = m_faceList.head; f != NULL; f = f->next)
{ {
qhFace* f = faces[j];
float32 d = b3Distance(p, f->plane); float32 d = b3Distance(p, f->plane);
if (d > d0) if (d > d0)
{ {
@ -448,7 +445,7 @@ void qhHull::AddNewFaces(qhVertex* eye)
qhVertex* v2 = edge->tail; qhVertex* v2 = edge->tail;
qhVertex* v3 = edge->twin->tail; qhVertex* v3 = edge->twin->tail;
AddNewFace(v1, v2, v3); qhFace* face = AddNewFace(v1, v2, v3);
} }
// Remove obsolete faces // Remove obsolete faces
@ -612,7 +609,7 @@ qhFace* qhHull::AddFace(qhVertex* v1, qhVertex* v2, qhVertex* v3)
return face; return face;
} }
void qhHull::AddNewFace(qhVertex* v1, qhVertex* v2, qhVertex* v3) qhFace* qhHull::AddNewFace(qhVertex* v1, qhVertex* v2, qhVertex* v3)
{ {
qhFace* face = AllocateFace(); qhFace* face = AllocateFace();
@ -649,6 +646,8 @@ void qhHull::AddNewFace(qhVertex* v1, qhVertex* v2, qhVertex* v3)
face->next = NULL; face->next = NULL;
m_newFaces[m_newFaceCount++] = face; m_newFaces[m_newFaceCount++] = face;
return face;
} }
bool qhHull::MergeFace(qhFace* rightFace) bool qhHull::MergeFace(qhFace* rightFace)