massAPI.h
Go to the documentation of this file.
1 //
2 // Copyright 2016 Pixar
3 //
4 // Licensed under the Apache License, Version 2.0 (the "Apache License")
5 // with the following modification; you may not use this file except in
6 // compliance with the Apache License and the following modification to it:
7 // Section 6. Trademarks. is deleted and replaced with:
8 //
9 // 6. Trademarks. This License does not grant permission to use the trade
10 // names, trademarks, service marks, or product names of the Licensor
11 // and its affiliates, except as required to comply with Section 4(c) of
12 // the License and to reproduce the content of the NOTICE file.
13 //
14 // You may obtain a copy of the Apache License at
15 //
16 // http://www.apache.org/licenses/LICENSE-2.0
17 //
18 // Unless required by applicable law or agreed to in writing, software
19 // distributed under the Apache License with the above modification is
20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 // KIND, either express or implied. See the Apache License for the specific
22 // language governing permissions and limitations under the Apache License.
23 //
24 #ifndef USDPHYSICS_GENERATED_MASSAPI_H
25 #define USDPHYSICS_GENERATED_MASSAPI_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/usdPhysics/api.h"
32 #include "pxr/usd/usd/prim.h"
33 #include "pxr/usd/usd/stage.h"
35 
36 #include "pxr/base/vt/value.h"
37 
38 #include "pxr/base/gf/vec3d.h"
39 #include "pxr/base/gf/vec3f.h"
40 #include "pxr/base/gf/matrix4d.h"
41 
42 #include "pxr/base/tf/token.h"
43 #include "pxr/base/tf/type.h"
44 
45 PXR_NAMESPACE_OPEN_SCOPE
46 
47 class SdfAssetPath;
48 
49 // -------------------------------------------------------------------------- //
50 // PHYSICSMASSAPI //
51 // -------------------------------------------------------------------------- //
52 
60 {
61 public:
66 
71  explicit UsdPhysicsMassAPI(const UsdPrim& prim=UsdPrim())
72  : UsdAPISchemaBase(prim)
73  {
74  }
75 
79  explicit UsdPhysicsMassAPI(const UsdSchemaBase& schemaObj)
80  : UsdAPISchemaBase(schemaObj)
81  {
82  }
83 
85  USDPHYSICS_API
86  virtual ~UsdPhysicsMassAPI();
87 
91  USDPHYSICS_API
92  static const TfTokenVector &
93  GetSchemaAttributeNames(bool includeInherited=true);
94 
104  USDPHYSICS_API
105  static UsdPhysicsMassAPI
106  Get(const UsdStagePtr &stage, const SdfPath &path);
107 
108 
125  USDPHYSICS_API
126  static bool
127  CanApply(const UsdPrim &prim, std::string *whyNot=nullptr);
128 
144  USDPHYSICS_API
145  static UsdPhysicsMassAPI
146  Apply(const UsdPrim &prim);
147 
148 protected:
152  USDPHYSICS_API
153  UsdSchemaKind _GetSchemaKind() const override;
154 
155 private:
156  // needs to invoke _GetStaticTfType.
157  friend class UsdSchemaRegistry;
158  USDPHYSICS_API
159  static const TfType &_GetStaticTfType();
160 
161  static bool _IsTypedSchema();
162 
163  // override SchemaBase virtuals.
164  USDPHYSICS_API
165  const TfType &_GetTfType() const override;
166 
167 public:
168  // --------------------------------------------------------------------- //
169  // MASS
170  // --------------------------------------------------------------------- //
186  USDPHYSICS_API
187  UsdAttribute GetMassAttr() const;
188 
194  USDPHYSICS_API
195  UsdAttribute CreateMassAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
196 
197 public:
198  // --------------------------------------------------------------------- //
199  // DENSITY
200  // --------------------------------------------------------------------- //
219  USDPHYSICS_API
221 
227  USDPHYSICS_API
228  UsdAttribute CreateDensityAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
229 
230 public:
231  // --------------------------------------------------------------------- //
232  // CENTEROFMASS
233  // --------------------------------------------------------------------- //
241  USDPHYSICS_API
243 
249  USDPHYSICS_API
250  UsdAttribute CreateCenterOfMassAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
251 
252 public:
253  // --------------------------------------------------------------------- //
254  // DIAGONALINERTIA
255  // --------------------------------------------------------------------- //
265  USDPHYSICS_API
267 
273  USDPHYSICS_API
274  UsdAttribute CreateDiagonalInertiaAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
275 
276 public:
277  // --------------------------------------------------------------------- //
278  // PRINCIPALAXES
279  // --------------------------------------------------------------------- //
288  USDPHYSICS_API
290 
296  USDPHYSICS_API
297  UsdAttribute CreatePrincipalAxesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
298 
299 public:
300  // ===================================================================== //
301  // Feel free to add custom code below this line, it will be preserved by
302  // the code generator.
303  //
304  // Just remember to:
305  // - Close the class declaration with };
306  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
307  // - Close the include guard with #endif
308  // ===================================================================== //
309  // --(BEGIN CUSTOM CODE)--
310 
311 };
312 
313 PXR_NAMESPACE_CLOSE_SCOPE
314 
315 #endif
USDPHYSICS_API UsdAttribute GetCenterOfMassAttr() const
Center of mass in the prim's local space.
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 UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
USDPHYSICS_API UsdAttribute CreateDiagonalInertiaAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetDiagonalInertiaAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDPHYSICS_API UsdAttribute GetMassAttr() const
If non-zero, directly specifies the mass of the object.
USDPHYSICS_API UsdAttribute GetPrincipalAxesAttr() const
Orientation of the inertia tensor's principal axes in the prim's local space.
The base class for all API schemas.
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: massAPI.h:65
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Definition: attribute.h:176
USDPHYSICS_API UsdAttribute GetDensityAttr() const
If non-zero, specifies the density of the object.
UsdPhysicsMassAPI(const UsdPrim &prim=UsdPrim())
Construct a UsdPhysicsMassAPI on UsdPrim prim .
Definition: massAPI.h:71
USDPHYSICS_API UsdAttribute CreateDensityAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetDensityAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:127
virtual USDPHYSICS_API ~UsdPhysicsMassAPI()
Destructor.
Single Apply API schema.
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...
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:134
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:442
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:290
static USDPHYSICS_API UsdPhysicsMassAPI Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdPhysicsMassAPI holding the prim adhering to this schema at path on stage.
USDPHYSICS_API UsdAttribute CreateMassAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetMassAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
Contains an asset path and an optional resolved path.
Definition: assetPath.h:47
TfType represents a dynamic runtime type.
Definition: type.h:64
static USDPHYSICS_API UsdPhysicsMassAPI Apply(const UsdPrim &prim)
Applies this single-apply API schema to the given prim.
Singleton registry that provides access to schema type information and the prim definitions for regis...
USDPHYSICS_API UsdAttribute GetDiagonalInertiaAttr() const
If non-zero, specifies diagonalized inertia tensor along the principal axes.
USDPHYSICS_API UsdAttribute CreatePrincipalAxesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetPrincipalAxesAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
The base class for all schema types in Usd.
Definition: schemaBase.h:56
UsdPhysicsMassAPI(const UsdSchemaBase &schemaObj)
Construct a UsdPhysicsMassAPI on the prim held by schemaObj .
Definition: massAPI.h:79
USDPHYSICS_API UsdAttribute CreateCenterOfMassAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetCenterOfMassAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:166
Defines explicit mass properties (mass, density, inertia etc.).
Definition: massAPI.h:59
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...