8#ifndef PXR_USD_SDR_SHADER_NODE_METADATA_H
9#define PXR_USD_SDR_SHADER_NODE_METADATA_H
14#include "pxr/usd/sdr/api.h"
17PXR_NAMESPACE_OPEN_SCOPE
25#define SDR_NODE_METADATA_TOKENS \
26 ((Category, "category")) \
28 ((Departments, "departments")) \
32 ((OpenPages, "openPages")) \
33 ((PagesShownIf, "pagesShownIf")) \
34 ((Primvars, "primvars")) \
35 ((ImplementationName, "__SDR__implementationName"))\
36 ((Target, "__SDR__target")) \
37 ((SdrUsdEncodingVersion, "sdrUsdEncodingVersion")) \
38 ((SdrDefinitionNameFallbackPrefix, "sdrDefinitionNameFallbackPrefix"))
45#define SDR_NODE_CONTEXT_TOKENS \
46 ((Pattern, "pattern")) \
47 ((Surface, "surface")) \
48 ((Volume, "volume")) \
49 ((Displacement, "displacement")) \
51 ((DisplayFilter, "displayFilter")) \
52 ((LightFilter, "lightFilter")) \
53 ((PixelFilter, "pixelFilter")) \
54 ((SampleFilter, "sampleFilter"))
56#define SDR_NODE_ROLE_TOKENS \
57 ((Primvar, "primvar")) \
58 ((Texture, "texture")) \
94 const std::initializer_list<std::pair<TfToken, std::string>>& init
101 : _items(
std::move(items)) {}
121 template <
typename T>
140 template <
typename T>
144 const VtValue converted = VtValue::Cast<T>(v);
172 void SetLabel(
const TfToken& v);
177 bool HasCategory()
const;
181 void SetCategory(
const TfToken& v);
183 void ClearCategory();
198 bool HasRole()
const;
212 bool HasHelp()
const;
214 std::string GetHelp()
const;
216 void SetHelp(
const std::string& v);
221 bool HasDepartments()
const;
223 SdrTokenVec GetDepartments()
const;
225 void SetDepartments(
const SdrTokenVec& v);
227 void ClearDepartments();
239 SdrTokenVec GetPages()
const;
241 void SetPages(
const SdrTokenVec& v);
247 bool HasOpenPages()
const;
249 SdrTokenVec GetOpenPages()
const;
251 void SetOpenPages(
const SdrTokenVec& v);
253 void ClearOpenPages();
266 bool HasPagesShownIf()
const;
268 SdrTokenMap GetPagesShownIf()
const;
270 void SetPagesShownIf(
const SdrTokenMap& v);
272 void ClearPagesShownIf();
276 bool HasPrimvars()
const;
278 SdrStringVec GetPrimvars()
const;
280 void SetPrimvars(
const SdrStringVec& v);
282 void ClearPrimvars();
285 bool HasImplementationName()
const;
287 std::string GetImplementationName()
const;
289 void SetImplementationName(
const std::string& v);
291 void ClearImplementationName();
294 bool HasSdrUsdEncodingVersion()
const;
296 int GetSdrUsdEncodingVersion()
const;
298 void SetSdrUsdEncodingVersion(
const int& v);
300 void ClearSdrUsdEncodingVersion();
303 bool HasSdrDefinitionNameFallbackPrefix()
const;
305 std::string GetSdrDefinitionNameFallbackPrefix()
const;
307 void SetSdrDefinitionNameFallbackPrefix(
const std::string& v);
309 void ClearSdrDefinitionNameFallbackPrefix();
320 SdrTokenMap _EncodeLegacyMetadata()
const;
323 SdrTokenMap _LegacyCtorFromInitializer(
324 std::initializer_list<std::pair<TfToken, std::string>> f)
326 return SdrTokenMap(f.begin(), f.end());
332PXR_NAMESPACE_CLOSE_SCOPE
Represents a node that holds shading information.
Token for efficient comparison, assignment, and hashing of known strings.
A map with string keys and VtValue values.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
bool IsEmpty() const
Returns true iff this value is empty.
T const & UncheckedGet() const &
Returns a const reference to the held object if the held object is of type T.
This file defines some macros that are useful for declaring and using static TfTokens.
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.