All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
animation.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 USDSKEL_GENERATED_ANIMATION_H
25 #define USDSKEL_GENERATED_ANIMATION_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/usdSkel/api.h"
31 #include "pxr/usd/usd/typed.h"
32 #include "pxr/usd/usd/prim.h"
33 #include "pxr/usd/usd/stage.h"
34 #include "pxr/usd/usdSkel/tokens.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 // SKELANIMATION //
51 // -------------------------------------------------------------------------- //
52 
62 class UsdSkelAnimation : public UsdTyped
63 {
64 public:
69 
74  explicit UsdSkelAnimation(const UsdPrim& prim=UsdPrim())
75  : UsdTyped(prim)
76  {
77  }
78 
82  explicit UsdSkelAnimation(const UsdSchemaBase& schemaObj)
83  : UsdTyped(schemaObj)
84  {
85  }
86 
88  USDSKEL_API
89  virtual ~UsdSkelAnimation();
90 
94  USDSKEL_API
95  static const TfTokenVector &
96  GetSchemaAttributeNames(bool includeInherited=true);
97 
107  USDSKEL_API
108  static UsdSkelAnimation
109  Get(const UsdStagePtr &stage, const SdfPath &path);
110 
133  USDSKEL_API
134  static UsdSkelAnimation
135  Define(const UsdStagePtr &stage, const SdfPath &path);
136 
137 protected:
141  USDSKEL_API
142  UsdSchemaKind _GetSchemaKind() const override;
143 
144 private:
145  // needs to invoke _GetStaticTfType.
146  friend class UsdSchemaRegistry;
147  USDSKEL_API
148  static const TfType &_GetStaticTfType();
149 
150  static bool _IsTypedSchema();
151 
152  // override SchemaBase virtuals.
153  USDSKEL_API
154  const TfType &_GetTfType() const override;
155 
156 public:
157  // --------------------------------------------------------------------- //
158  // JOINTS
159  // --------------------------------------------------------------------- //
171  USDSKEL_API
172  UsdAttribute GetJointsAttr() const;
173 
179  USDSKEL_API
180  UsdAttribute CreateJointsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
181 
182 public:
183  // --------------------------------------------------------------------- //
184  // TRANSLATIONS
185  // --------------------------------------------------------------------- //
194  USDSKEL_API
196 
202  USDSKEL_API
203  UsdAttribute CreateTranslationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
204 
205 public:
206  // --------------------------------------------------------------------- //
207  // ROTATIONS
208  // --------------------------------------------------------------------- //
218  USDSKEL_API
220 
226  USDSKEL_API
227  UsdAttribute CreateRotationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
228 
229 public:
230  // --------------------------------------------------------------------- //
231  // SCALES
232  // --------------------------------------------------------------------- //
242  USDSKEL_API
243  UsdAttribute GetScalesAttr() const;
244 
250  USDSKEL_API
251  UsdAttribute CreateScalesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
252 
253 public:
254  // --------------------------------------------------------------------- //
255  // BLENDSHAPES
256  // --------------------------------------------------------------------- //
268  USDSKEL_API
270 
276  USDSKEL_API
277  UsdAttribute CreateBlendShapesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
278 
279 public:
280  // --------------------------------------------------------------------- //
281  // BLENDSHAPEWEIGHTS
282  // --------------------------------------------------------------------- //
293  USDSKEL_API
295 
301  USDSKEL_API
302  UsdAttribute CreateBlendShapeWeightsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
303 
304 public:
305  // ===================================================================== //
306  // Feel free to add custom code below this line, it will be preserved by
307  // the code generator.
308  //
309  // Just remember to:
310  // - Close the class declaration with };
311  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
312  // - Close the include guard with #endif
313  // ===================================================================== //
314  // --(BEGIN CUSTOM CODE)--
315 
319  USDSKEL_API
320  bool GetTransforms(VtMatrix4dArray* xforms,
321  UsdTimeCode time=UsdTimeCode::Default()) const;
322 
325  USDSKEL_API
326  bool SetTransforms(const VtMatrix4dArray& xforms,
327  UsdTimeCode time=UsdTimeCode::Default()) const;
328 };
329 
330 PXR_NAMESPACE_CLOSE_SCOPE
331 
332 #endif
USDSKEL_API UsdAttribute GetTranslationsAttr() const
Joint-local translations of all affected joints.
UsdSkelAnimation(const UsdSchemaBase &schemaObj)
Construct a UsdSkelAnimation on the prim held by schemaObj .
Definition: animation.h:82
static USDSKEL_API UsdSkelAnimation Define(const UsdStagePtr &stage, const SdfPath &path)
Attempt to ensure a UsdPrim adhering to this schema at path is defined (according to UsdPrim::IsDefin...
USDSKEL_API UsdAttribute CreateBlendShapeWeightsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetBlendShapeWeightsAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
static USDSKEL_API UsdSkelAnimation Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdSkelAnimation holding the prim adhering to this schema at path on stage.
USDSKEL_API UsdAttribute GetScalesAttr() const
Joint-local scales of all affected joints, in 16 bit precision.
Describes a skel animation, where joint animation is stored in a vectorized form. ...
Definition: animation.h:62
Scenegraph object for authoring and retrieving numeric, string, and array valued data, sampled over time.
Definition: attribute.h:176
virtual USDSKEL_API ~UsdSkelAnimation()
Destructor.
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:127
USDSKEL_API UsdAttribute CreateScalesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetScalesAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
USDSKEL_API UsdAttribute CreateBlendShapesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetBlendShapesAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: animation.h:68
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:85
Represents a concrete typed schema.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:132
The base class for all typed schemas (those that can impart a typeName to a UsdPrim), and therefore the base class for all instantiable and "IsA" schemas.
Definition: typed.h:47
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:442
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:288
USDSKEL_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
Contains an asset path and an optional resolved path.
Definition: assetPath.h:47
USDSKEL_API UsdAttribute CreateRotationsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetRotationsAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
static constexpr UsdTimeCode Default()
Produce a UsdTimeCode representing the sentinel value for &#39;default&#39;.
Definition: timeCode.h:113
USDSKEL_API UsdAttribute CreateJointsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetJointsAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
USDSKEL_API UsdAttribute GetRotationsAttr() const
Joint-local unit quaternion rotations of all affected joints, in 32-bit precision.
TfType represents a dynamic runtime type.
Definition: type.h:64
Singleton registry that provides access to schema type information and the prim definitions for regis...
static USDSKEL_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...
The base class for all schema types in Usd.
Definition: schemaBase.h:56
USDSKEL_API UsdAttribute GetJointsAttr() const
Array of tokens identifying which joints this animation&#39;s data applies to.
USDSKEL_API UsdAttribute CreateTranslationsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetTranslationsAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
USDSKEL_API UsdAttribute GetBlendShapeWeightsAttr() const
Array of weight values for each blend shape.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:168
USDSKEL_API UsdAttribute GetBlendShapesAttr() const
Array of tokens identifying which blend shapes this animation&#39;s data applies to.
USDSKEL_API bool GetTransforms(VtMatrix4dArray *xforms, UsdTimeCode time=UsdTimeCode::Default()) const
Convenience method for querying resolved transforms at time.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
USDSKEL_API bool SetTransforms(const VtMatrix4dArray &xforms, UsdTimeCode time=UsdTimeCode::Default()) const
Convenience method for setting an array of transforms.
UsdSkelAnimation(const UsdPrim &prim=UsdPrim())
Construct a UsdSkelAnimation on UsdPrim prim .
Definition: animation.h:74