PxMeshScale#

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.

Note

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.

Note

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.