84 if (
mFlags & flag)
return true;
132 HalfEdge(
short _ea,
unsigned char _v,
unsigned char _p) :
ea(_ea),
v(_v),
p(_p) {}
143 ConvexH(
int vertices_size,
int edges_size,
int facets_size);
151 int4(
int _x,
int _y,
int _z,
int _w)
227 unsigned int& vcount,
btAlignedObjectArray< unsigned int > TUIntArray
includes modifications/improvements by John Ratcliff, see BringOutYourDead below.
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
HalfEdge(short _ea, unsigned char _v, unsigned char _p)
btAlignedObjectArray< HalfEdge > edges
btAlignedObjectArray< btPlane > facets
btAlignedObjectArray< btVector3 > vertices
HullDesc(HullFlag flag, unsigned int vcount, const btVector3 *vertices, unsigned int stride=sizeof(btVector3))
bool HasHullFlag(HullFlag flag) const
void ClearHullFlag(HullFlag flag)
unsigned int mMaxVertices
const btVector3 * mVertices
unsigned int mVertexStride
void SetHullFlag(HullFlag flag)
The HullLibrary class can create a convex hull from a collection of vertices, using the ComputeHull m...
btHullTriangle * extrudable(btScalar epsilon)
class btHullTriangle * allocateTriangle(int a, int b, int c)
bool ComputeHull(unsigned int vcount, const btVector3 *vertices, PHullResult &result, unsigned int vlimit)
HullError ReleaseResult(HullResult &result)
void BringOutYourDead(const btVector3 *verts, unsigned int vcount, btVector3 *overts, unsigned int &ocount, unsigned int *indices, unsigned indexcount)
HullError CreateConvexHull(const HullDesc &desc, HullResult &result)
void deAllocateTriangle(btHullTriangle *)
int calchull(btVector3 *verts, int verts_count, TUIntArray &tris_out, int &tris_count, int vlimit)
btAlignedObjectArray< int > m_vertexIndexMapping
void b2bfix(btHullTriangle *s, btHullTriangle *t)
void removeb2b(btHullTriangle *s, btHullTriangle *t)
btAlignedObjectArray< class btHullTriangle * > m_tris
class ConvexH * ConvexHCrop(ConvexH &convex, const btPlane &slice)
void checkit(btHullTriangle *t)
void extrude(class btHullTriangle *t0, int v)
int calchullgen(btVector3 *verts, int verts_count, int vlimit)
int4 FindSimplex(btVector3 *verts, int verts_count, btAlignedObjectArray< int > &allow)
bool CleanupVertices(unsigned int svcount, const btVector3 *svertices, unsigned int stride, unsigned int &vcount, btVector3 *vertices, btScalar normalepsilon, btVector3 &scale)
btAlignedObjectArray< btVector3 > m_OutputVertices
btAlignedObjectArray< unsigned int > m_Indices
unsigned int mNumOutputVertices
btPlane(const btVector3 &n, btScalar d)
btVector3 can be used to represent 3D points and vectors.
int4(int _x, int _y, int _z, int _w)
const int & operator[](int i) const