All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
imageable.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_IMAGEABLE_H
25 #define USDGEOM_GENERATED_IMAGEABLE_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/usdGeom/api.h"
31 #include "pxr/usd/usd/typed.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/gf/bbox3d.h"
37 #include "pxr/usd/usdGeom/primvar.h"
38 
39 #include "pxr/base/vt/value.h"
40 
41 #include "pxr/base/gf/vec3d.h"
42 #include "pxr/base/gf/vec3f.h"
43 #include "pxr/base/gf/matrix4d.h"
44 
45 #include "pxr/base/tf/token.h"
46 #include "pxr/base/tf/type.h"
47 
48 PXR_NAMESPACE_OPEN_SCOPE
49 
50 class SdfAssetPath;
51 
52 // -------------------------------------------------------------------------- //
53 // IMAGEABLE //
54 // -------------------------------------------------------------------------- //
55 
74 class UsdGeomImageable : public UsdTyped
75 {
76 public:
81 
86  explicit UsdGeomImageable(const UsdPrim& prim=UsdPrim())
87  : UsdTyped(prim)
88  {
89  }
90 
94  explicit UsdGeomImageable(const UsdSchemaBase& schemaObj)
95  : UsdTyped(schemaObj)
96  {
97  }
98 
100  USDGEOM_API
101  virtual ~UsdGeomImageable();
102 
106  USDGEOM_API
107  static const TfTokenVector &
108  GetSchemaAttributeNames(bool includeInherited=true);
109 
119  USDGEOM_API
120  static UsdGeomImageable
121  Get(const UsdStagePtr &stage, const SdfPath &path);
122 
123 
124 protected:
128  USDGEOM_API
129  UsdSchemaType _GetSchemaType() const override;
130 
131 private:
132  // needs to invoke _GetStaticTfType.
133  friend class UsdSchemaRegistry;
134  USDGEOM_API
135  static const TfType &_GetStaticTfType();
136 
137  static bool _IsTypedSchema();
138 
139  // override SchemaBase virtuals.
140  USDGEOM_API
141  const TfType &_GetTfType() const override;
142 
143 public:
144  // --------------------------------------------------------------------- //
145  // VISIBILITY
146  // --------------------------------------------------------------------- //
159  USDGEOM_API
161 
167  USDGEOM_API
168  UsdAttribute CreateVisibilityAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
169 
170 public:
171  // --------------------------------------------------------------------- //
172  // PURPOSE
173  // --------------------------------------------------------------------- //
215  USDGEOM_API
217 
223  USDGEOM_API
224  UsdAttribute CreatePurposeAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
225 
226 public:
227  // --------------------------------------------------------------------- //
228  // PROXYPRIM
229  // --------------------------------------------------------------------- //
251  USDGEOM_API
253 
256  USDGEOM_API
258 
259 public:
260  // ===================================================================== //
261  // Feel free to add custom code below this line, it will be preserved by
262  // the code generator.
263  //
264  // Just remember to:
265  // - Close the class declaration with };
266  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
267  // - Close the include guard with #endif
268  // ===================================================================== //
269  // --(BEGIN CUSTOM CODE)--
270 
271 
272  // --------------------------------------------------------------------- //
275  // --------------------------------------------------------------------- //
276 
278  USDGEOM_API
279  UsdGeomPrimvar CreatePrimvar(const TfToken& attrName,
280  const SdfValueTypeName &typeName,
281  const TfToken& interpolation = TfToken(),
282  int elementSize = -1) const;
283 
285  USDGEOM_API
286  UsdGeomPrimvar GetPrimvar(const TfToken &name) const;
287 
289  USDGEOM_API
290  std::vector<UsdGeomPrimvar> GetPrimvars() const;
291 
293  USDGEOM_API
294  std::vector<UsdGeomPrimvar> GetAuthoredPrimvars() const;
295 
297  USDGEOM_API
298  bool HasPrimvar(const TfToken &name) const;
299 
300 
312  USDGEOM_API
313  static const TfTokenVector &GetOrderedPurposeTokens();
314 
315  // --------------------------------------------------------------------- //
320  // --------------------------------------------------------------------- //
321 
348  USDGEOM_API
349  void MakeVisible(const UsdTimeCode &time=UsdTimeCode::Default()) const;
350 
364  USDGEOM_API
365  void MakeInvisible(const UsdTimeCode &time=UsdTimeCode::Default()) const;
366 
368 
369  // --------------------------------------------------------------------- //
380  // --------------------------------------------------------------------- //
381 
399  USDGEOM_API
401 
407  USDGEOM_API
408  TfToken ComputeVisibility(const TfToken &parentVisibility,
409  UsdTimeCode const &time = UsdTimeCode::Default()) const;
410 
436  USDGEOM_API
437  TfToken ComputePurpose() const;
438 
444  USDGEOM_API
445  TfToken ComputePurpose(const TfToken &parentPurpose) const;
446 
475  USDGEOM_API
476  UsdPrim ComputeProxyPrim(UsdPrim *renderPrim=NULL) const;
477 
486  USDGEOM_API
487  bool SetProxyPrim(const UsdPrim &proxy) const;
488 
490  USDGEOM_API
491  bool SetProxyPrim(const UsdSchemaBase &proxy) const;
492 
506  USDGEOM_API
508  TfToken const &purpose1=TfToken(),
509  TfToken const &purpose2=TfToken(),
510  TfToken const &purpose3=TfToken(),
511  TfToken const &purpose4=TfToken()) const;
512 
513 
527  USDGEOM_API
529  TfToken const &purpose1=TfToken(),
530  TfToken const &purpose2=TfToken(),
531  TfToken const &purpose3=TfToken(),
532  TfToken const &purpose4=TfToken()) const;
533 
547  USDGEOM_API
549  TfToken const &purpose1=TfToken(),
550  TfToken const &purpose2=TfToken(),
551  TfToken const &purpose3=TfToken(),
552  TfToken const &purpose4=TfToken()) const;
553 
561  USDGEOM_API
563 
571  USDGEOM_API
573 
575 
576 };
577 
578 PXR_NAMESPACE_CLOSE_SCOPE
579 
580 #endif
USDGEOM_API void MakeVisible(const UsdTimeCode &time=UsdTimeCode::Default()) const
Make the imageable visible if it is invisible at the given time.
static const UsdSchemaType schemaType
Compile time constant representing what kind of schema this class is.
Definition: imageable.h:80
USDGEOM_API UsdAttribute GetPurposeAttr() const
Purpose is a concept we have found useful in our pipeline for classifying geometry into categories th...
USDGEOM_API UsdAttribute GetVisibilityAttr() const
Visibility is meant to be the simplest form of &quot;pruning&quot; visibility that is supported by most DCC app...
USDGEOM_API bool SetProxyPrim(const UsdPrim &proxy) const
Convenience function for authoring the renderProxy rel on this prim to target the given proxy prim...
USDGEOM_API GfMatrix4d ComputeLocalToWorldTransform(UsdTimeCode const &time) const
Compute the transformation matrix for this prim at the given time, including the transform authored o...
USDGEOM_API GfBBox3d ComputeLocalBound(UsdTimeCode const &time, TfToken const &purpose1=TfToken(), TfToken const &purpose2=TfToken(), TfToken const &purpose3=TfToken(), TfToken const &purpose4=TfToken()) const
Compute the bound of this prim in local space, at the specified time, and for the specified purposes...
virtual USDGEOM_API ~UsdGeomImageable()
Destructor.
Represents a value type name, i.e.
Definition: valueTypeName.h:83
USDGEOM_API UsdSchemaType _GetSchemaType() const override
Returns the type of schema this class belongs to.
USDGEOM_API GfMatrix4d ComputeParentToWorldTransform(UsdTimeCode const &time) const
Compute the transformation matrix for this prim at the given time, NOT including the transform author...
USDGEOM_API std::vector< UsdGeomPrimvar > GetPrimvars() const
Scenegraph object for authoring and retrieving numeric, string, and array valued data, sampled over time.
Definition: attribute.h:176
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 UsdGeomImageable Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdGeomImageable holding the prim adhering to this schema at path on stage.
USDGEOM_API void MakeInvisible(const UsdTimeCode &time=UsdTimeCode::Default()) const
Makes the imageable invisible if it is visible at the given time.
USDGEOM_API UsdAttribute CreateVisibilityAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetVisibilityAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
USDGEOM_API std::vector< UsdGeomPrimvar > GetAuthoredPrimvars() const
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:89
Stores a 4x4 matrix of double elements.
Definition: matrix4d.h:88
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:85
USDGEOM_API UsdRelationship GetProxyPrimRel() const
The proxyPrim relationship allows us to link a prim whose purpose is &quot;render&quot; to its (single target) ...
USDGEOM_API UsdRelationship CreateProxyPrimRel() const
See GetProxyPrimRel(), and also Create vs Get Property Methods for when to use Get vs Create...
UsdGeomImageable(const UsdPrim &prim=UsdPrim())
Construct a UsdGeomImageable on UsdPrim prim .
Definition: imageable.h:86
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 &quot;Prim&quot; as ...
Definition: prim.h:131
The base class for all typed schemas (those that can impart a typeName to a UsdPrim), and therefore the base class for all instantiable and &quot;IsA&quot; schemas.
Definition: typed.h:47
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:438
Represents a non-concrete typed schema.
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:287
USDGEOM_API TfToken ComputePurpose() const
Calculate the effective purpose of this prim, as defined by its most ancestral authored non-&quot;default&quot;...
A UsdRelationship creates dependencies between scenegraph objects by allowing a prim to target other ...
Definition: relationship.h:128
Contains an asset path and an optional resolved path.
Definition: assetPath.h:43
static constexpr UsdTimeCode Default()
Produce a UsdTimeCode representing the sentinel value for &#39;default&#39;.
Definition: timeCode.h:113
static USDGEOM_API const TfTokenVector & GetOrderedPurposeTokens()
Returns an ordered list of allowed values of the purpose attribute.
USDGEOM_API UsdGeomPrimvar CreatePrimvar(const TfToken &attrName, const SdfValueTypeName &typeName, const TfToken &interpolation=TfToken(), int elementSize=-1) const
UsdGeomImageable(const UsdSchemaBase &schemaObj)
Construct a UsdGeomImageable on the prim held by schemaObj .
Definition: imageable.h:94
TfType represents a dynamic runtime type.
Definition: type.h:70
Singleton registry that provides access to prim and property definition information for registered Us...
Schema wrapper for UsdAttribute for authoring and introspecting attributes that are primvars...
Definition: primvar.h:260
USDGEOM_API TfToken ComputeVisibility(UsdTimeCode const &time=UsdTimeCode::Default()) const
Calculate the effective visibility of this prim, as defined by its most ancestral authored &quot;invisible...
The base class for all schema types in Usd.
Definition: schemaBase.h:56
USDGEOM_API UsdGeomPrimvar GetPrimvar(const TfToken &name) const
USDGEOM_API GfBBox3d ComputeUntransformedBound(UsdTimeCode const &time, TfToken const &purpose1=TfToken(), TfToken const &purpose2=TfToken(), TfToken const &purpose3=TfToken(), TfToken const &purpose4=TfToken()) const
Compute the untransformed bound of this prim, at the specified time, and for the specified purposes...
Base class for all prims that may require rendering or visualization of some sort.
Definition: imageable.h:74
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:182
Basic type: arbitrarily oriented 3D bounding box.
Definition: bbox3d.h:84
USDGEOM_API UsdAttribute CreatePurposeAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetPurposeAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
USDGEOM_API UsdPrim ComputeProxyPrim(UsdPrim *renderPrim=NULL) const
Find the prim whose purpose is proxy that serves as the proxy for this prim, as established by the Ge...
USDGEOM_API GfBBox3d ComputeWorldBound(UsdTimeCode const &time, TfToken const &purpose1=TfToken(), TfToken const &purpose2=TfToken(), TfToken const &purpose3=TfToken(), TfToken const &purpose4=TfToken()) const
Compute the bound of this prim in world space, at the specified time, and for the specified purposes...
USDGEOM_API bool HasPrimvar(const TfToken &name) const