Defined in include/geometry/PxTetrahedronMesh.h

Inheritance Relationships

Base Type

class PxSoftBodyMesh : public PxRefCounted

A softbody mesh, containing structures to store collision shape, simulation shape and deformation state.

The class bundles shapes and deformation state of a softbody that is simulated using FEM. The meshes used for collision detection and for the FEM calculations are both tetrahedral meshes. While collision detection requires a mesh that matches the surface of the simulated body as exactly as possible, the simulation mesh has more freedom such that it can be optimized for tetrahedra without small angles and nodes that aren’t shared by too many elements.


To create an instance of this class call PxPhysics::createSoftBodyMesh(), and release() to delete it. This is only possible once you have released all of its PxShape instances.

Public Functions

virtual const PxTetrahedronMesh *getCollisionMesh() const = 0

Const accecssor to the softbody’s collision mesh.

virtual PxTetrahedronMesh *getCollisionMesh() = 0

Accecssor to the softbody’s collision mesh.

virtual const PxTetrahedronMesh *getSimulationMesh() const = 0

Const accessor to the softbody’s simulation mesh.

virtual PxTetrahedronMesh *getSimulationMesh() = 0

Accecssor to the softbody’s simulation mesh.

virtual const PxSoftBodyAuxData *getSoftBodyAuxData() const = 0

Const accessor to the softbodies simulation state.

virtual PxSoftBodyAuxData *getSoftBodyAuxData() = 0

Accessor to the softbody’s auxilary data like mass and rest pose information.

virtual void release() = 0

Decrements the reference count of a tetrahedron mesh and releases it if the new reference count is zero.

virtual PxU32 getReferenceCount() const = 0

Returns the reference count of the object.

At creation, the reference count of the object is 1. Every other object referencing this object increments the count by 1. When the reference count reaches 0, and only then, the object gets destroyed automatically.


the current reference count.

virtual void acquireReference() = 0

Acquires a counted reference to this object.

This method increases the reference count of the object by 1. Decrement the reference count by calling release()

virtual const char *getConcreteTypeName() const = 0

Returns string name of dynamic type.


Class name of most derived type of this object.

template<class T>
inline T *is()
template<class T>
inline const T *is() const
inline PxType getConcreteType() const

Returns concrete type of object.

See also



PxConcreteType::Enum of serialized object

inline void setBaseFlag(PxBaseFlag::Enum flag, bool value)

Set PxBaseFlag

  • flag[in] The flag to be set

  • value[in] The flags new value

inline void setBaseFlags(PxBaseFlags inFlags)

Set PxBaseFlags

See also



inFlags[in] The flags to be set

inline PxBaseFlags getBaseFlags() const

Returns PxBaseFlags.

See also




inline virtual bool isReleasable() const

Whether the object is subordinate.

A class is subordinate, if it can only be instantiated in the context of another class.


Whether the class is subordinate

Protected Functions

inline PxSoftBodyMesh(PxType concreteType, PxBaseFlags baseFlags)
inline PxSoftBodyMesh(PxBaseFlags baseFlags)
inline virtual ~PxSoftBodyMesh()
inline virtual bool isKindOf(const char *name) const

Returns whether a given type name matches with the type of this instance.

inline virtual void onRefCountZero()
template<class T>
inline bool typeMatch() const

Protected Attributes

PxType mConcreteType
PxBaseFlags mBaseFlags
PxU32 mBuiltInRefCount