8 #ifndef PXR_USD_SDR_SHADER_NODE_H
9 #define PXR_USD_SDR_SHADER_NODE_H
22 #include <unordered_map>
26 #define SDR_NODE_FIELD_KEY_TOKENS \
27 ((Identifier, "_identifier")) \
29 ((Family, "_family")) \
30 ((Function, "_function")) \
31 ((SourceType, "_sourceType")) \
32 ((ShadingSystem, "_shadingSystem"))
66 const std::string&
name,
69 const std::string& definitionURI,
70 const std::string& implementationURI,
73 const std::string &sourceCode = std::string()
83 std::move(properties),
96 const std::string& name,
100 const std::string& definitionURI,
101 const std::string& implementationURI,
104 const std::string &sourceCode = std::string());
389 std::vector<SdrIdentifier>,
405 const std::vector<SdrShaderNodeConstPtr> &shaderNodes);
413 void _PostProcessProperties();
484 void _InitializePrimvars();
492 #endif // PXR_USD_SDR_SHADER_NODE_H
TF_DECLARE_PUBLIC_TOKENS(SdrNodeFieldKey, SDR_API, SDR_NODE_FIELD_KEY_TOKENS)
SDR_API const SdrTokenVec & GetPages() const
SDR_API const SdrTokenVec & GetPrimvars() const
SDR_API const TfToken & GetCategory() const
const TfToken & GetContext() const
SDR_API const TfToken & GetLabel() const
SdrVersion GetShaderVersion() const
Return the version of the node.
std::string _implementationURI
const std::string & GetResolvedDefinitionURI() const
#define PXR_NAMESPACE_OPEN_SCOPE
const std::string & GetName() const
Gets the name of the node.
const TfToken & GetFamily() const
SDR_API SdrShaderPropertyConstPtr GetShaderInput(const TfToken &inputName) const
SDR_API const SdrTokenMap & GetPagesShownIf() const
Gets the shownIf expressions associated with each page.
SDR_API SdrShaderNode(const SdrIdentifier &identifier, const SdrVersion &version, const std::string &name, const TfToken &function, const TfToken &shadingSystem, const std::string &definitionURI, const std::string &implementationURI, SdrShaderPropertyUniquePtrVec &&properties, const SdrShaderNodeMetadata &metadata=SdrShaderNodeMetadata(), const std::string &sourceCode=std::string())
Constructor.
SdrTokenVec _primvarNamingProperties
Functor to use for hash maps from tokens to other things.
SDR_API const SdrTokenVec & GetAdditionalPrimvarProperties() const
const TfToken & GetSourceType() const
SDR_API const SdrTokenVec & GetDepartments() const
SDR_API std::string GetHelp() const
const std::string & GetResolvedImplementationURI() const
const TfToken & GetDomain() const
SDR_API std::string GetImplementationName() const
SDR_API SdrShaderPropertyConstPtr GetDefaultInput() const
SDR_API const SdrTokenVec & GetOpenPages() const
Gets the pages which should be opened or expanded by default.
SDR_API bool IsValid() const
SDR_API TfToken GetRole() const
SDR_API std::string GetInfoString() const
SDR_API const SdrTokenVec & GetShaderOutputNames() const
Get an ordered list of all the output names on this shader node.
SdrTokenMap _legacyMetadata
std::unordered_map< TfToken, std::vector< SdrIdentifier >, TfToken::HashFunctor > ComplianceResults
SDR_API VtValue GetDataForKey(const TfToken &key) const
SDR_API const SdrShaderNodeMetadata & GetMetadataObject() const
All metadata that came from the parse process.
GLuint const GLchar * name
const SdrIdentifier & GetIdentifier() const
Return the identifier of the node.
SdrShaderProperty const * SdrShaderPropertyConstPtr
SdrShaderNode & operator=(const SdrShaderNode &)=delete
GT_API const UT_StringHolder version
SDR_API SdrTokenVec GetPropertyNamesForPage(const std::string &pageName) const
SdrShaderPropertyMap _inputs
virtual SDR_API ~SdrShaderNode()
Destructor.
const TfToken & GetShadingSystem() const
SdrShaderPropertyUniquePtrVec _properties
SDR_API const SdrTokenVec & GetShaderInputNames() const
Get an ordered list of all the input names on this shader node.
const TfToken & GetSubdomain() const
static SDR_API ComplianceResults CheckPropertyCompliance(const std::vector< SdrShaderNodeConstPtr > &shaderNodes)
SdrShaderNodeMetadata _metadata
SDR_API SdrTokenVec GetAssetIdentifierInputNames() const
SDR_API const SdrTokenMap & GetMetadata() const
std::unordered_map< TfToken, SdrShaderPropertyConstPtr, TfToken::HashFunctor > SdrShaderPropertyMap
std::string _definitionURI
#define PXR_NAMESPACE_CLOSE_SCOPE
const std::string & GetSourceCode() const
SdrIdentifier _identifier
SDR_API SdrShaderPropertyConstPtr GetShaderOutput(const TfToken &outputName) const
SDR_API SdrTokenVec GetAllVstructNames() const
Gets all vstructs that are present in the shader.
SdrShaderPropertyMap _outputs
std::vector< TfToken > SdrTokenVec
std::unordered_map< TfToken, std::string, TfToken::HashFunctor > SdrTokenMap
const TfToken & GetFunction() const
std::vector< SdrShaderPropertyUniquePtr > SdrShaderPropertyUniquePtrVec
SdrTokenMap _pagesShownIf
#define SDR_NODE_FIELD_KEY_TOKENS