cleanup quickhull
This commit is contained in:
		| @@ -32,7 +32,6 @@ struct qhList | ||||
| 	u32 count; | ||||
| }; | ||||
|  | ||||
| // Half-edge data structure definition used by qhHull. | ||||
| struct qhHalfEdge; | ||||
| struct qhVertex; | ||||
|  | ||||
| @@ -90,16 +89,6 @@ struct qhVertex | ||||
| 	qhFace* conflictFace; | ||||
| }; | ||||
|  | ||||
| // todo | ||||
| // Snapshots of the algorithm for debug drawing. | ||||
| struct qhDraw | ||||
| { | ||||
| 	//DrawIteration* iter; // current iteration | ||||
| 	//b3Array<DrawIteration> iterations; | ||||
| }; | ||||
|  | ||||
| class b3Draw; | ||||
|  | ||||
| // Given a number of points return the required memory size in bytes for constructing the  | ||||
| // convex hull of those points. Use this function before allocating the memory buffer passed  | ||||
| // as argument to Construct. | ||||
| @@ -119,15 +108,23 @@ public: | ||||
| 	// Use qhGetMemorySize to see how many free bytes should be available in the buffer. | ||||
| 	void Construct(void* memory, const b3Array<b3Vec3>& vertices); | ||||
|  | ||||
| 	// Output of qhHull. | ||||
| 	// todo  | ||||
| 	// Output a cleaner data structure. Maybe similar to b3Hull but storing larger hulls? | ||||
| 	qhList<qhFace> m_faceList; // convex hull | ||||
| 	u32 m_iteration; // number of quickhull iterations | ||||
| 	// Get the list of faces in this hull. | ||||
| 	const qhList<qhFace>& GetFaceList() const | ||||
| 	{ | ||||
| 		return m_faceList; | ||||
| 	} | ||||
| 	 | ||||
| 	// Get the number of iterations this algorithm ran. | ||||
| 	u32 GetIterations() const | ||||
| 	{ | ||||
| 		return m_iteration; | ||||
| 	} | ||||
|  | ||||
| 	// Return if this hull is valid. | ||||
| 	bool IsConsistent() const; | ||||
| 	 | ||||
| 	void Draw(b3Draw* draw) const; | ||||
| 	// Draw this hull. | ||||
| 	void Draw() const; | ||||
| private: | ||||
| 	bool BuildInitialHull(const b3Array<b3Vec3>& vertices); | ||||
|  | ||||
| @@ -154,6 +151,12 @@ private: | ||||
| 	// Coplanarity tolerance | ||||
| 	float32 m_tolerance; | ||||
| 	 | ||||
| 	// List of faces | ||||
| 	qhList<qhFace> m_faceList; // list of faces | ||||
| 	 | ||||
| 	// Number of Quickhull iterations | ||||
| 	u32 m_iteration;  | ||||
|  | ||||
| 	// Memory | ||||
| 	qhVertex* AllocateVertex(); | ||||
| 	void FreeVertex(qhVertex* p); | ||||
| @@ -167,6 +170,7 @@ private: | ||||
| 	qhVertex* m_freeVertices; | ||||
| 	qhHalfEdge* m_freeEdges; | ||||
| 	qhFace* m_freeFaces; | ||||
|  | ||||
| }; | ||||
|  | ||||
| #include <bounce/quickhull/qh_hull.inl> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user