[Bf-blender-cvs] [60133ff98d8] master: Functions: store derived node tree and network in map for future access

Jacques Lucke noreply at git.blender.org
Fri Jul 10 14:23:50 CEST 2020


Commit: 60133ff98d8602f0a4a2199c76fdbd42820d1233
Author: Jacques Lucke
Date:   Fri Jul 10 14:20:39 2020 +0200
Branches: master
https://developer.blender.org/rB60133ff98d8602f0a4a2199c76fdbd42820d1233

Functions: store derived node tree and network in map for future access

===================================================================

M	source/blender/blenkernel/BKE_node_tree_multi_function.hh
M	source/blender/blenkernel/intern/node_tree_multi_function.cc

===================================================================

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};



More information about the Bf-blender-cvs mailing list