materialAdapter.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 PXR_USD_IMAGING_USD_IMAGING_MATERIAL_ADAPTER_H
8 #define PXR_USD_IMAGING_USD_IMAGING_MATERIAL_ADAPTER_H
9 
11 
12 #include "pxr/pxr.h"
15 
16 PXR_NAMESPACE_OPEN_SCOPE
17 
19 
20 
24 {
25 public:
27 
30  {}
31 
32  USDIMAGING_API
33  ~UsdImagingMaterialAdapter() override;
34 
35 
36 
37  // ---------------------------------------------------------------------- //
39  // ---------------------------------------------------------------------- //
40 
41  USDIMAGING_API
42  TfTokenVector GetImagingSubprims(UsdPrim const& prim) override;
43 
44  USDIMAGING_API
45  TfToken GetImagingSubprimType(
46  UsdPrim const& prim,
47  TfToken const& subprim) override;
48 
49  USDIMAGING_API
50  HdContainerDataSourceHandle GetImagingSubprimData(
51  UsdPrim const& prim,
52  TfToken const& subprim,
53  const UsdImagingDataSourceStageGlobals &stageGlobals) override;
54 
55  USDIMAGING_API
56  HdDataSourceLocatorSet InvalidateImagingSubprim(
57  UsdPrim const& prim,
58  TfToken const& subprim,
59  TfTokenVector const& properties,
60  UsdImagingPropertyInvalidationType invalidationType) override;
61 
64  USDIMAGING_API
66 
67  USDIMAGING_API
69  UsdPrim const& prim,
70  UsdPrim const& descendentPrim,
71  TfToken const& subprim,
72  TfTokenVector const& properties,
73  UsdImagingPropertyInvalidationType invalidationType) override;
74 
75  // ---------------------------------------------------------------------- //
77  // ---------------------------------------------------------------------- //
78 
79  USDIMAGING_API
80  SdfPath Populate(UsdPrim const& prim,
81  UsdImagingIndexProxy* index,
82  UsdImagingInstancerContext const* instancerContext = NULL) override;
83 
84  USDIMAGING_API
85  bool IsSupported(UsdImagingIndexProxy const* index) const override;
86 
87  // ---------------------------------------------------------------------- //
89  // ---------------------------------------------------------------------- //
90 
92  USDIMAGING_API
93  void TrackVariability(UsdPrim const& prim,
94  SdfPath const& cachePath,
95  HdDirtyBits* timeVaryingBits,
97  instancerContext = NULL) const override;
98 
99 
101  USDIMAGING_API
102  void UpdateForTime(UsdPrim const& prim,
103  SdfPath const& cachePath,
104  UsdTimeCode time,
105  HdDirtyBits requestedBits,
107  instancerContext = NULL) const override;
108 
109  // ---------------------------------------------------------------------- //
111  // ---------------------------------------------------------------------- //
112 
115  USDIMAGING_API
116  HdDirtyBits ProcessPropertyChange(UsdPrim const& prim,
117  SdfPath const& cachePath,
118  TfToken const& propertyName) override;
119 
120  USDIMAGING_API
121  void MarkDirty(UsdPrim const& prim,
122  SdfPath const& cachePath,
123  HdDirtyBits dirty,
124  UsdImagingIndexProxy* index) override;
125 
126  USDIMAGING_API
127  void MarkMaterialDirty(UsdPrim const& prim,
128  SdfPath const& cachePath,
129  UsdImagingIndexProxy* index) override;
130 
131  USDIMAGING_API
132  void ProcessPrimResync(SdfPath const& cachePath,
133  UsdImagingIndexProxy* index) override;
134 
135  // ---------------------------------------------------------------------- //
137  // ---------------------------------------------------------------------- //
138 
139  USDIMAGING_API
140  VtValue GetMaterialResource(UsdPrim const &prim,
141  SdfPath const& cachePath,
142  UsdTimeCode time) const override;
143 
144 protected:
145  USDIMAGING_API
146  void _RemovePrim(SdfPath const& cachePath,
147  UsdImagingIndexProxy* index) final;
148 };
149 
155 {
156 public:
158 
161 };
162 
168 {
169 public:
171 
174 };
175 
176 PXR_NAMESPACE_CLOSE_SCOPE
177 
178 #endif // PXR_USD_IMAGING_USD_IMAGING_MATERIAL_ADAPTER_H
USDIMAGING_API PopulationMode GetPopulationMode() override
Returns RepresentsSelfAndDescendents to suppress population of child Shader prims and receive notice ...
Base class for all prim adapters which only want to indicate that an ancestor prim is responsible for...
USDIMAGING_API HdDataSourceLocatorSet InvalidateImagingSubprimFromDescendent(UsdPrim const &prim, UsdPrim const &descendentPrim, TfToken const &subprim, TfTokenVector const &properties, UsdImagingPropertyInvalidationType invalidationType) override
This is called (for each result of GetImagingSubprims) when this adapter's GetScope() result is Repre...
USDIMAGING_API void ProcessPrimResync(SdfPath const &cachePath, UsdImagingIndexProxy *index) override
When a PrimResync event occurs, the prim may have been deleted entirely, adapter plug-ins should over...
This proxy class exposes a subset of the private Delegate API to PrimAdapters.
Definition: indexProxy.h:30
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:80
USDIMAGING_API SdfPath Populate(UsdPrim const &prim, UsdImagingIndexProxy *index, UsdImagingInstancerContext const *instancerContext=NULL) override
Called to populate the RenderIndex for this UsdPrim.
USDIMAGING_API bool IsSupported(UsdImagingIndexProxy const *index) const override
Returns true if the adapter can be populated into the target index.
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:73
This class is used as a context object with global stage information, that gets passed down to dataso...
Base class for all PrimAdapters.
Definition: primAdapter.h:52
Represents a set of data source locators closed under descendancy.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:116
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:489
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:280
USDIMAGING_API HdDirtyBits ProcessPropertyChange(UsdPrim const &prim, SdfPath const &cachePath, TfToken const &propertyName) override
Returns a bit mask of attributes to be updated, or HdChangeTracker::AllDirty if the entire prim must ...
USDIMAGING_API void UpdateForTime(UsdPrim const &prim, SdfPath const &cachePath, UsdTimeCode time, HdDirtyBits requestedBits, UsdImagingInstancerContext const *instancerContext=NULL) const override
Thread Safe.
Delegates invalidation responsibility of a Noge Graph prim to an ancestor Material prim.
Delegates invalidation responsibility of a Shader prim to an ancestor Material prim.
Object used by instancer prim adapters to pass along context about the instancer and instance prim to...
Provides information that can be used to generate a material.
Describes a map from network type to network.
Definition: material.h:115
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:89
USDIMAGING_API void TrackVariability(UsdPrim const &prim, SdfPath const &cachePath, HdDirtyBits *timeVaryingBits, UsdImagingInstancerContext const *instancerContext=NULL) const override
Thread Safe.