|
NDR_API | NdrNode (const NdrIdentifier &identifier, const NdrVersion &version, const std::string &name, const TfToken &family, const TfToken &context, const TfToken &sourceType, const std::string &definitionURI, const std::string &implementationURI, NdrPropertyUniquePtrVec &&properties, const NdrTokenMap &metadata=NdrTokenMap(), const std::string &sourceCode=std::string()) |
| Constructor. More...
|
|
virtual NDR_API | ~NdrNode () |
| Destructor. More...
|
|
|
const NdrIdentifier & | GetIdentifier () const |
| Return the identifier of the node. More...
|
|
NdrVersion | GetVersion () const |
| Return the version of the node. More...
|
|
const std::string & | GetName () const |
| Gets the name of the node. More...
|
|
const TfToken & | GetFamily () const |
|
const TfToken & | GetContext () const |
|
const TfToken & | GetSourceType () const |
|
const std::string & | GetResolvedDefinitionURI () const |
|
const std::string & | GetResolvedImplementationURI () const |
|
const std::string & | GetSourceCode () const |
|
virtual NDR_API bool | IsValid () const |
|
virtual NDR_API std::string | GetInfoString () const |
|
|
An input or output is also generically referred to as a "property".
|
NDR_API const NdrTokenVec & | GetInputNames () const |
| Get an ordered list of all the input names on this node. More...
|
|
NDR_API const NdrTokenVec & | GetOutputNames () const |
| Get an ordered list of all the output names on this node. More...
|
|
NDR_API NdrPropertyConstPtr | GetInput (const TfToken &inputName) const |
|
NDR_API NdrPropertyConstPtr | GetOutput (const TfToken &outputName) const |
|
|
The metadata returned here is a direct result of what the parser plugin is able to determine about the node. See the documentation for a specific parser plugin to get help on what the parser is looking for to populate these values.
|
NDR_API const NdrTokenMap & | GetMetadata () const |
|
Represents an abstract node. Describes information like the name of the node, what its inputs and outputs are, and any associated metadata.
In almost all cases, this class will not be used directly. More specialized nodes can be created that derive from NdrNode
; those specialized nodes can add their own domain-specific data and methods.
Definition at line 48 of file node.h.
const TfToken& NdrNode::GetContext |
( |
| ) |
const |
|
inline |
Gets the context of the node.
The context is the context that the node declares itself as having (or, if a particular node does not declare a context, it will be assigned a default context by the parser).
As a concrete example from the Sdr
library, a shader with a specific source type may perform different duties vs. another shader with the same source type. For example, one shader with a source type of SdrArgsParser::SourceType
may declare itself as having a context of 'pattern', while another shader of the same source type may say it is used for lighting, and thus has a context of 'light'.
Definition at line 97 of file node.h.
Returns the source code for this node. This will be empty for most nodes. It will be non-empty only for the nodes that are constructed using NdrRegistry::GetNodeFromSourceCode(), in which case, the source code has not been parsed (or even compiled) yet.
An unparsed node with non-empty source-code but no properties is considered to be invalid. Once the node is parsed and the relevant properties and metadata are extracted from the source code, the node becomes valid.
- See Also
- NdrNode::IsValid
Definition at line 138 of file node.h.
const TfToken& NdrNode::GetSourceType |
( |
| ) |
const |
|
inline |
Gets the type of source that this node originated from.
Note that this is distinct from GetContext()
, which is the type that the node declares itself as having.
As a concrete example from the Sdr
library, several shader parsers exist and operate on different types of shaders. In this scenario, each distinct type of shader (OSL, Args, etc) is considered a different source, even though they are all shaders. In addition, the shaders under each source type may declare themselves as having a specific context (shaders can serve different roles). See GetContext()
for more information on this.
Definition at line 111 of file node.h.
virtual NDR_API bool NdrNode::IsValid |
( |
| ) |
const |
|
inlinevirtual |
Whether or not this node is valid. A node that is valid indicates that the parser plugin was able to successfully parse the contents of this node.
Note that if a node is not valid, some data like its name, URI, source code etc. could still be available (data that was obtained during the discovery process). However, other data that must be gathered from the parsing process will NOT be available (eg, inputs and outputs).
Definition at line 149 of file node.h.