All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
plane.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 USDGEOM_GENERATED_PLANE_H
8#define USDGEOM_GENERATED_PLANE_H
9
11
12#include "pxr/pxr.h"
13#include "pxr/usd/usdGeom/api.h"
15#include "pxr/usd/usd/prim.h"
16#include "pxr/usd/usd/stage.h"
18
19#include "pxr/base/vt/value.h"
20
21#include "pxr/base/gf/vec3d.h"
22#include "pxr/base/gf/vec3f.h"
24
25#include "pxr/base/tf/token.h"
26#include "pxr/base/tf/type.h"
27
28PXR_NAMESPACE_OPEN_SCOPE
29
30class SdfAssetPath;
31
32// -------------------------------------------------------------------------- //
33// PLANE //
34// -------------------------------------------------------------------------- //
35
57{
58public:
62 static const UsdSchemaKind schemaKind = UsdSchemaKind::ConcreteTyped;
63
68 explicit UsdGeomPlane(const UsdPrim& prim=UsdPrim())
69 : UsdGeomGprim(prim)
70 {
71 }
72
76 explicit UsdGeomPlane(const UsdSchemaBase& schemaObj)
77 : UsdGeomGprim(schemaObj)
78 {
79 }
80
82 USDGEOM_API
83 virtual ~UsdGeomPlane();
84
88 USDGEOM_API
89 static const TfTokenVector &
90 GetSchemaAttributeNames(bool includeInherited=true);
91
101 USDGEOM_API
102 static UsdGeomPlane
103 Get(const UsdStagePtr &stage, const SdfPath &path);
104
127 USDGEOM_API
128 static UsdGeomPlane
129 Define(const UsdStagePtr &stage, const SdfPath &path);
130
131protected:
135 USDGEOM_API
137
138private:
139 // needs to invoke _GetStaticTfType.
140 friend class UsdSchemaRegistry;
141 USDGEOM_API
142 static const TfType &_GetStaticTfType();
143
144 static bool _IsTypedSchema();
145
146 // override SchemaBase virtuals.
147 USDGEOM_API
148 const TfType &_GetTfType() const override;
149
150public:
151 // --------------------------------------------------------------------- //
152 // DOUBLESIDED
153 // --------------------------------------------------------------------- //
165 USDGEOM_API
167
173 USDGEOM_API
174 UsdAttribute CreateDoubleSidedAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
175
176public:
177 // --------------------------------------------------------------------- //
178 // WIDTH
179 // --------------------------------------------------------------------- //
191 USDGEOM_API
193
199 USDGEOM_API
200 UsdAttribute CreateWidthAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
201
202public:
203 // --------------------------------------------------------------------- //
204 // LENGTH
205 // --------------------------------------------------------------------- //
217 USDGEOM_API
219
225 USDGEOM_API
226 UsdAttribute CreateLengthAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
227
228public:
229 // --------------------------------------------------------------------- //
230 // AXIS
231 // --------------------------------------------------------------------- //
245 USDGEOM_API
247
253 USDGEOM_API
254 UsdAttribute CreateAxisAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
255
256public:
257 // --------------------------------------------------------------------- //
258 // EXTENT
259 // --------------------------------------------------------------------- //
268 USDGEOM_API
270
276 USDGEOM_API
277 UsdAttribute CreateExtentAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
278
279public:
280 // ===================================================================== //
281 // Feel free to add custom code below this line, it will be preserved by
282 // the code generator.
283 //
284 // Just remember to:
285 // - Close the class declaration with };
286 // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
287 // - Close the include guard with #endif
288 // ===================================================================== //
289 // --(BEGIN CUSTOM CODE)--
290
301 USDGEOM_API
302 static bool ComputeExtent(double width, double length, const TfToken& axis,
303 VtVec3fArray* extent);
304
307 USDGEOM_API
308 static bool ComputeExtent(double width, double length, const TfToken& axis,
309 const GfMatrix4d& transform, VtVec3fArray* extent);
310};
311
312PXR_NAMESPACE_CLOSE_SCOPE
313
314#endif
Stores a 4x4 matrix of double elements.
Definition: matrix4d.h:71
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
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:71
TfType represents a dynamic runtime type.
Definition: type.h:48
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Definition: attribute.h:160
Base class for all geometric primitives.
Definition: gprim.h:50
Defines a primitive plane, centered at the origin, and is defined by a cardinal axis,...
Definition: plane.h:57
UsdGeomPlane(const UsdPrim &prim=UsdPrim())
Construct a UsdGeomPlane on UsdPrim prim .
Definition: plane.h:68
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.
USDGEOM_API UsdAttribute CreateLengthAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetLengthAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
UsdGeomPlane(const UsdSchemaBase &schemaObj)
Construct a UsdGeomPlane on the prim held by schemaObj .
Definition: plane.h:76
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: plane.h:62
USDGEOM_API UsdAttribute CreateDoubleSidedAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetDoubleSidedAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDGEOM_API UsdAttribute GetDoubleSidedAttr() const
Planes are double-sided by default.
virtual USDGEOM_API ~UsdGeomPlane()
Destructor.
USDGEOM_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
static USDGEOM_API bool ComputeExtent(double width, double length, const TfToken &axis, VtVec3fArray *extent)
Compute the extent for the plane defined by the size of each dimension.
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...
static USDGEOM_API UsdGeomPlane Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdGeomPlane holding the prim adhering to this schema at path on stage.
USDGEOM_API UsdAttribute GetWidthAttr() const
The width of the plane, which aligns to the x-axis when axis is 'Z' or 'Y', or to the z-axis when axi...
static USDGEOM_API bool ComputeExtent(double width, double length, const TfToken &axis, const GfMatrix4d &transform, VtVec3fArray *extent)
This is an overloaded member function, provided for convenience. It differs from the above function o...
USDGEOM_API UsdAttribute CreateWidthAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetWidthAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDGEOM_API UsdAttribute GetAxisAttr() const
The axis along which the surface of the plane is aligned.
static USDGEOM_API UsdGeomPlane Define(const UsdStagePtr &stage, const SdfPath &path)
Attempt to ensure a UsdPrim adhering to this schema at path is defined (according to UsdPrim::IsDefin...
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.
USDGEOM_API UsdAttribute GetExtentAttr() const
Extent is re-defined on Plane only to provide a fallback value.
USDGEOM_API UsdAttribute GetLengthAttr() const
The length of the plane, which aligns to the y-axis when axis is 'Z' or 'X', or to the z-axis when ax...
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:117
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