29#ifndef PX_TETMAKER_EXT_H
30#define PX_TETMAKER_EXT_H
35#include "foundation/PxSimpleTypes.h"
36#include "foundation/PxVec3.h"
37#include "common/PxCoreUtilityTypes.h"
38#include "foundation/PxArray.h"
39#include "PxTriangleMeshAnalysisResult.h"
40#include "PxTetrahedronMeshAnalysisResult.h"
48class PxTetrahedronMeshDesc;
49class PxSoftBodySimulationDataDesc;
51class PxSimpleTriangleMesh;
71 const bool validate =
true, PxReal volumeThreshold = 0.0f);
136 PxArray<PxU32> *vertexMap = NULL, PxReal edgeLengthCostWeight = 0.1f, PxReal flatnessDetectionThreshold = 0.01f);
178 PxI32 resolution, PxI32 numRelaxationIterations = 5, PxF32 relMinTetVolume = 0.05f);
Container for bitfield flag variables associated with a specific enum type.
Definition PxFlags.h:73
A structure describing a triangle mesh.
Definition PxSimpleTriangleMesh.h:83
Provides functionality to create a tetrahedral mesh from a triangle mesh.
Definition PxTetMakerExt.h:57
static PxTetrahedronMeshAnalysisResults validateTetrahedronMesh(const PxBoundedData &points, const PxBoundedData &tetrahedra, const PxReal minTetVolumeThreshold=1e-8f)
Analyzes the tetrahedron mesh to get a report about deficiencies. Some deficiencies can be handled by...
Definition ExtTetMakerExt.cpp:174
static void remeshTriangleMesh(const PxArray< PxVec3 > &inputVertices, const PxArray< PxU32 > &inputIndices, int gridResolution, PxArray< PxVec3 > &outputVertices, PxArray< PxU32 > &outputIndices, PxArray< PxU32 > *vertexMap=NULL)
Creates a new mesh from a given mesh. The input mesh is first voxelized. The new surface is created f...
Definition ExtTetMakerExt.cpp:189
static void createRelaxedVoxelTetrahedralMesh(const PxArray< PxVec3 > &inputVertices, const PxArray< PxU32 > &inputIndices, PxArray< PxVec3 > &outputVertices, PxArray< PxU32 > &outputIndices, PxI32 resolution, PxI32 numRelaxationIterations=5, PxF32 relMinTetVolume=0.05f)
Creates a tetrahedral mesh by relaxing a voxel mesh around the input mesh.
Definition ExtTetMakerExt.cpp:215
static bool createVoxelTetrahedronMesh(const PxTetrahedronMeshDesc &tetMesh, const PxU32 numVoxelsAlongLongestBoundingBoxAxis, physx::PxArray< physx::PxVec3 > &outVertices, physx::PxArray< physx::PxU32 > &outTetIndices, PxI32 *inputPointToOutputTetIndex=NULL, const PxU32 *anchorNodeIndices=NULL)
Create voxel-based tetrahedron mesh using TetMaker.
Definition ExtTetMakerExt.cpp:155
static bool createConformingTetrahedronMesh(const PxSimpleTriangleMesh &triangleMesh, physx::PxArray< physx::PxVec3 > &outVertices, physx::PxArray< physx::PxU32 > &outTetIndices, const bool validate=true, PxReal volumeThreshold=0.0f)
Create conforming tetrahedron mesh using TetMaker.
Definition ExtTetMakerExt.cpp:128
static PxTriangleMeshAnalysisResults validateTriangleMesh(const PxSimpleTriangleMesh &triangleMesh, const PxReal minVolumeThreshold=1e-6f, const PxReal minTriangleAngleRadians=10.0f *3.1415926535898f/180.0f)
Analyzes the triangle mesh to get a report about deficiencies. Some deficiencies can be handled by th...
Definition ExtTetMakerExt.cpp:169
static void simplifyTriangleMesh(const PxArray< PxVec3 > &inputVertices, const PxArray< PxU32 > &inputIndices, int targetTriangleCount, PxF32 maximalEdgeLength, PxArray< PxVec3 > &outputVertices, PxArray< PxU32 > &outputIndices, PxArray< PxU32 > *vertexMap=NULL, PxReal edgeLengthCostWeight=0.1f, PxReal flatnessDetectionThreshold=0.01f)
Simplifies (decimates) a triangle mesh using quadric simplification.
Definition ExtTetMakerExt.cpp:179
static bool createVoxelTetrahedronMeshFromEdgeLength(const PxTetrahedronMeshDesc &tetMesh, const PxReal voxelEdgeLength, physx::PxArray< physx::PxVec3 > &outVertices, physx::PxArray< physx::PxU32 > &outTetIndices, PxI32 *inputPointToOutputTetIndex=NULL, const PxU32 *anchorNodeIndices=NULL)
Create voxel-based tetrahedron mesh using TetMaker.
Definition ExtTetMakerExt.cpp:162
static void createTreeBasedTetrahedralMesh(const PxArray< PxVec3 > &inputVertices, const PxArray< PxU32 > &inputIndices, bool useTreeNodes, PxArray< PxVec3 > &outputVertices, PxArray< PxU32 > &outputIndices, PxReal volumeThreshold=0.0f)
Creates a tetrahedral mesh using an octree.
Definition ExtTetMakerExt.cpp:198
Descriptor class for #PxTetrahedronMesh (contains only pure geometric data).
Definition PxTetrahedronMeshDesc.h:52
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Definition PxCoreUtilityTypes.h:96