PxTetrahedronMeshExt#
Defined in include/extensions/PxTetrahedronMeshExt.h
-
class PxTetrahedronMeshExt#
utility functions for use with PxTetrahedronMesh and subclasses
Public Static Functions
- static PxI32 findTetrahedronContainingPoint(
- const PxTetrahedronMesh *mesh,
- const PxVec3 &point,
- PxVec4 &bary,
- PxReal tolerance = 1e-6f,
Returns the index of the tetrahedron that contains a point.
- Parameters:
mesh – [in] The tetmesh
point – [in] The point to find the enclosing tetrahedron for
bary – [in] The barycentric coordinates of the point inside the enclosing tetrahedron
tolerance – [in] Tolerance value used classify points as inside if they lie exactly a tetrahedron’s surface
- Returns:
The index of the tetrahedron containing the point, -1 if not tetrahedron contains the opoint
- static PxI32 findTetrahedronClosestToPoint(
- const PxTetrahedronMesh *mesh,
- const PxVec3 &point,
- PxVec4 &bary,
Returns the index of the tetrahedron closest to a point.
- Parameters:
mesh – [in] The tetmesh
point – [in] The point to find the closest tetrahedron for
bary – [out] The barycentric coordinates of the point in the tetrahedron
- Returns:
The index of the tetrahedron closest to the point
- static void createPointsToTetrahedronMap(
- const PxArray<PxVec3> &tetMeshVertices,
- const PxArray<PxU32> &tetMeshIndices,
- const PxArray<PxVec3> &pointsToEmbed,
- PxArray<PxVec4> &barycentricCoordinates,
- PxArray<PxU32> &tetLinks,
Associates points with closest tetrahedra from input tetrahedral mesh.
If the tetmesh does not have any tetrahedra or points, a warning will be generated and the result arrays will be empty, even if there are query points passed into the method.
- Parameters:
tetMeshVertices – [in] The tetrahedral mesh vertices
tetMeshIndices – [in] The tetraheral mesh indices
pointsToEmbed – [in] The points for which the embedding should be created
barycentricCoordinates – [in] The output barycentric coordinates for each input point relative to its closest tetrahedron
tetLinks – [in] The output indices of the closest tetrahedron for each input point
- static void extractTetMeshSurface(
- const void *tetrahedra,
- PxU32 numTetrahedra,
- bool sixteenBitIndices,
- PxArray<PxU32> &surfaceTriangles,
- PxArray<PxU32> *surfaceTriangleToTet = NULL,
- bool flipTriangleOrientation = false,
Extracts the surface triangles of a tetmesh.
The extracted triangle’s vertex indices point to the vertex buffer of the tetmesh.
- Parameters:
tetrahedra – [in] The tetrahedra indices
numTetrahedra – [in] The number of tetrahedra
sixteenBitIndices – [in] If set to true, the tetrahedra indices are read as 16bit integers, otherwise 32bit integers are used
surfaceTriangles – [in] The resulting surface triangles
surfaceTriangleToTet – [in] Optional array to get the index of a tetrahedron that is adjacent to the surface triangle with the corresponding index
flipTriangleOrientation – [in] Reverses the orientation of the ouput triangles
- static void extractTetMeshSurface(
- const PxTetrahedronMesh *mesh,
- PxArray<PxU32> &surfaceTriangles,
- PxArray<PxU32> *surfaceTriangleToTet = NULL,
- bool flipTriangleOrientation = false,
Extracts the surface triangles of a tetmesh.
The extracted triangle’s vertex indices point to the vertex buffer of the tetmesh.
- Parameters:
mesh – [in] The mesh from which the surface shall be computed
surfaceTriangles – [in] The resulting surface triangles
surfaceTriangleToTet – [in] Optional array to get the index of a tetrahedron that is adjacent to the surface triangle with the corresponding index
flipTriangleOrientation – [in] Reverses the orientation of the ouput triangles