All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
capsule.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_CAPSULE_H
25 #define USDGEOM_GENERATED_CAPSULE_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/usdGeom/api.h"
31 #include "pxr/usd/usdGeom/gprim.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 // CAPSULE //
51 // -------------------------------------------------------------------------- //
52 
65 {
66 public:
71 
76  explicit UsdGeomCapsule(const UsdPrim& prim=UsdPrim())
77  : UsdGeomGprim(prim)
78  {
79  }
80 
84  explicit UsdGeomCapsule(const UsdSchemaBase& schemaObj)
85  : UsdGeomGprim(schemaObj)
86  {
87  }
88 
90  USDGEOM_API
91  virtual ~UsdGeomCapsule();
92 
96  USDGEOM_API
97  static const TfTokenVector &
98  GetSchemaAttributeNames(bool includeInherited=true);
99 
109  USDGEOM_API
110  static UsdGeomCapsule
111  Get(const UsdStagePtr &stage, const SdfPath &path);
112 
135  USDGEOM_API
136  static UsdGeomCapsule
137  Define(const UsdStagePtr &stage, const SdfPath &path);
138 
139 protected:
143  USDGEOM_API
144  UsdSchemaType _GetSchemaType() const override;
145 
146 private:
147  // needs to invoke _GetStaticTfType.
148  friend class UsdSchemaRegistry;
149  USDGEOM_API
150  static const TfType &_GetStaticTfType();
151 
152  static bool _IsTypedSchema();
153 
154  // override SchemaBase virtuals.
155  USDGEOM_API
156  const TfType &_GetTfType() const override;
157 
158 public:
159  // --------------------------------------------------------------------- //
160  // HEIGHT
161  // --------------------------------------------------------------------- //
172  USDGEOM_API
173  UsdAttribute GetHeightAttr() const;
174 
180  USDGEOM_API
181  UsdAttribute CreateHeightAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
182 
183 public:
184  // --------------------------------------------------------------------- //
185  // RADIUS
186  // --------------------------------------------------------------------- //
196  USDGEOM_API
197  UsdAttribute GetRadiusAttr() const;
198 
204  USDGEOM_API
205  UsdAttribute CreateRadiusAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
206 
207 public:
208  // --------------------------------------------------------------------- //
209  // AXIS
210  // --------------------------------------------------------------------- //
218  USDGEOM_API
219  UsdAttribute GetAxisAttr() const;
220 
226  USDGEOM_API
227  UsdAttribute CreateAxisAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
228 
229 public:
230  // --------------------------------------------------------------------- //
231  // EXTENT
232  // --------------------------------------------------------------------- //
240  USDGEOM_API
241  UsdAttribute GetExtentAttr() const;
242 
248  USDGEOM_API
249  UsdAttribute CreateExtentAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
250 
251 public:
252  // ===================================================================== //
253  // Feel free to add custom code below this line, it will be preserved by
254  // the code generator.
255  //
256  // Just remember to:
257  // - Close the class declaration with };
258  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
259  // - Close the include guard with #endif
260  // ===================================================================== //
261  // --(BEGIN CUSTOM CODE)--
262 
274  USDGEOM_API
275  static bool ComputeExtent(double height, double radius, const TfToken& axis,
276  VtVec3fArray* extent);
277 
280  USDGEOM_API
281  static bool ComputeExtent(double height, double radius, const TfToken& axis,
282  const GfMatrix4d& transform, VtVec3fArray* extent);
283 };
284 
285 PXR_NAMESPACE_CLOSE_SCOPE
286 
287 #endif
USDGEOM_API UsdAttribute GetExtentAttr() const
Extent is re-defined on Capsule only to provide a fallback value.
UsdGeomCapsule(const UsdPrim &prim=UsdPrim())
Construct a UsdGeomCapsule on UsdPrim prim .
Definition: capsule.h:76
static USDGEOM_API UsdGeomCapsule Define(const UsdStagePtr &stage, const SdfPath &path)
Attempt to ensure a UsdPrim adhering to this schema at path is defined (according to UsdPrim::IsDefin...
Scenegraph object for authoring and retrieving numeric, string, and array valued data, sampled over time.
Definition: attribute.h:176
Represents a concrete typed schema.
USDGEOM_API UsdAttribute GetRadiusAttr() const
The radius of the capsule.
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:89
USDGEOM_API UsdAttribute GetHeightAttr() const
The size of the capsule's spine along the specified axis excluding the size of the two half spheres...
Stores a 4x4 matrix of double elements.
Definition: matrix4d.h:88
USDGEOM_API UsdAttribute GetAxisAttr() const
The axis along which the spine of the capsule is aligned.
static const UsdSchemaType schemaType
Compile time constant representing what kind of schema this class is.
Definition: capsule.h:70
UsdSchemaType
An enum representing which type of schema a given schema class belongs to.
Definition: common.h:149
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:131
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:438
USDGEOM_API UsdSchemaType _GetSchemaType() const override
Returns the type of schema this class belongs to.
virtual USDGEOM_API ~UsdGeomCapsule()
Destructor.
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:287
Defines a primitive capsule, i.e.
Definition: capsule.h:64
Contains an asset path and an optional resolved path.
Definition: assetPath.h:43
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...
Base class for all geometric primitives.
Definition: gprim.h:66
USDGEOM_API UsdAttribute CreateRadiusAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetRadiusAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
USDGEOM_API UsdAttribute CreateAxisAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetAxisAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
TfType represents a dynamic runtime type.
Definition: type.h:70
Singleton registry that provides access to prim and property definition information for registered Us...
USDGEOM_API UsdAttribute CreateHeightAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetHeightAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
static USDGEOM_API bool ComputeExtent(double height, double radius, const TfToken &axis, VtVec3fArray *extent)
Compute the extent for the capsule defined by the height, radius, and axis.
The base class for all schema types in Usd.
Definition: schemaBase.h:56
UsdGeomCapsule(const UsdSchemaBase &schemaObj)
Construct a UsdGeomCapsule on the prim held by schemaObj .
Definition: capsule.h:84
static USDGEOM_API UsdGeomCapsule Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdGeomCapsule holding the prim adhering to this schema at path on stage.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:182
USDGEOM_API UsdAttribute CreateExtentAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetExtentAttr(), and also Create vs Get Property Methods for when to use Get vs Create...