Loading...
Searching...
No Matches
sphere.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_SPHERE_H
25#define USDGEOM_GENERATED_SPHERE_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"
35
36#include "pxr/base/vt/value.h"
37
38#include "pxr/base/gf/vec3d.h"
39#include "pxr/base/gf/vec3f.h"
41
42#include "pxr/base/tf/token.h"
43#include "pxr/base/tf/type.h"
44
45PXR_NAMESPACE_OPEN_SCOPE
46
47class SdfAssetPath;
48
49// -------------------------------------------------------------------------- //
50// SPHERE //
51// -------------------------------------------------------------------------- //
52
61{
62public:
66 static const UsdSchemaKind schemaKind = UsdSchemaKind::ConcreteTyped;
67
72 explicit UsdGeomSphere(const UsdPrim& prim=UsdPrim())
73 : UsdGeomGprim(prim)
74 {
75 }
76
80 explicit UsdGeomSphere(const UsdSchemaBase& schemaObj)
81 : UsdGeomGprim(schemaObj)
82 {
83 }
84
86 USDGEOM_API
87 virtual ~UsdGeomSphere();
88
92 USDGEOM_API
93 static const TfTokenVector &
94 GetSchemaAttributeNames(bool includeInherited=true);
95
105 USDGEOM_API
106 static UsdGeomSphere
107 Get(const UsdStagePtr &stage, const SdfPath &path);
108
131 USDGEOM_API
132 static UsdGeomSphere
133 Define(const UsdStagePtr &stage, const SdfPath &path);
134
135protected:
139 USDGEOM_API
141
142private:
143 // needs to invoke _GetStaticTfType.
144 friend class UsdSchemaRegistry;
145 USDGEOM_API
146 static const TfType &_GetStaticTfType();
147
148 static bool _IsTypedSchema();
149
150 // override SchemaBase virtuals.
151 USDGEOM_API
152 const TfType &_GetTfType() const override;
153
154public:
155 // --------------------------------------------------------------------- //
156 // RADIUS
157 // --------------------------------------------------------------------- //
168 USDGEOM_API
170
176 USDGEOM_API
177 UsdAttribute CreateRadiusAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
178
179public:
180 // --------------------------------------------------------------------- //
181 // EXTENT
182 // --------------------------------------------------------------------- //
191 USDGEOM_API
193
199 USDGEOM_API
200 UsdAttribute CreateExtentAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
201
202public:
203 // ===================================================================== //
204 // Feel free to add custom code below this line, it will be preserved by
205 // the code generator.
206 //
207 // Just remember to:
208 // - Close the class declaration with };
209 // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
210 // - Close the include guard with #endif
211 // ===================================================================== //
212 // --(BEGIN CUSTOM CODE)--
213
224 USDGEOM_API
225 static bool ComputeExtent(double radius, VtVec3fArray* extent);
226
229 USDGEOM_API
230 static bool ComputeExtent(double radius, const GfMatrix4d& transform,
231 VtVec3fArray* extent);
232};
233
234PXR_NAMESPACE_CLOSE_SCOPE
235
236#endif
Stores a 4x4 matrix of double elements.
Definition: matrix4d.h:88
Contains an asset path and an optional resolved path.
Definition: assetPath.h:47
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:291
TfType represents a dynamic runtime type.
Definition: type.h:65
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Definition: attribute.h:176
Base class for all geometric primitives.
Definition: gprim.h:67
Defines a primitive sphere centered at the origin.
Definition: sphere.h:61
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.
static USDGEOM_API UsdGeomSphere Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdGeomSphere holding the prim adhering to this schema at path on stage.
static USDGEOM_API bool ComputeExtent(double radius, const GfMatrix4d &transform, VtVec3fArray *extent)
This is an overloaded member function, provided for convenience. It differs from the above function o...
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: sphere.h:66
virtual USDGEOM_API ~UsdGeomSphere()
Destructor.
static USDGEOM_API UsdGeomSphere 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 UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
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.
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 bool ComputeExtent(double radius, VtVec3fArray *extent)
Compute the extent for the sphere defined by the radius.
UsdGeomSphere(const UsdPrim &prim=UsdPrim())
Construct a UsdGeomSphere on UsdPrim prim .
Definition: sphere.h:72
USDGEOM_API UsdAttribute GetRadiusAttr() const
Indicates the sphere's radius.
UsdGeomSphere(const UsdSchemaBase &schemaObj)
Construct a UsdGeomSphere on the prim held by schemaObj .
Definition: sphere.h:80
USDGEOM_API UsdAttribute GetExtentAttr() const
Extent is re-defined on Sphere only to provide a fallback value.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:134
The base class for all schema types in Usd.
Definition: schemaBase.h:56
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:165
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:129
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:457