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