[Bf-blender-cvs] [7db1888bf24] functions: move node tree lookup utilities to BKE

Jacques Lucke noreply at git.blender.org
Tue Jul 2 16:11:49 CEST 2019


Commit: 7db1888bf24711fa790c50d01eb1d68241f9cc73
Author: Jacques Lucke
Date:   Tue Jul 2 14:15:20 2019 +0200
Branches: functions
https://developer.blender.org/rB7db1888bf24711fa790c50d01eb1d68241f9cc73

move node tree lookup utilities to BKE

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

M	source/blender/blenkernel/BKE_node.h
A	source/blender/blenkernel/BKE_node_tree.hpp
M	source/blender/blenkernel/CMakeLists.txt
R080	source/blender/functions/frontends/data_flow_nodes/btree_lookup.cpp	source/blender/blenkernel/intern/node_tree.cpp
M	source/blender/functions/CMakeLists.txt
D	source/blender/functions/frontends/data_flow_nodes/btree_lookup.hpp
M	source/blender/functions/frontends/data_flow_nodes/builder.cpp
M	source/blender/functions/frontends/data_flow_nodes/builder.hpp
M	source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
M	source/blender/functions/frontends/data_flow_nodes/inserters.hpp
D	source/blender/functions/frontends/data_flow_nodes/util_wrappers.hpp

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

diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index 8a107aac538..bfee743035a 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -24,6 +24,10 @@
  * \ingroup bke
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #include "BLI_compiler_compat.h"
 #include "BLI_ghash.h"
 
@@ -1274,4 +1278,8 @@ void BKE_nodetree_shading_params_eval(struct Depsgraph *depsgraph,
 extern struct bNodeType NodeTypeUndefined;
 extern struct bNodeSocketType NodeSocketTypeUndefined;
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BKE_NODE_H__ */
diff --git a/source/blender/blenkernel/BKE_node_tree.hpp b/source/blender/blenkernel/BKE_node_tree.hpp
new file mode 100644
index 00000000000..2542b70e25b
--- /dev/null
+++ b/source/blender/blenkernel/BKE_node_tree.hpp
@@ -0,0 +1,45 @@
+#pragma once
+
+#include "DNA_node_types.h"
+
+#include "BLI_array_ref.hpp"
+#include "BLI_small_map.hpp"
+#include "BLI_small_vector.hpp"
+#include "BLI_listbase_wrapper.hpp"
+
+namespace BKE {
+
+using BLI::ArrayRef;
+using BLI::ListBaseWrapper;
+using BLI::SmallMap;
+using BLI::SmallVector;
+
+using bNodeList = ListBaseWrapper<struct bNode, true>;
+using bLinkList = ListBaseWrapper<struct bNodeLink, true>;
+using bSocketList = ListBaseWrapper<struct bNodeSocket, true>;
+
+class BNodeTreeLookup {
+ public:
+  BNodeTreeLookup(bNodeTree *btree);
+
+  struct DataLink {
+    bNodeSocket *from;
+    bNodeSocket *to;
+    bNodeLink *source_link;
+  };
+
+  const ArrayRef<DataLink> data_links()
+  {
+    return m_data_links;
+  }
+
+ private:
+  bool is_reroute(bNode *bnode);
+  bNodeSocket *try_find_data_origin(bNodeSocket *bsocket);
+
+  SmallMap<bNodeSocket *, bNode *> m_node_by_socket;
+  SmallMap<bNodeSocket *, bNodeSocket *> m_direct_origin;
+  SmallVector<DataLink> m_data_links;
+};
+
+}  // namespace BKE
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 7323457a6aa..34d95ca99bf 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -161,6 +161,7 @@ set(SRC
   intern/multires_subdiv.c
   intern/nla.c
   intern/node.c
+  intern/node_tree.cpp
   intern/object.c
   intern/object_deform.c
   intern/object_dupli.c
@@ -307,6 +308,7 @@ set(SRC
   BKE_multires.h
   BKE_nla.h
   BKE_node.h
+  BKE_node_tree.hpp
   BKE_object.h
   BKE_object_deform.h
   BKE_object_facemap.h
diff --git a/source/blender/functions/frontends/data_flow_nodes/btree_lookup.cpp b/source/blender/blenkernel/intern/node_tree.cpp
similarity index 80%
rename from source/blender/functions/frontends/data_flow_nodes/btree_lookup.cpp
rename to source/blender/blenkernel/intern/node_tree.cpp
index 341bca96a07..8eb7dbe8681 100644
--- a/source/blender/functions/frontends/data_flow_nodes/btree_lookup.cpp
+++ b/source/blender/blenkernel/intern/node_tree.cpp
@@ -1,11 +1,8 @@
-#include "btree_lookup.hpp"
+#include "BKE_node_tree.hpp"
 
-#include "DNA_node_types.h"
+namespace BKE {
 
-namespace FN {
-namespace DataFlowNodes {
-
-BTreeLookup::BTreeLookup(bNodeTree *btree)
+BNodeTreeLookup::BNodeTreeLookup(bNodeTree *btree)
 {
   for (bNode *bnode : bNodeList(&btree->nodes)) {
     for (bNodeSocket *bsocket : bSocketList(&bnode->inputs)) {
@@ -34,7 +31,7 @@ BTreeLookup::BTreeLookup(bNodeTree *btree)
   }
 }
 
-bNodeSocket *BTreeLookup::try_find_data_origin(bNodeSocket *bsocket)
+bNodeSocket *BNodeTreeLookup::try_find_data_origin(bNodeSocket *bsocket)
 {
   BLI_assert(bsocket->in_out == SOCK_IN);
   if (m_direct_origin.contains(bsocket)) {
@@ -52,10 +49,9 @@ bNodeSocket *BTreeLookup::try_find_data_origin(bNodeSocket *bsocket)
   }
 }
 
-bool BTreeLookup::is_reroute(bNode *bnode)
+bool BNodeTreeLookup::is_reroute(bNode *bnode)
 {
   return STREQ(bnode->idname, "NodeReroute");
 }
 
-}  // namespace DataFlowNodes
-}  // namespace FN
+}  // namespace BKE
diff --git a/source/blender/functions/CMakeLists.txt b/source/blender/functions/CMakeLists.txt
index eb10cab30c0..0d62e6ffbe4 100644
--- a/source/blender/functions/CMakeLists.txt
+++ b/source/blender/functions/CMakeLists.txt
@@ -132,15 +132,12 @@ set(SRC
   frontends/data_flow_nodes/function_generation.cpp
   frontends/data_flow_nodes/graph_generation.hpp
   frontends/data_flow_nodes/graph_generation.cpp
-  frontends/data_flow_nodes/btree_lookup.hpp
-  frontends/data_flow_nodes/btree_lookup.cpp
   frontends/data_flow_nodes/inserters.hpp
   frontends/data_flow_nodes/inserters.cpp
   frontends/data_flow_nodes/registry.hpp
   frontends/data_flow_nodes/inserters/nodes.cpp
   frontends/data_flow_nodes/inserters/sockets.cpp
   frontends/data_flow_nodes/inserters/conversions.cpp
-  frontends/data_flow_nodes/util_wrappers.hpp
   frontends/data_flow_nodes/data_flow_nodes-c.h
   frontends/data_flow_nodes/data_flow_nodes-c.cpp
 )
diff --git a/source/blender/functions/frontends/data_flow_nodes/btree_lookup.hpp b/source/blender/functions/frontends/data_flow_nodes/btree_lookup.hpp
deleted file mode 100644
index b28ed75b3f3..00000000000
--- a/source/blender/functions/frontends/data_flow_nodes/btree_lookup.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#pragma once
-
-#include "FN_core.hpp"
-#include "util_wrappers.hpp"
-
-namespace FN {
-namespace DataFlowNodes {
-
-class BTreeLookup {
- public:
-  BTreeLookup(bNodeTree *btree);
-
-  struct DataLink {
-    bNodeSocket *from;
-    bNodeSocket *to;
-    bNodeLink *source_link;
-  };
-
-  const ArrayRef<DataLink> data_links()
-  {
-    return m_data_links;
-  }
-
- private:
-  bool is_reroute(bNode *bnode);
-  bNodeSocket *try_find_data_origin(bNodeSocket *bsocket);
-
-  SmallMap<bNodeSocket *, bNode *> m_node_by_socket;
-  SmallMap<bNodeSocket *, bNodeSocket *> m_direct_origin;
-  SmallVector<DataLink> m_data_links;
-};
-
-}  // namespace DataFlowNodes
-}  // namespace FN
diff --git a/source/blender/functions/frontends/data_flow_nodes/builder.cpp b/source/blender/functions/frontends/data_flow_nodes/builder.cpp
index fe99896f777..9de517ae151 100644
--- a/source/blender/functions/frontends/data_flow_nodes/builder.cpp
+++ b/source/blender/functions/frontends/data_flow_nodes/builder.cpp
@@ -2,7 +2,6 @@
 
 #include "DNA_node_types.h"
 #include "FN_types.hpp"
-#include "util_wrappers.hpp"
 
 #include "RNA_access.h"
 
diff --git a/source/blender/functions/frontends/data_flow_nodes/builder.hpp b/source/blender/functions/frontends/data_flow_nodes/builder.hpp
index 2d04f8ea1a7..561d0c379b9 100644
--- a/source/blender/functions/frontends/data_flow_nodes/builder.hpp
+++ b/source/blender/functions/frontends/data_flow_nodes/builder.hpp
@@ -1,18 +1,18 @@
 #pragma once
 
 #include "FN_core.hpp"
-#include "./util_wrappers.hpp"
+#include "BKE_node_tree.hpp"
 
-struct bNode;
-struct bNodeLink;
-struct bNodeTree;
-struct bNodeSocket;
 struct ID;
 struct PointerRNA;
 
 namespace FN {
 namespace DataFlowNodes {
 
+using BKE::bLinkList;
+using BKE::bNodeList;
+using BKE::bSocketList;
+
 class BTreeGraphBuilder {
  private:
   DataFlowGraphBuilder &m_graph;
diff --git a/source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp b/source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
index 5f631d4c3ad..794e2a9e4f6 100644
--- a/source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
+++ b/source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
@@ -1,8 +1,6 @@
 #include "graph_generation.hpp"
 
 #include "inserters.hpp"
-#include "util_wrappers.hpp"
-#include "btree_lookup.hpp"
 
 #include "DNA_node_types.h"
 #include "FN_types.hpp"
@@ -10,6 +8,8 @@
 namespace FN {
 namespace DataFlowNodes {
 
+using BKE::BNodeTreeLookup;
+
 static bool is_input_node(const bNode *bnode)
 {
   return STREQ(bnode->idname, "fn_FunctionInputNode");
@@ -139,7 +139,7 @@ static DFGB_SocketVector insert_function_output(BTreeGraphBuilder &builder)
 
 static bool insert_links(BTreeGraphBuilder &builder, GraphInserters &inserters)
 {
-  BTreeLookup btree_lookup(builder.btree());
+  BNodeTreeLookup btree_lookup(builder.btree());
   for (auto &link : btree_lookup.data_links()) {
     if (!inserters.insert_link(builder, link.from, link.to, link.source_link)) {
       return false;
diff --git a/source/blender/functions/frontends/data_flow_nodes/inserters.hpp b/source/blender/functions/frontends/data_flow_nodes/inserters.hpp
index c4e1092de43..265ad436d21 100644
--- a/source/blender/functions/frontends/data_flow_nodes/inserters.hpp
+++ b/source/blender/functions/frontends/data_flow_nodes/inserters.hpp
@@ -4,7 +4,6 @@
 #include <functional>
 #include "BLI_optional.hpp"
 #include "FN_tuple_call.hpp"
-#include "util_wrappers.hpp"
 
 struct PointerRNA;
 
diff --git a/source/blender/functions/frontends/data_flow_nodes/util_wrappers.hpp b/source/blender/functions/frontends/data_flow_nodes/util_wrappers.hpp
deleted file mode 100644
index a0e8fd5c643..00000000000
--- a/source/blender/functions/frontends/data_flow_nodes/util_wrappers.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#include "BLI_listbase_wrapper.hpp"
-#include "BLI_small_vector.hpp"
-
-struct bNode;
-struct bNodeLink;
-struct bNodeSocket;
-struct bNodeTree;
-
-namespace FN {
-namespace DataFlowNodes {
-
-using bNodeList = ListBaseWrapper<struct bNode, true>;
-using bLinkList = ListBaseWrapper<struct bNodeLink, true>;
-using bSocketList = ListBaseWrapper<struct bNodeSocket, true>;
-
-}  // namespace DataFlowNodes
-}  // namespace FN



More information about the Bf-blender-cvs mailing list