From 60133ff98d8602f0a4a2199c76fdbd42820d1233 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Fri, 10 Jul 2020 14:20:39 +0200 Subject: Functions: store derived node tree and network in map for future access --- .../blender/blenkernel/BKE_node_tree_multi_function.hh | 18 ++++++++++++++++-- .../blenkernel/intern/node_tree_multi_function.cc | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'source/blender') 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> m_sockets_by_dsocket_id; Array 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}; -- cgit v1.2.3