34 const SdfPath &materialPrimPath,
35 const HdContainerDataSourceHandle &networkContainer,
36 const HdContainerDataSourceHandle &primContainer)
37 : _materialPrimPath(materialPrimPath)
38 , _networkSchema(networkContainer)
39 , _networkEditor(networkContainer)
40 , _primContainer(primContainer)
41 , _nodesSchema(
nullptr)
42 , _lastAccessedNodeSchema(
nullptr)
43 , _lastAccessedNodeParametersSchema(
nullptr)
44 , _lastAccessedNodeConnectionsSchema(
nullptr)
48 SdfPath GetMaterialPrimPath()
const override {
49 return _materialPrimPath;
74 const TfToken &nodeName)
const override;
79 const TfToken ¶mName)
const override;
82 HdMaterialNetworkInterface::NodeParamData GetNodeParameterData(
84 const TfToken ¶mName)
const override;
88 const TfToken &nodeName)
const override;
93 const TfToken &inputName)
const override;
96 void DeleteNode(
const TfToken &nodeName)
override;
104 const TfToken &nodeType)
override;
107 void SetNodeTypeInfoValue(
110 const VtValue &value)
override;
113 void SetNodeParameterValue(
116 const VtValue &value)
override;
119 void SetNodeParameterData(
122 const NodeParamData ¶mData)
override;
125 void DeleteNodeParameter(
127 const TfToken ¶mName)
override;
130 void SetNodeInputConnection(
136 void DeleteNodeInputConnection(
138 const TfToken &inputName)
override;
144 InputConnectionResult GetTerminalConnection(
145 const TfToken &terminalName)
const override;
149 const TfToken &terminalName)
override;
152 void SetTerminalConnection(
154 const InputConnection &connection)
override;
157 HdContainerDataSourceHandle Finish();
164 HdContainerDataSourceHandle _GetOriginalNodeTypeInfo(
165 const TfToken& nodeName)
const;
169 HdContainerDataSourceHandle _GetNodeTypeInfo(
170 const TfToken& nodeName)
const;
176 using _HdContainerDataSourceEditorSharedPtr =
177 std::shared_ptr<class HdContainerDataSourceEditor>;
179 using _NodeTypeInfoMap =
180 std::unordered_map<
TfToken, _HdContainerDataSourceEditorSharedPtr,
183 using _TokenSet = std::unordered_set<TfToken, TfHash>;
187 const HdDataSourceBaseHandle &ds);
191 HdContainerDataSourceEditor _networkEditor;
192 _NodeTypeInfoMap _nodeTypeInfoOverrides;
193 HdContainerDataSourceHandle _primContainer;
194 _OverrideMap _existingOverrides;
195 _TokenSet _overriddenNodes;
196 _TokenSet _deletedNodes;
197 bool _terminalsOverridden =
false;
201 const TfToken &nodeName)
const;
203 const TfToken &nodeName)
const;
205 const TfToken &nodeName)
const;
210 mutable TfToken _lastAccessedNodeName;