[Bf-blender-cvs] [4132dc24521] builtin-simulation-nodes: add new builtin socket types

Jacques Lucke noreply at git.blender.org
Mon Mar 2 13:06:03 CET 2020


Commit: 4132dc24521008581a9a096a0d3d5850ccfe0ff6
Author: Jacques Lucke
Date:   Mon Mar 2 12:34:38 2020 +0100
Branches: builtin-simulation-nodes
https://developer.blender.org/rB4132dc24521008581a9a096a0d3d5850ccfe0ff6

add new builtin socket types

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

M	source/blender/blenkernel/intern/node.c
M	source/blender/editors/space_node/drawnode.c
M	source/blender/makesdna/DNA_node_types.h
M	source/blender/makesrna/intern/rna_nodetree.c
M	source/blender/nodes/intern/node_socket.c
M	source/blender/nodes/simulation/nodes/node_sim_particle_simulation.cc

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

diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index e239a37b3b7..2ce0f5cb902 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -675,6 +675,14 @@ const char *nodeStaticSocketType(int type, int subtype)
       return "NodeSocketString";
     case SOCK_SHADER:
       return "NodeSocketShader";
+    case SOCK_EMITTERS:
+      return "NodeSocketEmitters";
+    case SOCK_EVENTS:
+      return "NodeSocketEvents";
+    case SOCK_FORCES:
+      return "NodeSocketForces";
+    case SOCK_CONTROL_FLOW:
+      return "NodeSocketControlFlow";
   }
   return NULL;
 }
@@ -736,6 +744,14 @@ const char *nodeStaticSocketInterfaceType(int type, int subtype)
       return "NodeSocketInterfaceString";
     case SOCK_SHADER:
       return "NodeSocketInterfaceShader";
+    case SOCK_EMITTERS:
+      return "NodeSocketInterfaceEmitters";
+    case SOCK_EVENTS:
+      return "NodeSocketInterfaceEvents";
+    case SOCK_FORCES:
+      return "NodeSocketInterfaceForces";
+    case SOCK_CONTROL_FLOW:
+      return "NodeSocketInterfaceControlFlow";
   }
   return NULL;
 }
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index 5f6a9260671..1109e02b66f 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -3269,6 +3269,10 @@ static const float std_node_socket_colors[][4] = {
     {0.0, 0.0, 0.0, 1.0},    /*__SOCK_MESH (deprecated) */
     {0.06, 0.52, 0.15, 1.0}, /* SOCK_INT */
     {0.39, 0.39, 0.39, 1.0}, /* SOCK_STRING */
+    {0.8, 0.8, 0.2, 1.0},    /* SOCK_EMITTERS */
+    {0.8, 0.2, 0.8, 1.0},    /* SOCK_EVENTS */
+    {0.2, 0.8, 0.8, 1.0},    /* SOCK_FORCES */
+    {0.3, 0.3, 0.3, 1.0},    /* SOCK_CONTROL_FLOW */
 };
 
 /* common color callbacks for standard types */
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index b6308111d68..82f9f1634b5 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -153,6 +153,10 @@ typedef enum eNodeSocketDatatype {
   __SOCK_MESH = 5, /* deprecated */
   SOCK_INT = 6,
   SOCK_STRING = 7,
+  SOCK_EMITTERS = 8,
+  SOCK_EVENTS = 9,
+  SOCK_FORCES = 10,
+  SOCK_CONTROL_FLOW = 11,
 } eNodeSocketDatatype;
 
 /* socket shape */
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 762e2e4928c..23d665ee5e1 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -81,6 +81,10 @@ static const EnumPropertyItem node_socket_type_items[] = {
     {SOCK_STRING, "STRING", 0, "String", ""},
     {SOCK_RGBA, "RGBA", 0, "RGBA", ""},
     {SOCK_SHADER, "SHADER", 0, "Shader", ""},
+    {SOCK_EMITTERS, "EMITTERS", 0, "Emitters", ""},
+    {SOCK_EVENTS, "EVENTS", 0, "Events", ""},
+    {SOCK_FORCES, "FORCES", 0, "Forces", ""},
+    {SOCK_CONTROL_FLOW, "CONTROL_FLOW", 0, "Control Flow", ""},
     {0, NULL, 0, NULL, NULL},
 };
 
@@ -8523,6 +8527,36 @@ static void rna_def_node_socket_shader(BlenderRNA *brna,
   RNA_def_struct_sdna(srna, "bNodeSocket");
 }
 
+static void rna_def_node_socket_effector(BlenderRNA *brna,
+                                         const char *identifier,
+                                         const char *interface_idname)
+{
+  StructRNA *srna;
+
+  srna = RNA_def_struct(brna, identifier, "NodeSocketStandard");
+  RNA_def_struct_ui_text(srna, "", "");
+  RNA_def_struct_sdna(srna, "bNodeSocket");
+
+  srna = RNA_def_struct(brna, interface_idname, "NodeSocketInterfaceStandard");
+  RNA_def_struct_ui_text(srna, "", "");
+  RNA_def_struct_sdna(srna, "bNodeSocket");
+}
+
+static void rna_def_node_socket_control_flow(BlenderRNA *brna,
+                                             const char *identifier,
+                                             const char *interface_idname)
+{
+  StructRNA *srna;
+
+  srna = RNA_def_struct(brna, identifier, "NodeSocketStandard");
+  RNA_def_struct_ui_text(srna, "", "");
+  RNA_def_struct_sdna(srna, "bNodeSocket");
+
+  srna = RNA_def_struct(brna, interface_idname, "NodeSocketInterfaceStandard");
+  RNA_def_struct_ui_text(srna, "", "");
+  RNA_def_struct_sdna(srna, "bNodeSocket");
+}
+
 static void rna_def_node_socket_virtual(BlenderRNA *brna, const char *identifier)
 {
   StructRNA *srna;
@@ -8665,6 +8699,13 @@ static void rna_def_node_socket_standard_types(BlenderRNA *brna)
 
   rna_def_node_socket_shader(brna, "NodeSocketShader", "NodeSocketInterfaceShader");
 
+  rna_def_node_socket_effector(brna, "NodeSocketEmitters", "NodeSocketInterfaceEmitters");
+  rna_def_node_socket_effector(brna, "NodeSocketEvents", "NodeSocketInterfaceEvents");
+  rna_def_node_socket_effector(brna, "NodeSocketForces", "NodeSocketInterfaceForces");
+
+  rna_def_node_socket_control_flow(
+      brna, "NodeSocketControlFlow", "NodeSocketInterfaceControlFlow");
+
   rna_def_node_socket_virtual(brna, "NodeSocketVirtual");
 }
 
diff --git a/source/blender/nodes/intern/node_socket.c b/source/blender/nodes/intern/node_socket.c
index 740e45bc5e1..6c3e4d1c0f8 100644
--- a/source/blender/nodes/intern/node_socket.c
+++ b/source/blender/nodes/intern/node_socket.c
@@ -492,5 +492,11 @@ void register_standard_node_socket_types(void)
 
   nodeRegisterSocketType(make_standard_socket_type(SOCK_SHADER, PROP_NONE));
 
+  nodeRegisterSocketType(make_standard_socket_type(SOCK_EMITTERS, PROP_NONE));
+  nodeRegisterSocketType(make_standard_socket_type(SOCK_EVENTS, PROP_NONE));
+  nodeRegisterSocketType(make_standard_socket_type(SOCK_FORCES, PROP_NONE));
+
+  nodeRegisterSocketType(make_standard_socket_type(SOCK_CONTROL_FLOW, PROP_NONE));
+
   nodeRegisterSocketType(make_socket_type_virtual());
 }
diff --git a/source/blender/nodes/simulation/nodes/node_sim_particle_simulation.cc b/source/blender/nodes/simulation/nodes/node_sim_particle_simulation.cc
index d147b2fb30c..6f08ac059bd 100644
--- a/source/blender/nodes/simulation/nodes/node_sim_particle_simulation.cc
+++ b/source/blender/nodes/simulation/nodes/node_sim_particle_simulation.cc
@@ -3,7 +3,10 @@
 #include "node_sim_util.h"
 
 static bNodeSocketTemplate sim_node_particle_simulation_in[] = {
-    {SOCK_FLOAT, 1, N_("Test"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 100.0f},
+    {SOCK_EMITTERS, 1, N_("Emitters"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
+    {SOCK_EVENTS, 1, N_("Events"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
+    {SOCK_FORCES, 1, N_("Forces"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
+    {SOCK_CONTROL_FLOW, 1, N_("Control Flow"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
     {-1, 0, ""},
 };



More information about the Bf-blender-cvs mailing list