fix #35; check edge validity;
This commit is contained in:
		| @@ -67,6 +67,14 @@ struct qhFace | ||||
|  | ||||
| struct qhHalfEdge | ||||
| { | ||||
| 	enum State | ||||
| 	{ | ||||
| 		e_used, | ||||
| 		e_deleted | ||||
| 	}; | ||||
| 	 | ||||
| 	State state; | ||||
|  | ||||
| 	qhHalfEdge* freeNext; | ||||
|  | ||||
| 	qhVertex* tail; | ||||
|   | ||||
| @@ -121,11 +121,7 @@ inline void qhFace::ComputeCenterAndPlane() | ||||
|  | ||||
| // Given a number of points return the required memory size in  | ||||
| // bytes for constructing the convex hull of those points.  | ||||
| // This function uses constant expression (C++11). Therefore, you can evaluate  | ||||
| // its value at compile-time. That is particularly usefull when you want to  | ||||
| // create a stack buffer from a constant number of vertices.  | ||||
| // Due to the constexpr specifier, this function is automatically inlined. | ||||
| constexpr u32 qhGetBufferSize(u32 pointCount) | ||||
| inline u32 qhGetBufferSize(u32 pointCount) | ||||
| { | ||||
| 	u32 size = 0; | ||||
|  | ||||
| @@ -179,12 +175,14 @@ inline void qhHull::FreeVertex(qhVertex* v) | ||||
| inline qhHalfEdge* qhHull::AllocateEdge() | ||||
| { | ||||
| 	qhHalfEdge* e = m_freeEdges; | ||||
| 	e->state = qhHalfEdge::e_used; | ||||
| 	m_freeEdges = e->freeNext; | ||||
| 	return e; | ||||
| } | ||||
|  | ||||
| inline void qhHull::FreeEdge(qhHalfEdge* e) | ||||
| { | ||||
| 	e->state = qhHalfEdge::e_deleted; | ||||
| 	e->freeNext = m_freeEdges; | ||||
| 	m_freeEdges = e; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user