HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
dataSourceMaterial.h
Go to the documentation of this file.
1 //
2 // Copyright 2022 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_DATA_SOURCE_MATERIAL_H
8 #define PXR_USD_IMAGING_USD_IMAGING_DATA_SOURCE_MATERIAL_H
9 
11 
12 #include "pxr/usd/usd/prim.h"
13 
17 
19 
21 
22 // ----------------------------------------------------------------------------
23 
24 /// \class UsdImagingDataSourceMaterial
25 ///
26 /// A data source mapping for data source material.
27 ///
28 /// Creates HdMaterialSchema from a UsdShadeMaterial prim
29 ///
31 {
32 public:
34 
35  TfTokenVector GetNames() override;
36  HdDataSourceBaseHandle Get(const TfToken &name) override;
37 
39 
40 private:
41  /// If \p fixedTerminalName is specified, the provided \p usdPrim will be
42  /// treated as the terminal shader node in the graph rather than as a
43  /// material (with relationships to the prims serving as terminal shader
44  /// nodes). This is relevant for light and light filter cases.
47  const UsdPrim &usdPrim,
48  const UsdImagingDataSourceStageGlobals &stageGlobals,
49  const TfToken &fixedTerminalName = TfToken()
50  );
51 
52 private:
53  const UsdPrim _usdPrim;
54  const UsdImagingDataSourceStageGlobals &_stageGlobals;
55  const TfToken _fixedTerminalName;
56 };
57 
59 
60 // ----------------------------------------------------------------------------
61 
62 /// \class UsdImagingDataSourceMaterialPrim
63 ///
64 /// A prim data source mapping for a UsdShadeMaterial prim
65 ///
67 {
68 public:
70 
71  TfTokenVector GetNames() override;
72  HdDataSourceBaseHandle Get(const TfToken &name) override;
73 
75 
77  const UsdPrim &prim,
78  const TfToken &subprim,
79  const TfTokenVector &properties,
80  UsdImagingPropertyInvalidationType invalidationType);
81 
82 private:
85  const SdfPath &sceneIndexPath,
86  const UsdPrim &usdPrim,
87  const UsdImagingDataSourceStageGlobals &stageGlobals);
88 };
89 
91 
93 
94 #endif //PXR_USD_IMAGING_USD_IMAGING_DATA_SOURCE_MATERIAL_H
HD_DECLARE_DATASOURCE(UsdImagingDataSourceMaterialPrim)
#define USDIMAGING_API
Definition: api.h:23
#define PXR_NAMESPACE_OPEN_SCOPE
Definition: pxr.h:73
HD_DECLARE_DATASOURCE(UsdImagingDataSourceMaterial)
TfTokenVector GetNames() override
HdDataSourceBaseHandle Get(const TfToken &name) override
~UsdImagingDataSourceMaterial() override
Definition: token.h:70
static HdDataSourceLocatorSet Invalidate(const UsdPrim &prim, const TfToken &subprim, const TfTokenVector &properties, UsdImagingPropertyInvalidationType invalidationType)
Definition: prim.h:116
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:440
GLuint const GLchar * name
Definition: glcorearb.h:786
Definition: path.h:280
HD_DECLARE_DATASOURCE_HANDLES(UsdImagingDataSourceMaterial)
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
TfTokenVector GetNames() override
HdDataSourceBaseHandle Get(const TfToken &name) override
UsdImagingPropertyInvalidationType
Definition: types.h:17