motionAPI.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 USDGEOM_GENERATED_MOTIONAPI_H
25 #define USDGEOM_GENERATED_MOTIONAPI_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/usdGeom/api.h"
32 #include "pxr/usd/usd/prim.h"
33 #include "pxr/usd/usd/stage.h"
34 #include "pxr/usd/usdGeom/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 // MOTIONAPI //
51 // -------------------------------------------------------------------------- //
52 
68 {
69 public:
74 
79  explicit UsdGeomMotionAPI(const UsdPrim& prim=UsdPrim())
80  : UsdAPISchemaBase(prim)
81  {
82  }
83 
87  explicit UsdGeomMotionAPI(const UsdSchemaBase& schemaObj)
88  : UsdAPISchemaBase(schemaObj)
89  {
90  }
91 
93  USDGEOM_API
94  virtual ~UsdGeomMotionAPI();
95 
99  USDGEOM_API
100  static const TfTokenVector &
101  GetSchemaAttributeNames(bool includeInherited=true);
102 
112  USDGEOM_API
113  static UsdGeomMotionAPI
114  Get(const UsdStagePtr &stage, const SdfPath &path);
115 
116 
133  USDGEOM_API
134  static bool
135  CanApply(const UsdPrim &prim, std::string *whyNot=nullptr);
136 
152  USDGEOM_API
153  static UsdGeomMotionAPI
154  Apply(const UsdPrim &prim);
155 
156 protected:
160  USDGEOM_API
161  UsdSchemaKind _GetSchemaKind() const override;
162 
163 private:
164  // needs to invoke _GetStaticTfType.
165  friend class UsdSchemaRegistry;
166  USDGEOM_API
167  static const TfType &_GetStaticTfType();
168 
169  static bool _IsTypedSchema();
170 
171  // override SchemaBase virtuals.
172  USDGEOM_API
173  const TfType &_GetTfType() const override;
174 
175 public:
176  // --------------------------------------------------------------------- //
177  // MOTIONBLURSCALE
178  // --------------------------------------------------------------------- //
204  USDGEOM_API
206 
212  USDGEOM_API
213  UsdAttribute CreateMotionBlurScaleAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
214 
215 public:
216  // --------------------------------------------------------------------- //
217  // VELOCITYSCALE
218  // --------------------------------------------------------------------- //
237  USDGEOM_API
239 
245  USDGEOM_API
246  UsdAttribute CreateVelocityScaleAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
247 
248 public:
249  // --------------------------------------------------------------------- //
250  // NONLINEARSAMPLECOUNT
251  // --------------------------------------------------------------------- //
278  USDGEOM_API
280 
286  USDGEOM_API
287  UsdAttribute CreateNonlinearSampleCountAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
288 
289 public:
290  // ===================================================================== //
291  // Feel free to add custom code below this line, it will be preserved by
292  // the code generator.
293  //
294  // Just remember to:
295  // - Close the class declaration with };
296  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
297  // - Close the include guard with #endif
298  // ===================================================================== //
299  // --(BEGIN CUSTOM CODE)--
300 
313  USDGEOM_API
315 
326  USDGEOM_API
328  UsdTimeCode time = UsdTimeCode::Default()) const;
329 
340  USDGEOM_API
342  UsdTimeCode time = UsdTimeCode::Default()) const;
343 
344 };
345 
346 PXR_NAMESPACE_CLOSE_SCOPE
347 
348 #endif
USDGEOM_API UsdAttribute GetNonlinearSampleCountAttr() const
Determines the number of position or transformation samples created when motion is described by attri...
USDGEOM_API UsdAttribute CreateMotionBlurScaleAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetMotionBlurScaleAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
virtual USDGEOM_API ~UsdGeomMotionAPI()
Destructor.
static USDGEOM_API UsdGeomMotionAPI Apply(const UsdPrim &prim)
Applies this single-apply API schema to the given prim.
The base class for all API schemas.
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Definition: attribute.h:176
static USDGEOM_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.
USDGEOM_API UsdAttribute CreateNonlinearSampleCountAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetNonlinearSampleCountAttr(), and also Create vs Get Property Methods for when to use Get vs Cre...
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:127
USDGEOM_API int ComputeNonlinearSampleCount(UsdTimeCode time=UsdTimeCode::Default()) const
Compute the inherited value of nonlinearSampleCount at time, i.e.
Single Apply API schema.
USDGEOM_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:85
USDGEOM_API float ComputeVelocityScale(UsdTimeCode time=UsdTimeCode::Default()) const
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:132
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
USDGEOM_API UsdAttribute CreateVelocityScaleAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetVelocityScaleAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
UsdGeomMotionAPI encodes data that can live on any prim that may affect computations involving:
Definition: motionAPI.h:67
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: motionAPI.h:73
USDGEOM_API UsdAttribute GetMotionBlurScaleAttr() const
BlurScale is an inherited float attribute that stipulates the rendered motion blur (as typically spec...
Contains an asset path and an optional resolved path.
Definition: assetPath.h:47
USDGEOM_API UsdAttribute GetVelocityScaleAttr() const
static USDGEOM_API UsdGeomMotionAPI Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdGeomMotionAPI holding the prim adhering to this schema at path on stage.
static constexpr UsdTimeCode Default()
Produce a UsdTimeCode representing the sentinel value for 'default'.
Definition: timeCode.h:113
UsdGeomMotionAPI(const UsdPrim &prim=UsdPrim())
Construct a UsdGeomMotionAPI on UsdPrim prim .
Definition: motionAPI.h:79
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...
The base class for all schema types in Usd.
Definition: schemaBase.h:56
static USDGEOM_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...
UsdGeomMotionAPI(const UsdSchemaBase &schemaObj)
Construct a UsdGeomMotionAPI on the prim held by schemaObj .
Definition: motionAPI.h:87
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:166
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
USDGEOM_API float ComputeMotionBlurScale(UsdTimeCode time=UsdTimeCode::Default()) const
Compute the inherited value of motion:blurScale at time, i.e.