27#ifndef EXT_DELAUNAY_BOUNDARY_INSERTER_H
28#define EXT_DELAUNAY_BOUNDARY_INSERTER_H
30#include "foundation/PxHashSet.h"
31#include "foundation/PxVec3.h"
32#include "foundation/PxMat33.h"
33#include "foundation/PxHashMap.h"
34#include "foundation/PxArray.h"
35#include "common/PxCoreUtilityTypes.h"
36#include "extensions/PxTriangleMeshAnalysisResult.h"
37#include "extensions/PxTetrahedronMeshAnalysisResult.h"
39#include "ExtDelaunayTetrahedralizer.h"
46 void generateTetmesh(
const PxBoundedData& inputPoints,
const PxBoundedData& inputTriangles,
const bool has16bitIndices, PxArray<PxVec3>& tetPoints, PxArray<PxU32>& finalTets);
49 void generateVoxelTetmesh(
const PxBoundedData& inputPoints,
const PxBoundedData& inputTets, PxU32 numVoxelsX, PxU32 numVoxelsY, PxU32 numVoxelsZ,
50 PxArray<PxVec3>& voxelPoints, PxArray<PxU32>& voxelTets, PxI32* intputPointToOutputTetIndex,
const PxU32* anchorNodeIndices = NULL);
53 void generateVoxelTetmesh(
const PxBoundedData& inputPoints,
const PxBoundedData& inputTets, PxReal voxelEdgeLength,
54 PxArray<PxVec3>& voxelPoints, PxArray<PxU32>& voxelTets, PxI32* intputPointToOutputTetIndex,
const PxU32* anchorNodeIndices = NULL);
57 void generateVoxelTetmesh(
const PxBoundedData& inputPoints,
const PxBoundedData& inputTets, PxU32 numVoxelsAlongLongestBoundingBoxAxis,
58 PxArray<PxVec3>& voxelPoints, PxArray<PxU32>& voxelTets, PxI32* intputPointToOutputTetIndex,
const PxU32* anchorNodeIndices = NULL);
61 void extractTetmeshSurface(
const PxArray<PxI32>& tets, PxArray<PxI32>& triangles);
64 void pointMasses(
const PxArray<PxVec3>& tetVerts,
const PxArray<PxU32>& tets, PxF32 density, PxArray<PxF32>& mass);
67 void restPoses(
const PxArray<PxVec3>& tetVerts,
const PxArray<PxU32>& tets, PxArray<PxMat33>& restPoses);
70 void tetFibers(
const PxArray<PxVec3>& tetVerts,
const PxArray<PxU32>& tets, PxArray<PxVec3>& tetFibers);
73 PxTriangleMeshAnalysisResults validateTriangleMesh(
const PxBoundedData& points,
const PxBoundedData& triangles,
const bool has16BitIndices,
const PxReal minVolumeThreshold = 1e-6f,
const PxReal minTriangleAngleRadians = 10.0f*3.1415926535898f / 180.0f);
76 PxTetrahedronMeshAnalysisResults validateTetrahedronMesh(
const PxBoundedData& points,
const PxBoundedData& tetrahedra,
const bool has16BitIndices,
const PxReal minTetVolumeThreshold = 1e-8f);
78 PxU32 removeDisconnectedIslands(PxI32* finalTets, PxU32 numTets);
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39