UsdPhysicsRigidBodyAPI#

Fully qualified name: usdrt::UsdPhysicsRigidBodyAPI

class UsdPhysicsRigidBodyAPI : public usdrt::UsdAPISchemaBase#

Applies physics body attributes to any UsdGeomXformable prim and marks that prim to be driven by a simulation. If a simulation is running it will update this prim’s pose. All prims in the hierarchy below this prim should move accordingly.

Public Functions

inline explicit UsdPhysicsRigidBodyAPI(
const UsdPrim &prim = UsdPrim(),
)#

Construct a UsdPhysicsRigidBodyAPI on UsdPrim prim. Equivalent to UsdPhysicsRigidBodyAPI::Get(prim.GetStage(), prim.GetPath()) for a valid prim , but will not immediately throw an error for an invalid prim.

inline explicit UsdPhysicsRigidBodyAPI(
const UsdSchemaBase &schemaObj,
)#

Construct a UsdPhysicsRigidBodyAPI on the prim held by schemaObj . Should be preferred over UsdPhysicsRigidBodyAPI(schemaObj.GetPrim()), as it preserves SchemaBase state.

inline virtual ~UsdPhysicsRigidBodyAPI()#

Destructor.

inline UsdAttribute GetRigidBodyEnabledAttr() const#

Determines if this PhysicsRigidBodyAPI is enabled.

Declaration

bool physics:rigidBodyEnabled = 1

C++ Type

bool

Usd Type

SdfValueTypeNames->Bool

inline UsdAttribute CreateRigidBodyEnabledAttr() const#

See GetRigidBodyEnabledAttr(), and also Create vs Get Property Methods for when to use Get vs Create. If specified, author defaultValue as the attribute’s default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

inline UsdAttribute GetKinematicEnabledAttr() const#

Determines whether the body is kinematic or not. A kinematic body is a body that is moved through animated poses or through user defined poses. The simulation derives velocities for the kinematic body based on the external motion. When a continuous motion is not desired, this kinematic flag should be set to false.

Declaration

bool physics:kinematicEnabled = 0

C++ Type

bool

Usd Type

SdfValueTypeNames->Bool

inline UsdAttribute CreateKinematicEnabledAttr() const#

See GetKinematicEnabledAttr(), and also Create vs Get Property Methods for when to use Get vs Create. If specified, author defaultValue as the attribute’s default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

inline UsdAttribute GetStartsAsleepAttr() const#

Determines if the body is asleep when the simulation starts.

Declaration

uniform bool physics:startsAsleep = 0

C++ Type

bool

Usd Type

SdfValueTypeNames->Bool

Variability

SdfVariabilityUniform

inline UsdAttribute CreateStartsAsleepAttr() const#

See GetStartsAsleepAttr(), and also Create vs Get Property Methods for when to use Get vs Create. If specified, author defaultValue as the attribute’s default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

inline UsdAttribute GetVelocityAttr() const#

Linear velocity in the same space as the node’s xform. Units: distance/second.

Declaration

vector3f physics:velocity = (0, 0, 0)

C++ Type

GfVec3f

Usd Type

SdfValueTypeNames->Vector3f

inline UsdAttribute CreateVelocityAttr() const#

See GetVelocityAttr(), and also Create vs Get Property Methods for when to use Get vs Create. If specified, author defaultValue as the attribute’s default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

inline UsdAttribute GetAngularVelocityAttr() const#

Angular velocity in the same space as the node’s xform. Units: degrees/second.

Declaration

vector3f physics:angularVelocity = (0, 0, 0)

C++ Type

GfVec3f

Usd Type

SdfValueTypeNames->Vector3f

inline UsdAttribute CreateAngularVelocityAttr() const#

See GetAngularVelocityAttr(), and also Create vs Get Property Methods for when to use Get vs Create. If specified, author defaultValue as the attribute’s default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

inline UsdRelationship GetSimulationOwnerRel() const#

Single PhysicsScene that will simulate this body. By default this is the first PhysicsScene found in the stage using UsdStage::Traverse().

inline UsdRelationship CreateSimulationOwnerRel() const#

See GetSimulationOwnerRel(), and also Create vs Get Property Methods for when to use Get vs Create.

UsdPrim GetPrim() const#

Return this schema object’s held prim.

SdfPath GetPath() const#

Return the SdfPath to this schema object’s held prim.

inline explicit operator bool() const#

Check if this schema object is compatible with it’s held prim and that the prim is valid.

A typed schema object is compatible if the held prim’s type is or is a subtype of the schema’s type. Based on prim.IsA().

An API schema object is compatible if the API is of type SingleApplyAPI or UsdSchemaType::MultipleApplyAPI, and the schema has been applied to the prim. Based on prim.HasAPI.

This method invokes polymorphic behaviour.

Returns:

True if the help prim is valid, and the schema object is compatible with its held prim.

Public Static Functions

static inline UsdPhysicsRigidBodyAPI Apply(const UsdPrim &prim)#

Applies this single-apply API schema to the given prim. This information is stored by adding “PhysicsRigidBodyAPI” to the token-valued, listOp metadata apiSchemas on the prim.

Returns:

A valid UsdPhysicsRigidBodyAPI object is returned upon success. An invalid (or empty) UsdPhysicsRigidBodyAPI object is returned upon failure. See UsdPrim::ApplyAPI() for conditions resulting in failure.

Public Static Attributes

static const UsdSchemaType schemaType = UsdSchemaType::SingleApplyAPI#

Compile time constant representing what kind of schema this class is.

See also

UsdSchemaType

Protected Functions

inline const TfToken &_GetInstanceName() const#

Returns the instance name of the API schema object belonging to a multiple-apply API schema.

The returned instance name will be empty for non-applied and single-apply API schemas.

inline virtual bool _IsCompatible() const#

Check whether this APISchema object is valid for the currently held prim.

If this is an applied API schema, this returns true if the held prim is valid and already has the API schema applied to it, along with the instanceName (in the case of multiple-apply). The instanceName should not be empty in the case of a multiple-apply API schema.

This check is performed when clients invoke the explicit bool conversion operator, implemented in UsdSchemaBase.

inline const TfToken _GetType() const#

Helper for subclasses to get this schema’s type token.

Note

This diverges from Usd and returns a TfToken, since we don’t implements TfType.

Returns:

The token representing the schema’s TfType.