lightFilterAdapter.h
Go to the documentation of this file.
1 //
2 // Copyright 2017 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_LIGHT_FILTER_ADAPTER_H
8 #define PXR_USD_IMAGING_USD_IMAGING_LIGHT_FILTER_ADAPTER_H
9 
11 
12 #include "pxr/pxr.h"
13 #include "pxr/usdImaging/usdImaging/api.h"
15 
16 PXR_NAMESPACE_OPEN_SCOPE
17 
18 
19 class UsdPrim;
20 
26 public:
28 
29 
32  {}
33 
34  USDIMAGING_API
35  ~UsdImagingLightFilterAdapter() override;
36 
37  USDIMAGING_API
38  SdfPath Populate(UsdPrim const& prim,
39  UsdImagingIndexProxy* index,
40  UsdImagingInstancerContext const* instancerContext = NULL) override;
41 
42  USDIMAGING_API
43  bool IsSupported(UsdImagingIndexProxy const* index) const override;
44 
45  // ---------------------------------------------------------------------- //
47  // ---------------------------------------------------------------------- //
48 
50  USDIMAGING_API
51  void TrackVariability(UsdPrim const& prim,
52  SdfPath const& cachePath,
53  HdDirtyBits* timeVaryingBits,
55  instancerContext = NULL) const override;
56 
57 
59  USDIMAGING_API
60  void UpdateForTime(UsdPrim const& prim,
61  SdfPath const& cachePath,
62  UsdTimeCode time,
63  HdDirtyBits requestedBits,
65  instancerContext = NULL) const override;
66 
67  // ---------------------------------------------------------------------- //
69  // ---------------------------------------------------------------------- //
70 
73  USDIMAGING_API
74  HdDirtyBits ProcessPropertyChange(UsdPrim const& prim,
75  SdfPath const& cachePath,
76  TfToken const& propertyName) override;
77 
78  USDIMAGING_API
79  void MarkDirty(UsdPrim const& prim,
80  SdfPath const& cachePath,
81  HdDirtyBits dirty,
82  UsdImagingIndexProxy* index) override;
83 
84  USDIMAGING_API
85  void MarkTransformDirty(UsdPrim const& prim,
86  SdfPath const& cachePath,
87  UsdImagingIndexProxy* index) override;
88 
89  USDIMAGING_API
90  void MarkVisibilityDirty(UsdPrim const& prim,
91  SdfPath const& cachePath,
92  UsdImagingIndexProxy* index) override;
93 
94  // ---------------------------------------------------------------------- //
96  // ---------------------------------------------------------------------- //
97 
98  USDIMAGING_API
99  VtValue GetMaterialResource(UsdPrim const &prim,
100  SdfPath const& cachePath,
101  UsdTimeCode time) const override;
102 
103  // ---------------------------------------------------------------------- //
105  // ---------------------------------------------------------------------- //
106 
107  USDIMAGING_API
108  virtual TfTokenVector GetImagingSubprims(UsdPrim const& prim) override;
109 
110  USDIMAGING_API
111  TfToken GetImagingSubprimType(
112  UsdPrim const& prim, TfToken const& subprim) override;
113 
114  USDIMAGING_API
115  HdContainerDataSourceHandle GetImagingSubprimData(
116  UsdPrim const& prim,
117  TfToken const& subprim,
118  const UsdImagingDataSourceStageGlobals &stageGlobals) override;
119 
120  USDIMAGING_API
121  HdDataSourceLocatorSet InvalidateImagingSubprim(
122  UsdPrim const& prim,
123  TfToken const& subprim,
124  TfTokenVector const& properties,
125  UsdImagingPropertyInvalidationType invalidationType) override;
126 
127  USDIMAGING_API
129 
130  USDIMAGING_API
132  UsdPrim const& prim,
133  UsdPrim const& descendentPrim,
134  TfToken const& subprim,
135  TfTokenVector const& properties,
136  UsdImagingPropertyInvalidationType invalidationType) override;
137 
138 protected:
139  USDIMAGING_API
140  void _RemovePrim(SdfPath const& cachePath,
141  UsdImagingIndexProxy* index) override;
142 
143 };
144 
145 
146 PXR_NAMESPACE_CLOSE_SCOPE
147 
148 #endif // PXR_USD_IMAGING_USD_IMAGING_LIGHT_FILTER_ADAPTER_H
This proxy class exposes a subset of the private Delegate API to PrimAdapters.
Definition: indexProxy.h:30
USDIMAGING_API SdfPath Populate(UsdPrim const &prim, UsdImagingIndexProxy *index, UsdImagingInstancerContext const *instancerContext=NULL) override
Called to populate the RenderIndex for this UsdPrim.
USDIMAGING_API void TrackVariability(UsdPrim const &prim, SdfPath const &cachePath, HdDirtyBits *timeVaryingBits, UsdImagingInstancerContext const *instancerContext=NULL) const override
Thread Safe.
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:80
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.
USDIMAGING_API PopulationMode GetPopulationMode() override
Returns the prim's behavior with regard to population and invalidation.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:116
USDIMAGING_API void UpdateForTime(UsdPrim const &prim, SdfPath const &cachePath, UsdTimeCode time, HdDirtyBits requestedBits, UsdImagingInstancerContext const *instancerContext=NULL) const override
Thread Safe.
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:489
USDIMAGING_API bool IsSupported(UsdImagingIndexProxy const *index) const override
Returns true if the adapter can be populated into the target index.
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:280
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 HdDirtyBits ProcessPropertyChange(UsdPrim const &prim, SdfPath const &cachePath, TfToken const &propertyName) override
Returns a bit mask of attributes to be udpated, or HdChangeTracker::AllDirty if the entire prim must ...
Base class for all light filters.
Object used by instancer prim adapters to pass along context about the instancer and instance prim to...
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:89