[Bf-blender-cvs] [5910dbdbf7d] master: Nodes: move some code from blenkernel directory to nodes

Jacques Lucke noreply at git.blender.org
Fri Jul 17 11:40:25 CEST 2020


Commit: 5910dbdbf7dc7999597a680f81c261fa7bbcf011
Author: Jacques Lucke
Date:   Fri Jul 17 11:36:59 2020 +0200
Branches: master
https://developer.blender.org/rB5910dbdbf7dc7999597a680f81c261fa7bbcf011

Nodes: move some code from blenkernel directory to nodes

This also introduces the `blender::nodes` namespace. Eventually,
we want to move most/all of the node implementation files into
this namespace.

The reason for this file-move is that the code fits much better
into the `nodes` directory than in the `blenkernel` directory.

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

M	source/blender/blenkernel/BKE_node.h
M	source/blender/blenkernel/CMakeLists.txt
M	source/blender/blenkernel/intern/simulation.cc
M	source/blender/nodes/CMakeLists.txt
R098	source/blender/blenkernel/BKE_derived_node_tree.hh	source/blender/nodes/NOD_derived_node_tree.hh
R096	source/blender/blenkernel/BKE_node_tree_multi_function.hh	source/blender/nodes/NOD_node_tree_multi_function.hh
R098	source/blender/blenkernel/BKE_node_tree_ref.hh	source/blender/nodes/NOD_node_tree_ref.hh
M	source/blender/nodes/function/node_function_util.hh
M	source/blender/nodes/function/nodes/node_fn_boolean_math.cc
M	source/blender/nodes/function/nodes/node_fn_combine_strings.cc
M	source/blender/nodes/function/nodes/node_fn_float_compare.cc
M	source/blender/nodes/function/nodes/node_fn_group_instance_id.cc
R099	source/blender/blenkernel/intern/derived_node_tree.cc	source/blender/nodes/intern/derived_node_tree.cc
M	source/blender/nodes/intern/node_socket.cc
R098	source/blender/blenkernel/intern/node_tree_multi_function.cc	source/blender/nodes/intern/node_tree_multi_function.cc
R098	source/blender/blenkernel/intern/node_tree_ref.cc	source/blender/nodes/intern/node_tree_ref.cc
M	source/blender/nodes/shader/node_shader_util.h
M	source/blender/nodes/shader/nodes/node_shader_map_range.cc
M	source/blender/nodes/shader/nodes/node_shader_math.cc
M	source/blender/nodes/shader/nodes/node_shader_sepcombRGB.cc
M	source/blender/nodes/shader/nodes/node_shader_sepcombXYZ.cc
M	source/blender/nodes/shader/nodes/node_shader_valToRgb.cc
M	source/blender/nodes/shader/nodes/node_shader_value.cc
M	source/blender/nodes/shader/nodes/node_shader_vector_math.cc

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

diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index acd4c75befd..1d01436c7e4 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -106,18 +106,18 @@ typedef struct bNodeSocketTemplate {
  * However, achieving this requires quite a few changes currently. */
 #ifdef __cplusplus
 namespace blender {
-namespace bke {
+namespace nodes {
 class SocketMFNetworkBuilder;
 class NodeMFNetworkBuilder;
-}  // namespace bke
+}  // namespace nodes
 namespace fn {
 class MFDataType;
 }
 }  // namespace blender
 
-using NodeExpandInMFNetworkFunction = void (*)(blender::bke::NodeMFNetworkBuilder &builder);
+using NodeExpandInMFNetworkFunction = void (*)(blender::nodes::NodeMFNetworkBuilder &builder);
 using SocketGetMFDataTypeFunction = blender::fn::MFDataType (*)();
-using SocketExpandInMFNetworkFunction = void (*)(blender::bke::SocketMFNetworkBuilder &builder);
+using SocketExpandInMFNetworkFunction = void (*)(blender::nodes::SocketMFNetworkBuilder &builder);
 
 #else
 typedef void *NodeExpandInMFNetworkFunction;
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 46cf8e5b9b3..800fa7d18ee 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -107,7 +107,6 @@ set(SRC
   intern/customdata_file.c
   intern/data_transfer.c
   intern/deform.c
-  intern/derived_node_tree.cc
   intern/displist.c
   intern/displist_tangent.c
   intern/dynamicpaint.c
@@ -188,8 +187,6 @@ set(SRC
   intern/multires_unsubdivide.c
   intern/nla.c
   intern/node.c
-  intern/node_tree_multi_function.cc
-  intern/node_tree_ref.cc
   intern/object.c
   intern/object_deform.c
   intern/object_dupli.c
@@ -298,7 +295,6 @@ set(SRC
   BKE_customdata_file.h
   BKE_data_transfer.h
   BKE_deform.h
-  BKE_derived_node_tree.hh
   BKE_displist.h
   BKE_displist_tangent.h
   BKE_duplilist.h
@@ -359,8 +355,6 @@ set(SRC
   BKE_multires.h
   BKE_nla.h
   BKE_node.h
-  BKE_node_tree_multi_function.hh
-  BKE_node_tree_ref.hh
   BKE_object.h
   BKE_object_deform.h
   BKE_object_facemap.h
diff --git a/source/blender/blenkernel/intern/simulation.cc b/source/blender/blenkernel/intern/simulation.cc
index 831de084500..f38001bf69f 100644
--- a/source/blender/blenkernel/intern/simulation.cc
+++ b/source/blender/blenkernel/intern/simulation.cc
@@ -45,10 +45,10 @@
 #include "BKE_lib_remap.h"
 #include "BKE_main.h"
 #include "BKE_node.h"
-#include "BKE_node_tree_multi_function.hh"
 #include "BKE_pointcache.h"
 #include "BKE_simulation.h"
 
+#include "NOD_node_tree_multi_function.hh"
 #include "NOD_simulation.h"
 
 #include "BLT_translation.h"
@@ -216,16 +216,19 @@ static void copy_states_to_cow(Simulation *simulation_orig, Simulation *simulati
 }
 
 static Map<const fn::MFOutputSocket *, std::string> deduplicate_attribute_nodes(
-    fn::MFNetwork &network, MFNetworkTreeMap &network_map, const DerivedNodeTree &tree)
+    fn::MFNetwork &network,
+    nodes::MFNetworkTreeMap &network_map,
+    const nodes::DerivedNodeTree &tree)
 {
-  Span<const DNode *> attribute_dnodes = tree.nodes_by_type("SimulationNodeParticleAttribute");
+  Span<const nodes::DNode *> attribute_dnodes = tree.nodes_by_type(
+      "SimulationNodeParticleAttribute");
   uint amount = attribute_dnodes.size();
   if (amount == 0) {
     return {};
   }
 
   Vector<fn::MFInputSocket *> name_sockets;
-  for (const DNode *dnode : attribute_dnodes) {
+  for (const nodes::DNode *dnode : attribute_dnodes) {
     fn::MFInputSocket &name_socket = network_map.lookup_dummy(dnode->input(0));
     name_sockets.append(&name_socket);
   }
@@ -309,10 +312,10 @@ class CustomDataAttributesRef {
   }
 };
 
-static std::string dnode_to_path(const DNode &dnode)
+static std::string dnode_to_path(const nodes::DNode &dnode)
 {
   std::string path;
-  for (const DParentNode *parent = dnode.parent(); parent; parent = parent->parent()) {
+  for (const nodes::DParentNode *parent = dnode.parent(); parent; parent = parent->parent()) {
     path = parent->node_ref().name() + "/" + path;
   }
   path = path + dnode.name();
@@ -373,10 +376,10 @@ static void add_missing_particle_states(Simulation *simulation, Span<std::string
 }
 
 static void reinitialize_empty_simulation_states(Simulation *simulation,
-                                                 const DerivedNodeTree &tree)
+                                                 const nodes::DerivedNodeTree &tree)
 {
   VectorSet<std::string> state_names;
-  for (const DNode *dnode : tree.nodes_by_type("SimulationNodeParticleSimulation")) {
+  for (const nodes::DNode *dnode : tree.nodes_by_type("SimulationNodeParticleSimulation")) {
     state_names.add(dnode_to_path(*dnode));
   }
 
@@ -385,10 +388,11 @@ static void reinitialize_empty_simulation_states(Simulation *simulation,
   add_missing_particle_states(simulation, state_names);
 }
 
-static void update_simulation_state_list(Simulation *simulation, const DerivedNodeTree &tree)
+static void update_simulation_state_list(Simulation *simulation,
+                                         const nodes::DerivedNodeTree &tree)
 {
   VectorSet<std::string> state_names;
-  for (const DNode *dnode : tree.nodes_by_type("SimulationNodeParticleSimulation")) {
+  for (const nodes::DNode *dnode : tree.nodes_by_type("SimulationNodeParticleSimulation")) {
     state_names.add(dnode_to_path(*dnode));
   }
 
@@ -672,14 +676,15 @@ class ParticleFunctionForce : public ParticleForce {
 };
 
 static Vector<const ParticleForce *> create_forces_for_particle_simulation(
-    const DNode &simulation_node,
-    MFNetworkTreeMap &network_map,
+    const nodes::DNode &simulation_node,
+    nodes::MFNetworkTreeMap &network_map,
     ResourceCollector &resources,
     const Map<const fn::MFOutputSocket *, std::string> &attribute_inputs)
 {
   Vector<const ParticleForce *> forces;
-  for (const DOutputSocket *origin_socket : simulation_node.input(2, "Forces").linked_sockets()) {
-    const DNode &origin_node = origin_socket->node();
+  for (const nodes::DOutputSocket *origin_socket :
+       simulation_node.input(2, "Forces").linked_sockets()) {
+    const nodes::DNode &origin_node = origin_socket->node();
     if (origin_node.idname() != "SimulationNodeForce") {
       continue;
     }
@@ -701,12 +706,13 @@ static Vector<const ParticleForce *> create_forces_for_particle_simulation(
 }
 
 static Map<std::string, Vector<const ParticleForce *>> collect_forces(
-    MFNetworkTreeMap &network_map,
+    nodes::MFNetworkTreeMap &network_map,
     ResourceCollector &resources,
     const Map<const fn::MFOutputSocket *, std::string> &attribute_inputs)
 {
   Map<std::string, Vector<const ParticleForce *>> forces_by_simulation;
-  for (const DNode *dnode : network_map.tree().nodes_by_type("SimulationNodeParticleSimulation")) {
+  for (const nodes::DNode *dnode :
+       network_map.tree().nodes_by_type("SimulationNodeParticleSimulation")) {
     std::string name = dnode_to_path(*dnode);
     Vector<const ParticleForce *> forces = create_forces_for_particle_simulation(
         *dnode, network_map, resources, attribute_inputs);
@@ -729,12 +735,12 @@ static void simulation_data_update(Depsgraph *depsgraph, Scene *scene, Simulatio
 
   Simulation *simulation_orig = (Simulation *)DEG_get_original_id(&simulation_cow->id);
 
-  NodeTreeRefMap tree_refs;
+  nodes::NodeTreeRefMap tree_refs;
   /* TODO: Use simulation_cow, but need to add depsgraph relations before that. */
-  const DerivedNodeTree tree{simulation_orig->nodetree, tree_refs};
+  const nodes::DerivedNodeTree tree{simulation_orig->nodetree, tree_refs};
   fn::MFNetwork network;
   ResourceCollector resources;
-  MFNetworkTreeMap network_map = insert_node_tree_into_mf_network(network, tree, resources);
+  nodes::MFNetworkTreeMap network_map = insert_node_tree_into_mf_network(network, tree, resources);
   Map<const fn::MFOutputSocket *, std::string> attribute_inputs = deduplicate_attribute_nodes(
       network, network_map, tree);
   fn::mf_network_optimization::constant_folding(network, resources);
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index f644cdc134a..bb2541fd7a6 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -273,9 +273,12 @@ set(SRC
   texture/node_texture_tree.c
   texture/node_texture_util.c
 
+  intern/derived_node_tree.cc
   intern/node_common.c
   intern/node_exec.c
   intern/node_socket.cc
+  intern/node_tree_multi_function.cc
+  intern/node_tree_ref.cc
   intern/node_util.c
 
   composite/node_composite_util.h
@@ -286,7 +289,10 @@ set(SRC
 
   NOD_common.h
   NOD_composite.h
+  NOD_derived_node_tree.hh
   NOD_function.h
+  NOD_node_tree_multi_function.hh
+  NOD_node_tree_ref.hh
   NOD_shader.h
   NOD_simulation.h
   NOD_socket.h
diff --git a/source/blender/blenkernel/BKE_derived_node_tree.hh b/source/blender/nodes/NOD_derived_node_tree.hh
similarity index 98%
rename from source/blender/blenkernel/BKE_derived_node_tree.hh
rename to source/blender/nodes/NOD_derived_node_tree.hh
index 083057835a5..24144496c92 100644
--- a/source/blender/blenkernel/BKE_derived_node_tree.hh
+++ b/source/blender/nodes/NOD_derived_node_tree.hh
@@ -14,11 +14,11 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
-#ifndef __BKE_DERIVED_NODE_TREE_HH__
-#define __BKE_DERIVED_NODE_TREE_HH__
+#ifndef __NOD_DERIVED_NODE_TREE_HH__
+#define __NOD_DERIVED_NODE_TREE_HH__
 
 /** \file
- * \ingroup bke
+ * \ingroup nodes
  *
  * DerivedNodeTree provides a flattened view on a bNodeTree, i.e. node groups are inlined. It
  * builds on top of NodeTreeRef and supports similar queries efficiently.
@@ -30,9 +30,9 @@
  * There is a dot graph exporter for debugging purposes.
  */
 
-#include "BKE_node_tree_ref.hh"
+#include "NOD_node_tree_ref.hh"
 
-namespace blender::bke {
+namespace blender::nodes {
 
 class DSocket;
 class DInputSocket;
@@ -512,6 +512,6 @@ inline Span<const DGroupInput *> DerivedNodeTree::group_inputs() const
   return group_inputs_;
 }
 
-}  // namespace blender::bke
+}  // namespace blender::nodes
 
-#endif /* __BKE_DERIVED_NODE_TREE_HH__ */
+#endif /* __NOD_DERIVED_NODE_TREE_

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list