MCPcopy Create free account
hub / github.com/DiligentGraphics/DiligentFX / GetTerminalNode

Function GetTerminalNode

Hydrogent/src/HnMaterialNetwork.cpp:108–137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

106{
107
108const pxr::HdMaterialNode2* GetTerminalNode(const pxr::HdMaterialNetwork2& Network,
109 const pxr::TfToken& TerminalToken,
110 pxr::SdfPath& TerminalPath)
111{
112 // Find the node that is upstream of the terminal, e.g.
113 // the node that is connected to the terminal's input.
114 const auto terminal_it = Network.terminals.find(TerminalToken);
115 if (terminal_it == Network.terminals.end())
116 return nullptr;
117
118 //
119 // upstreamNode
120 // A
121 // |
122 // | HdMaterialConnection2
123 // |
124 // Terminal
125 //
126 const pxr::HdMaterialConnection2& TerminalConnection = terminal_it->second;
127
128 const auto node_it = Network.nodes.find(TerminalConnection.upstreamNode);
129 if (node_it == Network.nodes.end())
130 {
131 LOG_ERROR_MESSAGE("Unable to find upstream node ", TerminalConnection.upstreamNode, " of terminal ", TerminalToken);
132 return nullptr;
133 }
134
135 TerminalPath = TerminalConnection.upstreamNode;
136 return &node_it->second;
137}
138
139#if 0
140std::shared_ptr<pxr::HioGlslfx> GetGlslfxForTerminal(const pxr::TfToken& NodeTypeId)

Callers 1

HnMaterialNetworkMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected