24#ifndef PXR_IMAGING_HD_MATERIAL_NETWORK_INTERFACE_H
25#define PXR_IMAGING_HD_MATERIAL_NETWORK_INTERFACE_H
28#include "pxr/usd/sdf/path.h"
29#include "pxr/base/vt/value.h"
33PXR_NAMESPACE_OPEN_SCOPE
53 virtual SdfPath GetMaterialPrimPath()
const = 0;
66 GetNodeTypeInfoValue(
const TfToken& nodeName,
const TfToken& key)
const = 0;
69 const TfToken &nodeName)
const = 0;
71 virtual VtValue GetNodeParameterValue(
73 const TfToken ¶mName)
const = 0;
76 const TfToken &nodeName)
const = 0;
78 struct InputConnection
85 virtual InputConnectionVector GetNodeInputConnection(
87 const TfToken &inputName)
const = 0;
89 virtual void DeleteNode(
const TfToken &nodeName) = 0;
91 virtual void SetNodeType(
95 virtual void SetNodeParameterValue(
100 virtual void DeleteNodeParameter(
104 virtual void SetNodeInputConnection(
107 const InputConnectionVector &connections) = 0;
109 virtual void DeleteNodeInputConnection(
117 using InputConnectionResult = std::pair<bool, InputConnection>;
118 virtual InputConnectionResult GetTerminalConnection(
119 const TfToken &terminalName)
const = 0;
121 virtual void DeleteTerminal(
122 const TfToken &terminalName) = 0;
124 virtual void SetTerminalConnection(
126 const InputConnection &connection) = 0;
130PXR_NAMESPACE_CLOSE_SCOPE
Abstract interface for querying and mutating a material network.
virtual TfTokenVector GetTerminalNames() const =0
virtual TfTokenVector GetNodeTypeInfoKeys(const TfToken &nodeName) const =0
Node type info is a collection of data related to the node type, often used to determine the node typ...
A path value used to locate objects in layers or scenegraphs.
This is a small-vector class with local storage optimization, the local storage can be specified via ...
Token for efficient comparison, assignment, and hashing of known strings.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
std::vector< TfToken > TfTokenVector
Convenience types.