This document is for a version of USD that is under development. See this page for the current release.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
rigidBodyAPI.h
Go to the documentation of this file.
1//
2// Copyright 2016 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
7#ifndef USDPHYSICS_GENERATED_RIGIDBODYAPI_H
8#define USDPHYSICS_GENERATED_RIGIDBODYAPI_H
9
11
12#include "pxr/pxr.h"
13#include "pxr/usd/usdPhysics/api.h"
15#include "pxr/usd/usd/prim.h"
16#include "pxr/usd/usd/stage.h"
18
20#include "pxr/base/gf/quatf.h"
21
22#include "pxr/base/vt/value.h"
23
24#include "pxr/base/gf/vec3d.h"
25#include "pxr/base/gf/vec3f.h"
27
28#include "pxr/base/tf/token.h"
29#include "pxr/base/tf/type.h"
30
31PXR_NAMESPACE_OPEN_SCOPE
32
33class SdfAssetPath;
34
35// -------------------------------------------------------------------------- //
36// PHYSICSRIGIDBODYAPI //
37// -------------------------------------------------------------------------- //
38
47{
48public:
52 static const UsdSchemaKind schemaKind = UsdSchemaKind::SingleApplyAPI;
53
58 explicit UsdPhysicsRigidBodyAPI(const UsdPrim& prim=UsdPrim())
59 : UsdAPISchemaBase(prim)
60 {
61 }
62
66 explicit UsdPhysicsRigidBodyAPI(const UsdSchemaBase& schemaObj)
67 : UsdAPISchemaBase(schemaObj)
68 {
69 }
70
72 USDPHYSICS_API
74
78 USDPHYSICS_API
79 static const TfTokenVector &
80 GetSchemaAttributeNames(bool includeInherited=true);
81
91 USDPHYSICS_API
93 Get(const UsdStagePtr &stage, const SdfPath &path);
94
95
112 USDPHYSICS_API
113 static bool
114 CanApply(const UsdPrim &prim, std::string *whyNot=nullptr);
115
131 USDPHYSICS_API
133 Apply(const UsdPrim &prim);
134
135protected:
139 USDPHYSICS_API
141
142private:
143 // needs to invoke _GetStaticTfType.
144 friend class UsdSchemaRegistry;
145 USDPHYSICS_API
146 static const TfType &_GetStaticTfType();
147
148 static bool _IsTypedSchema();
149
150 // override SchemaBase virtuals.
151 USDPHYSICS_API
152 const TfType &_GetTfType() const override;
153
154public:
155 // --------------------------------------------------------------------- //
156 // RIGIDBODYENABLED
157 // --------------------------------------------------------------------- //
165 USDPHYSICS_API
167
173 USDPHYSICS_API
174 UsdAttribute CreateRigidBodyEnabledAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
175
176public:
177 // --------------------------------------------------------------------- //
178 // KINEMATICENABLED
179 // --------------------------------------------------------------------- //
191 USDPHYSICS_API
193
199 USDPHYSICS_API
200 UsdAttribute CreateKinematicEnabledAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
201
202public:
203 // --------------------------------------------------------------------- //
204 // STARTSASLEEP
205 // --------------------------------------------------------------------- //
214 USDPHYSICS_API
216
222 USDPHYSICS_API
223 UsdAttribute CreateStartsAsleepAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
224
225public:
226 // --------------------------------------------------------------------- //
227 // VELOCITY
228 // --------------------------------------------------------------------- //
237 USDPHYSICS_API
239
245 USDPHYSICS_API
246 UsdAttribute CreateVelocityAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
247
248public:
249 // --------------------------------------------------------------------- //
250 // ANGULARVELOCITY
251 // --------------------------------------------------------------------- //
260 USDPHYSICS_API
262
268 USDPHYSICS_API
269 UsdAttribute CreateAngularVelocityAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
270
271public:
272 // --------------------------------------------------------------------- //
273 // SIMULATIONOWNER
274 // --------------------------------------------------------------------- //
279 USDPHYSICS_API
281
284 USDPHYSICS_API
286
287public:
288 // ===================================================================== //
289 // Feel free to add custom code below this line, it will be preserved by
290 // the code generator.
291 //
292 // Just remember to:
293 // - Close the class declaration with };
294 // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
295 // - Close the include guard with #endif
296 // ===================================================================== //
297 // --(BEGIN CUSTOM CODE)--
298
301 {
302 float volume; //< Collision volume
303 GfMatrix3f inertia; //< Collision inertia
304 GfVec3f centerOfMass; //< Collision center of mass
305 GfVec3f localPos; //< Collision local position with respect to the rigid body
306 GfQuatf localRot; //< Collision local rotation with respect to the rigid body
307 };
308
311 typedef std::function<MassInformationFnSig> MassInformationFn;
312
319 USDPHYSICS_API
320 float ComputeMassProperties(GfVec3f* diagonalInertia, GfVec3f* com, GfQuatf* principalAxes,
321 const MassInformationFn& massInfoFn) const;
322
323};
324
325PXR_NAMESPACE_CLOSE_SCOPE
326
327#endif
Stores a 3x3 matrix of float elements.
Definition: matrix3f.h:65
Basic type: a quaternion, a complex number with a real coefficient and three imaginary coefficients,...
Definition: quatf.h:43
Basic type for a vector of 3 float components.
Definition: vec3f.h:46
Contains an asset path and an optional resolved path.
Definition: assetPath.h:30
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:274
TfType represents a dynamic runtime type.
Definition: type.h:48
The base class for all API schemas.
Definition: apiSchemaBase.h:99
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Definition: attribute.h:160
Applies physics body attributes to any UsdGeomXformable prim and marks that prim to be driven by a si...
Definition: rigidBodyAPI.h:47
static USDPHYSICS_API bool CanApply(const UsdPrim &prim, std::string *whyNot=nullptr)
Returns true if this single-apply API schema can be applied to the given prim.
USDPHYSICS_API UsdAttribute GetRigidBodyEnabledAttr() const
Determines if this PhysicsRigidBodyAPI is enabled.
USDPHYSICS_API UsdAttribute CreateVelocityAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetVelocityAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
MassInformation MassInformationFnSig(const UsdPrim &)
Mass information function signature, for given UsdPrim gather MassInformation.
Definition: rigidBodyAPI.h:310
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: rigidBodyAPI.h:52
USDPHYSICS_API UsdAttribute CreateAngularVelocityAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetAngularVelocityAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDPHYSICS_API float ComputeMassProperties(GfVec3f *diagonalInertia, GfVec3f *com, GfQuatf *principalAxes, const MassInformationFn &massInfoFn) const
Compute mass properties of the rigid body diagonalInertia Computed diagonal of the inertial tensor fo...
USDPHYSICS_API UsdAttribute CreateRigidBodyEnabledAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetRigidBodyEnabledAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDPHYSICS_API UsdRelationship GetSimulationOwnerRel() const
Single PhysicsScene that will simulate this body.
USDPHYSICS_API UsdAttribute CreateStartsAsleepAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetStartsAsleepAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDPHYSICS_API UsdAttribute GetStartsAsleepAttr() const
Determines if the body is asleep when the simulation starts.
virtual USDPHYSICS_API ~UsdPhysicsRigidBodyAPI()
Destructor.
static USDPHYSICS_API UsdPhysicsRigidBodyAPI Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdPhysicsRigidBodyAPI holding the prim adhering to this schema at path on stage.
USDPHYSICS_API UsdAttribute CreateKinematicEnabledAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetKinematicEnabledAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDPHYSICS_API UsdAttribute GetAngularVelocityAttr() const
Angular velocity in the same space as the node's xform.
static USDPHYSICS_API UsdPhysicsRigidBodyAPI Apply(const UsdPrim &prim)
Applies this single-apply API schema to the given prim.
USDPHYSICS_API UsdAttribute GetKinematicEnabledAttr() const
Determines whether the body is kinematic or not.
UsdPhysicsRigidBodyAPI(const UsdPrim &prim=UsdPrim())
Construct a UsdPhysicsRigidBodyAPI on UsdPrim prim .
Definition: rigidBodyAPI.h:58
UsdPhysicsRigidBodyAPI(const UsdSchemaBase &schemaObj)
Construct a UsdPhysicsRigidBodyAPI on the prim held by schemaObj .
Definition: rigidBodyAPI.h:66
static USDPHYSICS_API const TfTokenVector & GetSchemaAttributeNames(bool includeInherited=true)
Return a vector of names of all pre-declared attributes for this schema class and all its ancestor cl...
USDPHYSICS_API UsdRelationship CreateSimulationOwnerRel() const
See GetSimulationOwnerRel(), and also Create vs Get Property Methods for when to use Get vs Create.
USDPHYSICS_API UsdAttribute GetVelocityAttr() const
Linear velocity in the same space as the node's xform.
USDPHYSICS_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
Mass information for a collision, used in ComputeMassProperties MassInformationFn callback.
Definition: rigidBodyAPI.h:301
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:117
A UsdRelationship creates dependencies between scenegraph objects by allowing a prim to target other ...
Definition: relationship.h:111
The base class for all schema types in Usd.
Definition: schemaBase.h:39
Singleton registry that provides access to schema type information and the prim definitions for regis...
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:147
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:112
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:440