Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-07-10 15:20:39 +0300
committerJacques Lucke <jacques@blender.org>2020-07-10 15:23:13 +0300
commit60133ff98d8602f0a4a2199c76fdbd42820d1233 (patch)
tree3b15b489bcab29e1227411b1605aa2c3473430c9 /source/blender
parent295b3aefb0bd884ebec7f838b9dffcbcce3b4eea (diff)
Functions: store derived node tree and network in map for future access
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/BKE_node_tree_multi_function.hh18
-rw-r--r--source/blender/blenkernel/intern/node_tree_multi_function.cc2
2 files changed, 17 insertions, 3 deletions
diff --git a/source/blender/blenkernel/BKE_node_tree_multi_function.hh b/source/blender/blenkernel/BKE_node_tree_multi_function.hh
index 34809a5f506..ed5b04692db 100644
--- a/source/blender/blenkernel/BKE_node_tree_multi_function.hh
+++ b/source/blender/blenkernel/BKE_node_tree_multi_function.hh
@@ -56,16 +56,30 @@ class MFNetworkTreeMap {
* Input sockets in a node tree can have multiple corresponding sockets in the generated
* MFNetwork. This is because nodes are allowed to expand into multiple multi-function nodes.
*/
+ const DerivedNodeTree &m_tree;
+ fn::MFNetwork &m_network;
Array<Vector<fn::MFSocket *, 1>> m_sockets_by_dsocket_id;
Array<fn::MFOutputSocket *> m_socket_by_group_input_id;
public:
- MFNetworkTreeMap(const DerivedNodeTree &tree)
- : m_sockets_by_dsocket_id(tree.sockets().size()),
+ MFNetworkTreeMap(const DerivedNodeTree &tree, fn::MFNetwork &network)
+ : m_tree(tree),
+ m_network(network),
+ m_sockets_by_dsocket_id(tree.sockets().size()),
m_socket_by_group_input_id(tree.group_inputs().size(), nullptr)
{
}
+ const DerivedNodeTree &tree() const
+ {
+ return m_tree;
+ }
+
+ const fn::MFNetwork &network() const
+ {
+ return m_network;
+ }
+
void add(const DSocket &dsocket, fn::MFSocket &socket)
{
BLI_assert(dsocket.is_input() == socket.is_input());
diff --git a/source/blender/blenkernel/intern/node_tree_multi_function.cc b/source/blender/blenkernel/intern/node_tree_multi_function.cc
index 7beff6b15c1..02437d98732 100644
--- a/source/blender/blenkernel/intern/node_tree_multi_function.cc
+++ b/source/blender/blenkernel/intern/node_tree_multi_function.cc
@@ -217,7 +217,7 @@ MFNetworkTreeMap insert_node_tree_into_mf_network(fn::MFNetwork &network,
const DerivedNodeTree &tree,
ResourceCollector &resources)
{
- MFNetworkTreeMap network_map{tree};
+ MFNetworkTreeMap network_map{tree, network};
CommonMFNetworkBuilderData common{resources, network, network_map, tree};