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"))
\
27 ((Domain, "domain")) \
28 ((Subdomain, "subdomain")) \
29 ((Context, "context")) \
31 ((TargetRenderer, "targetRenderer")) \
32 ((Collections, "collections")) \
33 ((Departments, "departments"))
\
37 ((OpenPages, "openPages")) \
38 ((PagesShownIf, "pagesShownIf")) \
39 ((Primvars, "primvars")) \
40 ((ImplementationName, "__SDR__implementationName")) \
41 ((Target, "__SDR__target"))
\
42 ((SdrUsdEncodingVersion, "sdrUsdEncodingVersion")) \
43 ((SdrDefinitionNameFallbackPrefix, "sdrDefinitionNameFallbackPrefix"))
45#define SDR_NODE_DOMAIN_TOKENS \
46 ((Rendering, "rendering")) \
47 ((General, "general"))
49#define SDR_NODE_SUBDOMAIN_TOKENS \
51 ((Shading, "shading")) \
52 ((Filtering, "filtering")) \
53 ((Lighting, "lighting")) \
54 ((Rendering, "rendering"))
56#define SDR_NODE_CONTEXT_TOKENS \
58 ((Pattern, "pattern")) \
59 ((Surface, "surface")) \
60 ((Volume, "volume")) \
61 ((Displacement, "displacement")) \
64 ((LightFilter, "lightFilter")) \
66 ((DisplayFilter, "displayFilter")) \
67 ((PixelFilter, "pixelFilter")) \
68 ((SampleFilter, "sampleFilter")) \
69 ((VolumeFilter, "volumeFilter")) \
71 ((Integrator, "integrator")) \
72 ((Projection, "projection"))
74#define SDR_NODE_ROLE_TOKENS \
75 ((Primvar, "primvar")) \
76 ((Texture, "texture")) \
125 const std::initializer_list<std::pair<TfToken, std::string>>& init
150 template <
typename T>
169 template <
typename T>
173 const VtValue converted = VtValue::Cast<T>(v);
225 void SetLabel(
const TfToken& v);
261 bool HasDomain()
const;
265 void SetDomain(
const TfToken& v);
277 bool HasSubdomain()
const;
281 void SetSubdomain(
const TfToken& v);
283 void ClearSubdomain();
293 bool HasContext()
const;
297 void SetContext(
const TfToken& v);
307 bool HasRole()
const;
311 void SetRole(
const TfToken& v);
331 bool HasTargetRenderer()
const;
333 TfToken GetTargetRenderer()
const;
335 void SetTargetRenderer(
const TfToken& v);
337 void ClearTargetRenderer();
351 bool HasCollections()
const;
353 SdrTokenVec GetCollections()
const;
355 void SetCollections(
const SdrTokenVec& v);
357 void ClearCollections();
361 bool HasHelp()
const;
363 std::string GetHelp()
const;
365 void SetHelp(
const std::string& v);
412 bool HasOpenPages()
const;
414 SdrTokenVec GetOpenPages()
const;
416 void SetOpenPages(
const SdrTokenVec& v);
418 void ClearOpenPages();
431 bool HasPagesShownIf()
const;
433 SdrTokenMap GetPagesShownIf()
const;
435 void SetPagesShownIf(
const SdrTokenMap& v);
437 void ClearPagesShownIf();
441 bool HasPrimvars()
const;
443 SdrStringVec GetPrimvars()
const;
445 void SetPrimvars(
const SdrStringVec& v);
447 void ClearPrimvars();
450 bool HasImplementationName()
const;
452 std::string GetImplementationName()
const;
454 void SetImplementationName(
const std::string& v);
456 void ClearImplementationName();
459 bool HasSdrUsdEncodingVersion()
const;
461 int GetSdrUsdEncodingVersion()
const;
463 void SetSdrUsdEncodingVersion(
const int& v);
465 void ClearSdrUsdEncodingVersion();
468 bool HasSdrDefinitionNameFallbackPrefix()
const;
470 std::string GetSdrDefinitionNameFallbackPrefix()
const;
472 void SetSdrDefinitionNameFallbackPrefix(
const std::string& v);
474 void ClearSdrDefinitionNameFallbackPrefix();
485 SdrTokenMap _EncodeLegacyMetadata()
const;
488 SdrTokenMap _LegacyCtorFromInitializer(
489 std::initializer_list<std::pair<TfToken, std::string>> f)
491 return SdrTokenMap(f.begin(), f.end());
499 void _SetDefaultInitializations();
504PXR_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.