Newton Dynamics  4.00
ndConvexHull3d Class Reference
Inheritance diagram for ndConvexHull3d:
ndList< ndConvexHull3dFace > ndClassAlloc

Classes

class  ndNormalMap
 

Public Member Functions

D_CORE_API ndConvexHull3d (const ndConvexHull3d &source)
 
D_CORE_API ndConvexHull3d (const ndFloat64 *const vertexCloud, ndInt32 strideInBytes, ndInt32 count, ndFloat64 distTol, ndInt32 maxVertexCount=0x7fffffff)
 
const ndArray< ndBigVector > & GetVertexPool () const
 
ndFloat64 GetDiagonal () const
 
void GetAABB (ndBigVector &boxP0, ndBigVector &boxP1) const
 
ndFloat64 RayCast (const ndBigVector &localP0, const ndBigVector &localP1) const
 
void CalculateVolumeAndSurfaceArea (ndFloat64 &volume, ndFloat64 &surcafeArea) const
 
- Public Member Functions inherited from ndList< ndConvexHull3dFace >
 operator ndInt32 () const
 
ndInt32 GetCount () const
 
ndNode * GetLast () const
 
ndNode * GetFirst () const
 
ndNode * Append ()
 
ndNode * Append (ndNode *const node)
 
ndNode * Append (const ndConvexHull3dFace &element)
 
ndNode * Addtop ()
 
ndNode * Addtop (ndNode *const node)
 
ndNode * Addtop (const ndConvexHull3dFace &element)
 
void RotateToEnd (ndNode *const node)
 
void RotateToBegin (ndNode *const node)
 
void InsertAfter (ndNode *const root, ndNode *const node)
 
void InsertBefore (ndNode *const root, ndNode *const node)
 
ndNode * Find (const ndConvexHull3dFace &element) const
 
ndNode * GetNodeFromInfo (ndConvexHull3dFace &m_info) const
 
void Remove (ndNode *const node)
 
void Remove (const ndConvexHull3dFace &element)
 
void RemoveAll ()
 
void Merge (ndList< ndConvexHull3dFace, ndContainersAlloc< ndConvexHull3dFace > > &list)
 
void Unlink (ndNode *const node)
 
bool SanityCheck () const
 
- Public Member Functions inherited from ndClassAlloc
 ndClassAlloc ()
 Empty default constructor.
 
 ~ndClassAlloc ()
 Empty.
 

Protected Member Functions

void BuildHull (const ndFloat64 *const vertexCloud, ndInt32 strideInBytes, ndInt32 count, ndFloat64 distTol, ndInt32 maxVertexCount)
 
virtual ndNode * AddFace (ndInt32 i0, ndInt32 i1, ndInt32 i2)
 
virtual void DeleteFace (ndNode *const node)
 
virtual ndInt32 InitVertexArray (ndConvexHull3dVertex *const points, ndInt32 count, void *const memoryPool, ndInt32 maxMemSize)
 
bool CheckFlatSurface (ndConvexHull3dAABBTreeNode *vertexTree, ndConvexHull3dVertex *const points, ndInt32 count, ndFloat64 distTol, ndInt32 maxVertexCount)
 
void CalculateConvexHull2d (ndConvexHull3dAABBTreeNode *vertexTree, ndConvexHull3dVertex *const points, ndInt32 count, ndFloat64 distTol, ndInt32 maxVertexCount)
 
void CalculateConvexHull3d (ndConvexHull3dAABBTreeNode *vertexTree, ndConvexHull3dVertex *const points, ndInt32 count, ndFloat64 distTol, ndInt32 maxVertexCount)
 
ndInt32 SupportVertex (ndConvexHull3dAABBTreeNode **const tree, const ndConvexHull3dVertex *const points, const ndBigVector &dir, const bool removeEntry=true) const
 
ndFloat64 TetrahedrumVolume (const ndBigVector &p0, const ndBigVector &p1, const ndBigVector &p2, const ndBigVector &p3) const
 
ndInt32 GetUniquePoints (ndConvexHull3dVertex *const points, ndInt32 count)
 
ndConvexHull3dAABBTreeNodeBuildTree (ndConvexHull3dAABBTreeNode *const parent, ndConvexHull3dVertex *const points, ndInt32 count, ndInt32 baseIndex, ndInt8 **const memoryPool, ndInt32 &maxMemSize) const
 
bool Sanity () const
 
void Save (const char *const filename) const
 

Protected Attributes

ndBigVector m_aabbP0
 
ndBigVector m_aabbP1
 
ndFloat64 m_diag
 
ndArray< ndBigVectorm_points
 

Additional Inherited Members

- Static Public Member Functions inherited from ndList< ndConvexHull3dFace >
static void FlushFreeList ()
 
- Static Public Member Functions inherited from ndClassAlloc
D_OPERATOR_NEW_AND_DELETE static D_CORE_API void * Malloc (size_t size)
 Generic allocation for any function subclass from ndClassAlloc.
 
static D_CORE_API void Free (void *const ptr)
 Generic destruction for any function subclass from ndClassAlloc.