RavEngine
Loading...
Searching...
No Matches
physx::Ext::DelaunayTetrahedralizer Class Reference

Public Member Functions

 DelaunayTetrahedralizer (const Vec3 &min, const Vec3 &max)
 
 DelaunayTetrahedralizer (PxArray< Vec3 > &points, PxArray< Tetrahedron > &tets)
 
void initialize (PxArray< Vec3 > &points, PxArray< Tetrahedron > &tets)
 
void insertPoints (const PxArray< Vec3 > &inPoints, PxI32 start, PxI32 end, PxArray< Tetrahedron > &tetrahedra)
 
bool insertPoints (const PxArray< Vec3 > &inPoints, PxI32 start, PxI32 end)
 
void exportTetrahedra (PxArray< Tetrahedron > &tetrahedra)
 
bool canCollapseEdge (PxI32 edgeVertexToKeep, PxI32 edgeVertexToRemove, PxF64 volumeChangeThreshold=0.1, BaseTetAnalyzer *tetAnalyzer=NULL)
 
bool canCollapseEdge (PxI32 edgeVertexToKeep, PxI32 edgeVertexToRemove, const PxArray< PxI32 > &tetsConnectedToA, const PxArray< PxI32 > &tetsConnectedToB, PxF64 &qualityAfterCollapse, PxF64 volumeChangeThreshold=0.1, BaseTetAnalyzer *tetAnalyzer=NULL)
 
void collapseEdge (PxI32 edgeVertexToKeep, PxI32 edgeVertexToRemove)
 
void collapseEdge (PxI32 edgeVertexAToKeep, PxI32 edgeVertexBToRemove, const PxArray< PxI32 > &tetsConnectedToA, const PxArray< PxI32 > &tetsConnectedToB)
 
void collectTetsConnectedToVertex (PxI32 vertexIndex, PxArray< PxI32 > &tetIds)
 
void collectTetsConnectedToVertex (PxArray< PxI32 > &faces, PxHashSet< PxI32 > &tetsDone, PxI32 vertexIndex, PxArray< PxI32 > &tetIds)
 
void collectTetsConnectedToEdge (PxI32 edgeStart, PxI32 edgeEnd, PxArray< PxI32 > &tetIds)
 
PX_FORCE_INLINE const Vec3 & point (PxI32 index) const
 
PX_FORCE_INLINE PxU32 numPoints () const
 
PX_FORCE_INLINE PxArray< Vec3 > & points ()
 
PX_FORCE_INLINE const PxArray< Vec3 > & points () const
 
PxU32 addPoint (const Vec3 &p)
 
PX_FORCE_INLINE const Tetrahedron & tetrahedron (PxI32 index) const
 
PX_FORCE_INLINE PxU32 numTetrahedra () const
 
PX_FORCE_INLINE PxArray< Tetrahedron > & tetrahedra ()
 
PX_FORCE_INLINE const PxArray< Tetrahedron > & tetrahedra () const
 
void copyInternalPointsTo (PxArray< Vec3 > &points)
 
bool optimizeByFlipping (PxArray< PxI32 > &affectedFaces, const BaseTetAnalyzer &qualityAnalyzer)
 
void insertPointIntoEdge (PxI32 newPointIndex, PxI32 edgeA, PxI32 edgeB, PxArray< PxI32 > &affectedTets, BaseTetAnalyzer *qualityAnalyzer=NULL)
 
bool removeEdgeByFlip (PxI32 edgeA, PxI32 edgeB, PxArray< PxI32 > &tetIndices, BaseTetAnalyzer *qualityAnalyzer=NULL)
 
void addLockedEdges (const PxArray< Gu::IndexedTriangleT< PxI32 > > &triangles)
 
void addLockedTriangles (const PxArray< Gu::IndexedTriangleT< PxI32 > > &triangles)
 
void clearLockedEdges ()
 
void clearLockedTriangles ()
 
bool recoverEdgeByFlip (PxI32 eStart, PxI32 eEnd, RecoverEdgeMemoryCache &cache)
 
void generateTetmeshEnforcingEdges (const PxArray< Vec3 > &trianglePoints, const PxArray< Gu::IndexedTriangleT< PxI32 > > &triangles, PxArray< PxArray< PxI32 > > &allEdges, PxArray< PxArray< PxI32 > > &pointToOriginalTriangle, PxArray< Vec3 > &points, PxArray< Tetrahedron > &finalTets)
 

The documentation for this class was generated from the following files: