29#ifndef PX_TRIANGLE_MESH_H
30#define PX_TRIANGLE_MESH_H
34#include "foundation/PxVec3.h"
35#include "foundation/PxBounds3.h"
36#include "common/PxPhysXCommonConfig.h"
37#include "common/PxBase.h"
38#include "foundation/PxUserAllocated.h"
248 virtual const PxReal*
getSDF()
const = 0;
295 virtual ~PxTriangleMesh() {}
314 virtual bool isKindOf(
const char* name)
const {
return !::strcmp(
"PxBVH33TriangleMesh", name) || PxTriangleMesh::isKindOf(name); }
A triangle mesh containing the PxMeshMidPhase::eBVH33 structure.
Definition PxTriangleMesh.h:308
virtual bool isKindOf(const char *name) const
Returns whether a given type name matches with the type of this instance.
Definition PxTriangleMesh.h:314
A triangle mesh containing the PxMeshMidPhase::eBVH34 structure.
Definition PxTriangleMesh.h:324
virtual bool isKindOf(const char *name) const
Returns whether a given type name matches with the type of this instance.
Definition PxTriangleMesh.h:330
Class representing 3D range or axis aligned bounding box.
Definition PxBounds3.h:58
Container for bitfield flag variables associated with a specific enum type.
Definition PxFlags.h:73
3x3 matrix class
Definition PxMat33.h:91
Base class for ref-counted objects.
Definition PxBase.h:200
virtual bool isKindOf(const char *name) const
Returns whether a given type name matches with the type of this instance.
Definition PxBase.h:231
A triangle mesh, also called a 'polygon soup'.
Definition PxTriangleMesh.h:118
virtual PxVec3 * getVerticesForModification()=0
Returns all mesh vertices for modification.
virtual const PxReal * getSDF() const =0
Returns the local-space Signed Distance Field for this mesh if it has one.
virtual bool getPreferSDFProjection() const =0
Returns whether this mesh prefers SDF projection.
virtual const void * getTriangles() const =0
Returns the triangle indices.
virtual PxBounds3 refitBVH()=0
Refits BVH for mesh vertices.
virtual void release()=0
Decrements the reference count of a triangle mesh and releases it if the new reference count is zero.
virtual const PxU32 * getTrianglesRemap() const =0
Returns the triangle remapping table.
virtual PxMaterialTableIndex getTriangleMaterialIndex(PxTriangleID triangleIndex) const =0
Returns material table index of given triangle.
virtual void setPreferSDFProjection(bool preferProjection)=0
Sets whether this mesh should be preferred for SDF projection.
virtual PxBounds3 getLocalBounds() const =0
Returns the local-space (vertex space) AABB from the triangle mesh.
virtual PxTriangleMeshFlags getTriangleMeshFlags() const =0
Reads the PxTriangleMesh flags.
virtual const PxVec3 * getVertices() const =0
Returns the vertices.
virtual PxU32 getNbTriangles() const =0
Returns the number of triangles.
virtual void getMassInformation(PxReal &mass, PxMat33 &localInertia, PxVec3 &localCenterOfMass) const =0
Returns the mass properties of the mesh assuming unit density.
virtual bool isKindOf(const char *name) const
Returns whether a given type name matches with the type of this instance.
Definition PxTriangleMesh.h:297
virtual PxU32 getNbVertices() const =0
Returns the number of vertices.
virtual void getSDFDimensions(PxU32 &numX, PxU32 &numY, PxU32 &numZ) const =0
Returns the resolution of the local-space dense SDF.
3 Element vector class.
Definition PxVec3.h:50
#define PX_INLINE
Definition PxPreprocessor.h:320
#define PX_DEPRECATED
Definition PxPreprocessor.h:418
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
PxFlags< PxTriangleMeshFlag::Enum, PxU8 > PxTriangleMeshFlags
collection of set bits defined in PxTriangleMeshFlag.
Definition PxTriangleMesh.h:86
Mesh midphase structure. This enum is used to select the desired acceleration structure for midphase ...
Definition PxTriangleMesh.h:56
Enum
Definition PxTriangleMesh.h:58
@ eBVH33
Default midphase mesh structure, as used up to PhysX 3.3 (deprecated)
Definition PxTriangleMesh.h:59
@ eBVH34
New midphase mesh structure, introduced in PhysX 3.4.
Definition PxTriangleMesh.h:60
Flags for the mesh geometry properties.
Definition PxTriangleMesh.h:72
Enum
Definition PxTriangleMesh.h:74
@ eADJACENCY_INFO
The triangle mesh has adjacency information build.
Definition PxTriangleMesh.h:76
@ e16_BIT_INDICES
The triangle mesh has 16bits vertex indices.
Definition PxTriangleMesh.h:75
@ ePREFER_NO_SDF_PROJ
Indicates that this mesh would preferably not be the mesh projected for mesh-mesh collision....
Definition PxTriangleMesh.h:77