7 #ifndef HD_DATA_SOURCE_MATERIAL_NETWORK_INTERFACE_H
8 #define HD_DATA_SOURCE_MATERIAL_NETWORK_INTERFACE_H
16 #include <unordered_map>
17 #include <unordered_set>
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)
49 return _materialPrimPath;
74 const TfToken &nodeName)
const override;
79 const TfToken ¶mName)
const override;
84 const TfToken ¶mName)
const override;
88 const TfToken &nodeName)
const override;
93 const TfToken &inputName)
const override;
104 const TfToken &nodeType)
override;
122 const NodeParamData ¶mData)
override;
127 const TfToken ¶mName)
override;
138 const TfToken &inputName)
override;
145 const TfToken &terminalName)
const override;
149 const TfToken &terminalName)
override;
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);
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;
220 #endif // HD_DATA_SOURCE_MATERIAL_NETWORK_INTERFACE_H
HdDataSourceMaterialNetworkInterface(const SdfPath &materialPrimPath, const HdContainerDataSourceHandle &networkContainer, const HdContainerDataSourceHandle &primContainer)
HD_API void DeleteNode(const TfToken &nodeName) override
HD_API void SetNodeParameterData(const TfToken &nodeName, const TfToken ¶mName, const NodeParamData ¶mData) override
HD_API VtValue GetNodeParameterValue(const TfToken &nodeName, const TfToken ¶mName) const override
HD_API void DeleteNodeInputConnection(const TfToken &nodeName, const TfToken &inputName) override
GLsizei const GLfloat * value
HD_API TfTokenVector GetNodeNames() const override
HD_API HdMaterialNetworkInterface::NodeParamData GetNodeParameterData(const TfToken &nodeName, const TfToken ¶mName) const override
HD_API TfToken GetNodeType(const TfToken &nodeName) const override
HD_API void SetNodeType(const TfToken &nodeName, const TfToken &nodeType) override
HD_API VtValue GetMaterialConfigValue(const TfToken &key) const override
Functor to use for hash maps from tokens to other things.
HD_API TfTokenVector GetNodeTypeInfoKeys(const TfToken &nodeName) const override
HD_API HdContainerDataSourceHandle Finish()
HD_API TfTokenVector GetMaterialConfigKeys() const override
HD_API void SetNodeTypeInfoValue(const TfToken &nodeName, const TfToken &key, const VtValue &value) override
HD_API SdfPath GetMaterialPrimPath() const override
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 std::string GetModelAssetName() const override
HD_API void SetTerminalConnection(const TfToken &terminalName, const InputConnection &connection) override
std::pair< bool, InputConnection > InputConnectionResult