24#ifndef HD_MATERIAL_NETWORK_2_INTERFACE_H
25#define HD_MATERIAL_NETWORK_2_INTERFACE_H
28#include "pxr/imaging/hd/api.h"
29#include "pxr/imaging/hd/material.h"
30#include "pxr/imaging/hd/materialNetworkInterface.h"
32PXR_NAMESPACE_OPEN_SCOPE
45 const SdfPath &materialPrimPath,
47 : _materialPrimPath(materialPrimPath)
48 , _materialNetwork(materialNetwork)
49 , _lastAccessedNode(
nullptr)
53 SdfPath GetMaterialPrimPath()
const override {
54 return _materialPrimPath;
77 const TfToken &nodeName)
const override;
82 const TfToken ¶mName)
const override;
85 NodeParamData GetNodeParameterData(
87 const TfToken ¶mName)
const override;
91 const TfToken &nodeName)
const override;
96 const TfToken &inputName)
const override;
99 void DeleteNode(
const TfToken &nodeName)
override;
104 const TfToken &nodeType)
override;
107 void SetNodeParameterValue(
110 const VtValue &value)
override;
113 void SetNodeParameterData(
116 const NodeParamData ¶mData)
override;
119 void DeleteNodeParameter(
121 const TfToken ¶mName)
override;
124 void SetNodeInputConnection(
130 void DeleteNodeInputConnection(
132 const TfToken &inputName)
override;
138 InputConnectionResult GetTerminalConnection(
139 const TfToken &terminalName)
const override;
142 void DeleteTerminal(
const TfToken &terminalName)
override;
145 void SetTerminalConnection(
147 const InputConnection &connection)
override;
152 mutable TfToken _lastAccessedNodeName;
162PXR_NAMESPACE_CLOSE_SCOPE
Implements HdMaterialNetworkInterface interface backed by an HdMaterialNetwork2 – which is useful for...
HD_API TfTokenVector GetTerminalNames() const override
HD_API std::string GetModelAssetName() const override
Returns the nearest enclosing model asset name, as described by the model schema, or empty string if ...
HD_API TfTokenVector GetNodeTypeInfoKeys(const TfToken &nodeName) const override
Node type info is a collection of data related to the node type, often used to determine the node typ...
Abstract interface for querying and mutating a material network.
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...
Container of nodes and top-level terminal connections.
Describes an instance of a node within a network A node contains a (shader) type identifier,...
std::vector< TfToken > TfTokenVector
Convenience types.