Loading...
Searching...
No Matches
materialInterfaceSchema.h
Go to the documentation of this file.
1//
2// Copyright 2023 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
8
9/* ************************************************************************** */
10/* ** ** */
11/* ** This file is generated by a script. ** */
12/* ** ** */
13/* ** Do not edit it directly (unless it is within a CUSTOM CODE section)! ** */
14/* ** Edit hdSchemaDefs.py instead to make changes. ** */
15/* ** ** */
16/* ************************************************************************** */
17
18#ifndef PXR_IMAGING_HD_MATERIAL_INTERFACE_SCHEMA_H
19#define PXR_IMAGING_HD_MATERIAL_INTERFACE_SCHEMA_H
20
22
23#include "pxr/imaging/hd/api.h"
24#include "pxr/imaging/hd/schemaTypeDefs.h"
25
26#include "pxr/imaging/hd/schema.h"
27
28// --(BEGIN CUSTOM CODE: Includes)--
29
30#include <unordered_map>
31
32// --(END CUSTOM CODE: Includes)--
33
34PXR_NAMESPACE_OPEN_SCOPE
35
36// --(BEGIN CUSTOM CODE: Declares)--
37
38using TfTokenMap = std::unordered_map<TfToken, TfToken, TfToken::HashFunctor>;
39using NestedTfTokenMap =
40 std::unordered_map<TfToken, TfTokenMap, TfToken::HashFunctor>;
41
42// --(END CUSTOM CODE: Declares)--
43
44#define HD_MATERIAL_INTERFACE_SCHEMA_TOKENS \
45 (parameters) \
46 (parameterOrder) \
47
48TF_DECLARE_PUBLIC_TOKENS(HdMaterialInterfaceSchemaTokens, HD_API,
49 HD_MATERIAL_INTERFACE_SCHEMA_TOKENS);
50
51//-----------------------------------------------------------------------------
52
53
60{
61public:
64
65 HdMaterialInterfaceSchema(HdContainerDataSourceHandle container)
66 : HdSchema(container) {}
67
69
70// --(BEGIN CUSTOM CODE: Schema Methods)--
71
80 HD_API
81 NestedTfTokenMap GetReverseInterfaceMappings() const;
82
83// --(END CUSTOM CODE: Schema Methods)--
84
87
89 HD_API
91
97 HD_API
98 HdTokenArrayDataSourceHandle GetParameterOrder() const;
99
101
104
112 HD_API
113 static HdContainerDataSourceHandle
115 const HdContainerDataSourceHandle &parameters,
116 const HdTokenArrayDataSourceHandle &parameterOrder
117 );
118
126 {
127 public:
128 HD_API
129 Builder &SetParameters(
130 const HdContainerDataSourceHandle &parameters);
131 HD_API
132 Builder &SetParameterOrder(
133 const HdTokenArrayDataSourceHandle &parameterOrder);
134
136 HD_API
137 HdContainerDataSourceHandle Build();
138
139 private:
140 HdContainerDataSourceHandle _parameters;
141 HdTokenArrayDataSourceHandle _parameterOrder;
142
143 };
144
146};
147
148PXR_NAMESPACE_CLOSE_SCOPE
149
150#endif
Template class for a schema backed by a container whose children have arbitrary names but an expected...
Utility class for setting sparse sets of child data source fields to be filled as arguments into Buil...
HD_API HdContainerDataSourceHandle Build()
Returns a container data source containing the members set thus far.
The MaterialInterface schema describes a material's interface parameters, also known as public UI par...
HD_API HdTokenArrayDataSourceHandle GetParameterOrder() const
Provides the intended order of the interface parameters for UI purposes.
HD_API NestedTfTokenMap GetReverseInterfaceMappings() const
Builds and returns a map of reversed interface mappings.
HD_API HdMaterialInterfaceParameterContainerSchema GetParameters() const
A container for all the material's interface parameters.
static HD_API HdContainerDataSourceHandle BuildRetained(const HdContainerDataSourceHandle &parameters, const HdTokenArrayDataSourceHandle &parameterOrder)
Schema classes represent a structured view of the inherently unstructured container data source passe...
Definition: schema.h:26
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.
Definition: staticTokens.h:92