Loading...
Searching...
No Matches
geomSubsetAdapter.h
1//
2// Copyright 2023 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 PXR_USD_IMAGING_USD_IMAGING_GEOM_SUBSET_ADAPTER_H
25#define PXR_USD_IMAGING_USD_IMAGING_GEOM_SUBSET_ADAPTER_H
26
27#include "pxr/usdImaging/usdImaging/api.h"
29#include "pxr/usdImaging/usdImaging/types.h"
30
31#include "pxr/imaging/hd/dataSource.h"
32#include "pxr/imaging/hd/dataSourceLocator.h"
33#include "pxr/imaging/hd/types.h"
34
35#include "pxr/usd/sdf/path.h"
36#include "pxr/usd/usd/timeCode.h"
37
38#include "pxr/base/tf/token.h"
39
40#include "pxr/pxr.h"
41
42PXR_NAMESPACE_OPEN_SCOPE
43
44class UsdImagingGeomSubsetAdapter
46{
47public:
48 using BaseAdapter = UsdImagingPrimAdapter;
49
50 UsdImagingGeomSubsetAdapter()
51 : BaseAdapter()
52 { }
53
54 USDIMAGING_API
55 ~UsdImagingGeomSubsetAdapter() override;
56
57 // ---------------------------------------------------------------------- //
59 // ---------------------------------------------------------------------- //
60
61 USDIMAGING_API
62 TfTokenVector GetImagingSubprims(const UsdPrim& prim) override;
63
64 USDIMAGING_API
65 TfToken GetImagingSubprimType(
66 const UsdPrim& prim,
67 const TfToken& subprim) override;
68
69 USDIMAGING_API
70 HdContainerDataSourceHandle GetImagingSubprimData(
71 const UsdPrim& prim,
72 const TfToken& subprim,
73 const UsdImagingDataSourceStageGlobals& stageGlobals) override;
74
75 USDIMAGING_API
76 HdDataSourceLocatorSet InvalidateImagingSubprim(
77 const UsdPrim& prim,
78 const TfToken& subprim,
79 const TfTokenVector& properties,
80 UsdImagingPropertyInvalidationType invalidationType) override;
81
82 // ---------------------------------------------------------------------- //
84 // ---------------------------------------------------------------------- //
85
86 USDIMAGING_API
88 const UsdPrim& prim,
90 const UsdImagingInstancerContext* instancerCtx = nullptr) override;
91
92 USDIMAGING_API
94 const UsdPrim& prim,
95 const SdfPath& cachePath,
96 HdDirtyBits* timeVaryingBits,
97 const UsdImagingInstancerContext* instancerCtx = nullptr) const override
98 { }
99
100 USDIMAGING_API
101 void UpdateForTime(
102 const UsdPrim& prim,
103 const SdfPath& cachePath,
104 UsdTimeCode time,
105 HdDirtyBits requestedBits,
106 const UsdImagingInstancerContext* instancerCtx = nullptr) const override
107 { }
108
109 USDIMAGING_API
110 HdDirtyBits ProcessPropertyChange(
111 const UsdPrim& prim,
112 const SdfPath& cachePath,
113 const TfToken& propertyName) override;
114
115 USDIMAGING_API
116 void MarkDirty(
117 const UsdPrim& prim,
118 const SdfPath& cachePath,
119 HdDirtyBits dirty,
120 UsdImagingIndexProxy* index) override
121 { }
122
123protected:
124 USDIMAGING_API
125 void _RemovePrim(
126 const SdfPath& cachePath,
127 UsdImagingIndexProxy* index) override
128 { }
129};
130
131PXR_NAMESPACE_CLOSE_SCOPE
132
133#endif // PXR_USD_IMAGING_USD_IMAGING_GEOM_SUBSET_ADAPTER_H
Represents a set of data source locators closed under descendancy.
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:290
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:88
This class is used as a context object with global stage information, that gets passed down to dataso...
This proxy class exposes a subset of the private Delegate API to PrimAdapters.
Definition: indexProxy.h:47
Base class for all PrimAdapters.
Definition: primAdapter.h:71
virtual HdDirtyBits ProcessPropertyChange(UsdPrim const &prim, SdfPath const &cachePath, TfToken const &propertyName)=0
Returns a bit mask of attributes to be updated, or HdChangeTracker::AllDirty if the entire prim must ...
virtual SdfPath Populate(UsdPrim const &prim, UsdImagingIndexProxy *index, UsdImagingInstancerContext const *instancerContext=nullptr)=0
Called to populate the RenderIndex for this UsdPrim.
virtual void TrackVariability(UsdPrim const &prim, SdfPath const &cachePath, HdDirtyBits *timeVaryingBits, UsdImagingInstancerContext const *instancerContext=nullptr) const =0
For the given prim, variability is detected and stored in timeVaryingBits.
virtual void UpdateForTime(UsdPrim const &prim, SdfPath const &cachePath, UsdTimeCode time, HdDirtyBits requestedBits, UsdImagingInstancerContext const *instancerContext=nullptr) const =0
Populates the cache for the given prim, time and requestedBits.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:134
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:84
Object used by instancer prim adapters to pass along context about the instancer and instance prim to...
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