maintain essential topological invariants
This commit is contained in:
@ -82,6 +82,8 @@ struct qhVertex
|
||||
qhVertex* prev;
|
||||
qhVertex* next;
|
||||
|
||||
//qhHalfEdge* edge;
|
||||
|
||||
b3Vec3 position;
|
||||
|
||||
qhFace* conflictFace;
|
||||
@ -116,11 +118,20 @@ public:
|
||||
// Get the number of iterations this algorithm ran.
|
||||
u32 GetIterations() const;
|
||||
|
||||
// Validate this hull.
|
||||
void Validate() const;
|
||||
void Validate(const qhFace* face) const;
|
||||
void Validate(const qhHalfEdge* edge) const;
|
||||
// Validate convexity.
|
||||
// Called at each iteration.
|
||||
void ValidateConvexity() const;
|
||||
|
||||
// Validate connectivity.
|
||||
// Called at each iteration.
|
||||
void Validate() const;
|
||||
|
||||
// Called anywhere.
|
||||
void Validate(const qhFace* face) const;
|
||||
|
||||
// Called anywhere.
|
||||
void Validate(const qhHalfEdge* edge) const;
|
||||
|
||||
// Draw this hull.
|
||||
void Draw() const;
|
||||
private:
|
||||
@ -136,6 +147,8 @@ private:
|
||||
|
||||
bool MergeLargeFace(qhFace* face);
|
||||
|
||||
void FixMerge(qhFace* face, qhHalfEdge* ein);
|
||||
|
||||
qhHalfEdge* FindHalfEdge(const qhVertex* v1, const qhVertex* v2) const;
|
||||
|
||||
//
|
||||
|
Reference in New Issue
Block a user