PxMassProperties#
Defined in include/extensions/PxMassProperties.h
-
class PxMassProperties#
Utility class to compute and manipulate mass and inertia tensor properties.
In most cases PxRigidBodyExt::updateMassAndInertia(), PxRigidBodyExt::setMassAndUpdateInertia() should be enough to setup the mass properties of a rigid body. This utility class targets users that need to customize the mass properties computation.
Public Functions
-
inline PxMassProperties()#
Default constructor.
- inline PxMassProperties( )#
Construct from individual elements.
-
inline PxMassProperties(const PxGeometry &geometry)#
Compute mass properties based on a provided geometry structure.
This constructor assumes the geometry has a density of 1. Mass and inertia tensor scale linearly with density.
- Parameters:
geometry – [in] The geometry to compute the mass properties for. Supported geometry types are: sphere, box, capsule and convex mesh.
-
inline PxMassProperties operator*(const PxReal scale) const#
Scale mass properties.
- Parameters:
scale – [in] The linear scaling factor to apply to the mass properties.
- Returns:
The scaled mass properties.
Public Members
Public Static Functions
- static inline PxVec3 getMassSpaceInertia( )#
Get the entries of the diagonalized inertia tensor and the corresponding reference rotation.
- Parameters:
inertia – [in] The inertia tensor to diagonalize.
massFrame – [out] The frame the diagonalized tensor refers to.
- Returns:
The entries of the diagonalized inertia tensor.
- static inline PxMat33 translateInertia( )#
Translate an inertia tensor using the parallel axis theorem.
- Parameters:
inertia – [in] The inertia tensor to translate.
mass – [in] The mass of the object.
t – [in] The relative frame to translate the inertia tensor to.
- Returns:
The translated inertia tensor.
- static inline PxMat33 rotateInertia( )#
Rotate an inertia tensor around the center of mass.
- Parameters:
inertia – [in] The inertia tensor to rotate.
q – [in] The rotation from the new to the old coordinate frame, i.e. q.rotate(v) transforms the coordinates of vector v from the old to the new coordinate frame.
- Returns:
The rotated inertia tensor.
- static inline PxMat33 scaleInertia( )#
Non-uniform scaling of the inertia tensor.
- Parameters:
inertia – [in] The inertia tensor to scale.
scaleRotation – [in] The rotation from the scaling frame to the frame that inertia is expressed in. I.e. scaleRotation.rotate(v) transforms the coordinates of vertex v from inertia’s frame to the scaling-axes frame.
scale – [in] The scaling factor for each axis (relative to the frame specified with scaleRotation).
- Returns:
The scaled inertia tensor.
- static inline PxMassProperties sum(
- const PxMassProperties *props,
- const PxTransform *transforms,
- const PxU32 count,
Sum up individual mass properties.
- Parameters:
props – [in] Array of mass properties to sum up.
transforms – [in] Reference transforms for each mass properties entry.
count – [in] The number of mass properties to sum up.
- Returns:
The summed up mass properties.
-
inline PxMassProperties()#