7#ifndef PXR_IMAGING_HD_MATERIAL_NETWORK_INTERFACE_H
8#define PXR_IMAGING_HD_MATERIAL_NETWORK_INTERFACE_H
11#include "pxr/usd/sdf/path.h"
12#include "pxr/base/vt/value.h"
16PXR_NAMESPACE_OPEN_SCOPE
36 virtual SdfPath GetMaterialPrimPath()
const = 0;
53 GetNodeTypeInfoValue(
const TfToken& nodeName,
const TfToken& key)
const = 0;
56 const TfToken &nodeName)
const = 0;
58 virtual VtValue GetNodeParameterValue(
60 const TfToken ¶mName)
const = 0;
68 virtual NodeParamData GetNodeParameterData(
70 const TfToken ¶mName)
const = 0;
73 const TfToken &nodeName)
const = 0;
75 struct InputConnection
82 virtual InputConnectionVector GetNodeInputConnection(
84 const TfToken &inputName)
const = 0;
86 virtual void DeleteNode(
const TfToken &nodeName) = 0;
88 virtual void SetNodeType(
92 virtual void SetNodeParameterValue(
97 virtual void SetNodeParameterData(
100 const NodeParamData ¶mData) = 0;
102 virtual void DeleteNodeParameter(
106 virtual void SetNodeInputConnection(
109 const InputConnectionVector &connections) = 0;
111 virtual void DeleteNodeInputConnection(
119 using InputConnectionResult = std::pair<bool, InputConnection>;
120 virtual InputConnectionResult GetTerminalConnection(
121 const TfToken &terminalName)
const = 0;
123 virtual void DeleteTerminal(
124 const TfToken &terminalName) = 0;
126 virtual void SetTerminalConnection(
128 const InputConnection &connection) = 0;
132PXR_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.