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;
70 GetNodeTypeInfoValue(
const TfToken& nodeName,
const TfToken& key)
const = 0;
73 const TfToken &nodeName)
const = 0;
75 virtual VtValue GetNodeParameterValue(
77 const TfToken ¶mName)
const = 0;
85 virtual NodeParamData GetNodeParameterData(
87 const TfToken ¶mName)
const = 0;
90 const TfToken &nodeName)
const = 0;
92 struct InputConnection
99 virtual InputConnectionVector GetNodeInputConnection(
101 const TfToken &inputName)
const = 0;
103 virtual void DeleteNode(
const TfToken &nodeName) = 0;
105 virtual void SetNodeType(
109 virtual void SetNodeParameterValue(
114 virtual void SetNodeParameterData(
117 const NodeParamData ¶mData) = 0;
119 virtual void DeleteNodeParameter(
123 virtual void SetNodeInputConnection(
126 const InputConnectionVector &connections) = 0;
128 virtual void DeleteNodeInputConnection(
136 using InputConnectionResult = std::pair<bool, InputConnection>;
137 virtual InputConnectionResult GetTerminalConnection(
138 const TfToken &terminalName)
const = 0;
140 virtual void DeleteTerminal(
141 const TfToken &terminalName) = 0;
143 virtual void SetTerminalConnection(
145 const InputConnection &connection) = 0;
149PXR_NAMESPACE_CLOSE_SCOPE
Abstract interface for querying and mutating a material network.
virtual std::string GetModelAssetName() const =0
Returns the nearest enclosing model asset name, as described by the model schema, or empty string if ...
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.