All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
volume.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 USDVOL_GENERATED_VOLUME_H
25 #define USDVOL_GENERATED_VOLUME_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/usdVol/api.h"
31 #include "pxr/usd/usdGeom/gprim.h"
32 #include "pxr/usd/usd/prim.h"
33 #include "pxr/usd/usd/stage.h"
34 
35 #include "pxr/base/vt/value.h"
36 
37 #include "pxr/base/gf/vec3d.h"
38 #include "pxr/base/gf/vec3f.h"
39 #include "pxr/base/gf/matrix4d.h"
40 
41 #include "pxr/base/tf/token.h"
42 #include "pxr/base/tf/type.h"
43 
44 PXR_NAMESPACE_OPEN_SCOPE
45 
46 class SdfAssetPath;
47 
48 // -------------------------------------------------------------------------- //
49 // VOLUME //
50 // -------------------------------------------------------------------------- //
51 
73 class UsdVolVolume : public UsdGeomGprim
74 {
75 public:
80 
85  explicit UsdVolVolume(const UsdPrim& prim=UsdPrim())
86  : UsdGeomGprim(prim)
87  {
88  }
89 
93  explicit UsdVolVolume(const UsdSchemaBase& schemaObj)
94  : UsdGeomGprim(schemaObj)
95  {
96  }
97 
99  USDVOL_API
100  virtual ~UsdVolVolume();
101 
105  USDVOL_API
106  static const TfTokenVector &
107  GetSchemaAttributeNames(bool includeInherited=true);
108 
118  USDVOL_API
119  static UsdVolVolume
120  Get(const UsdStagePtr &stage, const SdfPath &path);
121 
144  USDVOL_API
145  static UsdVolVolume
146  Define(const UsdStagePtr &stage, const SdfPath &path);
147 
148 protected:
152  USDVOL_API
153  UsdSchemaKind _GetSchemaKind() const override;
154 
155 private:
156  // needs to invoke _GetStaticTfType.
157  friend class UsdSchemaRegistry;
158  USDVOL_API
159  static const TfType &_GetStaticTfType();
160 
161  static bool _IsTypedSchema();
162 
163  // override SchemaBase virtuals.
164  USDVOL_API
165  const TfType &_GetTfType() const override;
166 
167 public:
168  // ===================================================================== //
169  // Feel free to add custom code below this line, it will be preserved by
170  // the code generator.
171  //
172  // Just remember to:
173  // - Close the class declaration with };
174  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
175  // - Close the include guard with #endif
176  // ===================================================================== //
177  // --(BEGIN CUSTOM CODE)--
178 
179  // --------------------------------------------------------------------- //
182  // --------------------------------------------------------------------- //
183 
184  typedef std::map<TfToken, SdfPath> FieldMap;
185 
193  USDVOL_API
194  FieldMap GetFieldPaths() const;
195 
203  USDVOL_API
204  bool HasFieldRelationship(const TfToken &name) const;
205 
212  USDVOL_API
213  SdfPath GetFieldPath(const TfToken &name) const;
214 
230  USDVOL_API
231  bool CreateFieldRelationship(const TfToken &name,
232  const SdfPath &fieldPath) const;
233 
242  USDVOL_API
243  bool BlockFieldRelationship(const TfToken &name) const;
244 
245 private:
250  static TfToken _MakeNamespaced(const TfToken& name);
251 };
252 
253 PXR_NAMESPACE_CLOSE_SCOPE
254 
255 #endif
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: volume.h:79
USDVOL_API FieldMap GetFieldPaths() const
Return a map of field relationship names to the fields themselves, represented as prim paths...
UsdVolVolume(const UsdSchemaBase &schemaObj)
Construct a UsdVolVolume on the prim held by schemaObj .
Definition: volume.h:93
USDVOL_API bool HasFieldRelationship(const TfToken &name) const
Checks if there is an existing field relationship with a given name.
A renderable volume primitive.
Definition: volume.h:73
static USDVOL_API UsdVolVolume Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdVolVolume holding the prim adhering to this schema at path on stage.
static USDVOL_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 USDVOL_API UsdVolVolume Define(const UsdStagePtr &stage, const SdfPath &path)
Attempt to ensure a UsdPrim adhering to this schema at path is defined (according to UsdPrim::IsDefin...
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:127
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:87
USDVOL_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
Represents a concrete typed schema.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a &quot;Prim&quot; 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:288
UsdVolVolume(const UsdPrim &prim=UsdPrim())
Construct a UsdVolVolume on UsdPrim prim .
Definition: volume.h:85
Contains an asset path and an optional resolved path.
Definition: assetPath.h:47
USDVOL_API bool CreateFieldRelationship(const TfToken &name, const SdfPath &fieldPath) const
Creates a relationship on this volume that targets the specified field.
Base class for all geometric primitives.
Definition: gprim.h:66
USDVOL_API SdfPath GetFieldPath(const TfToken &name) const
Checks if there is an existing field relationship with a given name, and if so, returns the path to t...
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...
virtual USDVOL_API ~UsdVolVolume()
Destructor.
The base class for all schema types in Usd.
Definition: schemaBase.h:56
USDVOL_API bool BlockFieldRelationship(const TfToken &name) const
Blocks an existing field relationship on this volume, ensuring it will not be enumerated by GetFieldP...
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...