dataSourceVolume.h
1 //
2 // Copyright 2020 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 
8 #ifndef PXR_USD_IMAGING_USD_IMAGING_DATA_SOURCE_VOLUME_H
9 #define PXR_USD_IMAGING_USD_IMAGING_DATA_SOURCE_VOLUME_H
10 
11 #include "pxr/usdImaging/usdImaging/dataSourceGprim.h"
12 #include "pxr/usdImaging/usdImaging/dataSourceStageGlobals.h"
13 
14 #include "pxr/usd/usdVol/volume.h"
15 
16 
17 PXR_NAMESPACE_OPEN_SCOPE
18 
24 {
25 public:
26  HD_DECLARE_DATASOURCE(UsdImagingDataSourceVolumeFieldBindings);
27 
28  TfTokenVector GetNames() override;
29  HdDataSourceBaseHandle Get(const TfToken & name) override;
30 
31 private:
32 
33  // Private constructor, use static New() instead.
35  UsdVolVolume usdVolume,
36  const UsdImagingDataSourceStageGlobals &stageGlobals);
37 
38 
39 private:
40  UsdVolVolume _usdVolume;
41  const UsdImagingDataSourceStageGlobals &_stageGlobals;
42 };
43 
44 HD_DECLARE_DATASOURCE_HANDLES(UsdImagingDataSourceVolumeFieldBindings);
45 
46 // ----------------------------------------------------------------------------
47 
53 {
54 public:
55  HD_DECLARE_DATASOURCE(UsdImagingDataSourceVolumePrim);
56 
57  TfTokenVector GetNames() override;
58  HdDataSourceBaseHandle Get(const TfToken &name) override;
59 
60  static
62  Invalidate(
63  UsdPrim const& prim,
64  const TfToken &subprim,
65  const TfTokenVector &properties,
66  UsdImagingPropertyInvalidationType invalidationType);
67 
68 private:
69  // Private constructor, use static New() instead.
71  const SdfPath &sceneIndexPath,
72  UsdPrim usdPrim,
73  const UsdImagingDataSourceStageGlobals &stageGlobals);
74 };
75 
76 HD_DECLARE_DATASOURCE_HANDLES(UsdImagingDataSourceVolumePrim);
77 
78 PXR_NAMESPACE_CLOSE_SCOPE
79 
80 #endif // PXR_USD_IMAGING_USD_IMAGING_DATA_SOURCE_VOLUME_H
Data source representing a USD gprim.
A datasource representing structured (named, hierarchical) data, for example a geometric primitive or...
Definition: dataSource.h:147
A renderable volume primitive.
Definition: volume.h:56
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:80
TfTokenVector GetNames() override
Returns the list of names for which Get(...) is expected to return a non-null value.
This class is used as a context object with global stage information, that gets passed down to dataso...
A container data source representing volume field binding information.
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
HdDataSourceBaseHandle Get(const TfToken &name) override
Returns the child datasource of the given name.
TfTokenVector GetNames() override
Returns the list of names for which Get(...) is expected to return a non-null value.
HdDataSourceBaseHandle Get(const TfToken &name) override
Returns the child datasource of the given name.
A prim data source representing a UsdVolVolume prim.