Defined in include/geometry/PxMeshScale.h

class PxMeshScale

A class expressing a nonuniform scaling transformation.

The scaling is along arbitrary axes that are specified by PxMeshScale::rotation. Specifically, PxMeshScale::rotation describes the rotation from the scaling-axes frame to the mesh-local frame, i.e. PxMeshScale::rotation.rotate(v) transforms the coordinates of vertex v from the mesh-local frame to the scaling-axes frame.


Negative scale values are supported for PxTriangleMeshGeometry with absolute values for each component within [PX_MIN_ABS_MESH_SCALE, PX_MAX_ABS_MESH_SCALE] range. Negative scale causes a reflection around the specified axis, in addition PhysX will flip the normals for mesh triangles when scale.x*scale.y*scale.z < 0.


Only positive scale values are supported for PxConvexMeshGeometry with values for each component within [PX_MIN_ABS_MESH_SCALE, PX_MAX_ABS_MESH_SCALE] range).

Public Functions

inline PxMeshScale()

Constructor initializes to identity scale.

inline explicit PxMeshScale(PxReal r)

Constructor from scalar.

inline PxMeshScale(const PxVec3 &s)

Constructor to initialize to arbitrary scale and identity scale rotation.

inline PxMeshScale(const PxVec3 &s, const PxQuat &r)

Constructor to initialize to arbitrary scaling.

inline bool isIdentity() const

Returns true if the scaling is an identity transformation.

inline PxMeshScale getInverse() const

Returns the inverse of this scaling transformation.

inline PxMat33 toMat33() const

Converts this transformation to a 3x3 matrix representation.

inline bool hasNegativeDeterminant() const

Returns true if combination of negative scale components will cause the triangle normal to flip.

The SDK will flip the normals internally.

inline PxVec3 transform(const PxVec3 &v) const
inline bool isValidForTriangleMesh() const
inline bool isValidForConvexMesh() const

Public Members

PxVec3 scale

A nonuniform scaling.

PxQuat rotation

The orientation of the scaling axes.