24 #ifndef HD_DATA_SOURCE_MATERIAL_NETWORK_INTERFACE_H
25 #define HD_DATA_SOURCE_MATERIAL_NETWORK_INTERFACE_H
30 #include <unordered_map>
31 #include <unordered_set>
48 const SdfPath &materialPrimPath,
49 const HdContainerDataSourceHandle &networkContainer)
50 : _materialPrimPath(materialPrimPath)
51 , _networkContainer(networkContainer)
52 , _containerEditor(networkContainer)
56 return _materialPrimPath;
73 const TfToken &nodeName)
const override;
78 const TfToken ¶mName)
const override;
82 const TfToken &nodeName)
const override;
87 const TfToken &inputName)
const override;
95 const TfToken &nodeType)
override;
106 const TfToken ¶mName)
override;
117 const TfToken &inputName)
override;
124 const TfToken &terminalName)
const override;
128 const TfToken &terminalName)
override;
133 const InputConnection &connection)
override;
136 HdContainerDataSourceHandle
Finish();
139 HdContainerDataSourceHandle _GetNodeTypeInfo(
140 const TfToken& nodeName)
const;
146 using _TokenSet = std::unordered_set<TfToken, TfHash>;
150 const HdDataSourceBaseHandle &ds);
153 HdContainerDataSourceHandle _networkContainer;
155 _OverrideMap _existingOverrides;
156 _TokenSet _overriddenNodes;
157 _TokenSet _deletedNodes;
158 bool _terminalsOverridden =
false;
161 HdContainerDataSourceHandle _GetNode(
162 const TfToken &nodeName)
const;
163 HdContainerDataSourceHandle _GetNodeParameters(
164 const TfToken &nodeName)
const;
165 HdContainerDataSourceHandle _GetNodeConnections(
166 const TfToken &nodeName)
const;
168 mutable HdContainerDataSourceHandle _nodesContainer;
169 mutable TfToken _lastAccessedNodeName;
170 mutable HdContainerDataSourceHandle _lastAccessedNode;
171 mutable HdContainerDataSourceHandle _lastAccessedNodeParameters;
172 mutable HdContainerDataSourceHandle _lastAccessedNodeConnections;
177 #endif // HD_DATA_SOURCE_MATERIAL_NETWORK_INTERFACE_H
HD_API void DeleteNode(const TfToken &nodeName) override
HD_API VtValue GetNodeParameterValue(const TfToken &nodeName, const TfToken ¶mName) const override
HD_API void DeleteNodeInputConnection(const TfToken &nodeName, const TfToken &inputName) override
HD_API TfTokenVector GetNodeNames() const override
HD_API TfToken GetNodeType(const TfToken &nodeName) const override
HD_API void SetNodeType(const TfToken &nodeName, const TfToken &nodeType) override
HD_API TfTokenVector GetNodeTypeInfoKeys(const TfToken &nodeName) const override
HD_API HdContainerDataSourceHandle Finish()
SdfPath GetMaterialPrimPath() const override
HdDataSourceMaterialNetworkInterface(const SdfPath &materialPrimPath, const HdContainerDataSourceHandle &networkContainer)
HD_API void DeleteNodeParameter(const TfToken &nodeName, const TfToken ¶mName) override
HD_API void SetNodeParameterValue(const TfToken &nodeName, const TfToken ¶mName, const VtValue &value) override
HD_API VtValue GetNodeTypeInfoValue(const TfToken &nodeName, const TfToken &value) const override
std::vector< TfToken > TfTokenVector
Convenience types.
HD_API void DeleteTerminal(const TfToken &terminalName) override
HD_API TfTokenVector GetNodeInputConnectionNames(const TfToken &nodeName) const override
HD_API InputConnectionResult GetTerminalConnection(const TfToken &terminalName) const override
HD_API TfTokenVector GetTerminalNames() const override
TfSmallVector< InputConnection, 4 > InputConnectionVector
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
HD_API void SetNodeInputConnection(const TfToken &nodeName, const TfToken &inputName, const InputConnectionVector &connections) override
HD_API InputConnectionVector GetNodeInputConnection(const TfToken &nodeName, const TfToken &inputName) const override
#define PXR_NAMESPACE_CLOSE_SCOPE
HD_API TfTokenVector GetAuthoredNodeParameterNames(const TfToken &nodeName) const override
HD_API void SetTerminalConnection(const TfToken &terminalName, const InputConnection &connection) override
std::pair< bool, InputConnection > InputConnectionResult