[Bf-blender-cvs] [47112042e0c] builtin-simulation-nodes: add Object, Image and Surface Hook socket types

Jacques Lucke noreply at git.blender.org
Thu Mar 5 16:16:10 CET 2020


Commit: 47112042e0c99e7f12e6afca26e44dc96ce92a4f
Author: Jacques Lucke
Date:   Thu Mar 5 14:38:51 2020 +0100
Branches: builtin-simulation-nodes
https://developer.blender.org/rB47112042e0c99e7f12e6afca26e44dc96ce92a4f

add Object, Image and Surface Hook 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

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

diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index 0b7c5f5bf41..7c06ade3220 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -686,6 +686,12 @@ const char *nodeStaticSocketType(int type, int subtype)
       return "NodeSocketForces";
     case SOCK_CONTROL_FLOW:
       return "NodeSocketControlFlow";
+    case SOCK_OBJECT:
+      return "NodeSocketObject";
+    case SOCK_IMAGE:
+      return "NodeSocketImage";
+    case SOCK_SURFACE_HOOK:
+      return "NodeSocketSurfaceHook";
   }
   return NULL;
 }
@@ -755,6 +761,12 @@ const char *nodeStaticSocketInterfaceType(int type, int subtype)
       return "NodeSocketInterfaceForces";
     case SOCK_CONTROL_FLOW:
       return "NodeSocketInterfaceControlFlow";
+    case SOCK_OBJECT:
+      return "NodeSocketInterfaceObject";
+    case SOCK_IMAGE:
+      return "NodeSocketInterfaceImage";
+    case SOCK_SURFACE_HOOK:
+      return "NodeSocketInterfaceSurfaceHook";
   }
   return NULL;
 }
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index e1a91d74386..5fc4f048508 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -3293,6 +3293,9 @@ static const float std_node_socket_colors[][4] = {
     {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 */
+    {0.4, 0.1, 0.1, 1.0},    /* SOCK_OBJECT */
+    {0.1, 0.4, 0.1, 1.0},    /* SOCK_IMAGE */
+    {0.1, 0.1, 0.4, 1.0},    /* SOCK_SURFACE_HOOK */
 };
 
 /* 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 cd858a2594e..d6f9308f14b 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -157,6 +157,9 @@ typedef enum eNodeSocketDatatype {
   SOCK_EVENTS = 9,
   SOCK_FORCES = 10,
   SOCK_CONTROL_FLOW = 11,
+  SOCK_OBJECT = 12,
+  SOCK_IMAGE = 13,
+  SOCK_SURFACE_HOOK = 14,
 } eNodeSocketDatatype;
 
 /* socket shape */
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index ba962005278..dddd90aa429 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -85,6 +85,9 @@ static const EnumPropertyItem node_socket_type_items[] = {
     {SOCK_EVENTS, "EVENTS", 0, "Events", ""},
     {SOCK_FORCES, "FORCES", 0, "Forces", ""},
     {SOCK_CONTROL_FLOW, "CONTROL_FLOW", 0, "Control Flow", ""},
+    {SOCK_OBJECT, "OBJECT", 0, "Object", ""},
+    {SOCK_IMAGE, "IMAGE", 0, "Image", ""},
+    {SOCK_SURFACE_HOOK, "SURFACE_HOOK", 0, "Surface Hook", ""},
     {0, NULL, 0, NULL, NULL},
 };
 
@@ -8563,6 +8566,55 @@ static void rna_def_node_socket_shader(BlenderRNA *brna,
   RNA_def_struct_sdna(srna, "bNodeSocket");
 }
 
+static void rna_def_node_socket_object(BlenderRNA *brna,
+                                       const char *identifier,
+                                       const char *interface_idname)
+{
+  StructRNA *srna;
+
+  srna = RNA_def_struct(brna, identifier, "NodeSocketStandard");
+  RNA_def_struct_ui_text(srna, "Object Node Socket", "Object socket of a node");
+  RNA_def_struct_sdna(srna, "bNodeSocket");
+
+  /* socket interface */
+  srna = RNA_def_struct(brna, interface_idname, "NodeSocketInterfaceStandard");
+  RNA_def_struct_ui_text(srna, "Object Node Socket Interface", "Object socket of a node");
+  RNA_def_struct_sdna(srna, "bNodeSocket");
+}
+
+static void rna_def_node_socket_image(BlenderRNA *brna,
+                                      const char *identifier,
+                                      const char *interface_idname)
+{
+  StructRNA *srna;
+
+  srna = RNA_def_struct(brna, identifier, "NodeSocketStandard");
+  RNA_def_struct_ui_text(srna, "Image Node Socket", "Image socket of a node");
+  RNA_def_struct_sdna(srna, "bNodeSocket");
+
+  /* socket interface */
+  srna = RNA_def_struct(brna, interface_idname, "NodeSocketInterfaceStandard");
+  RNA_def_struct_ui_text(srna, "Image Node Socket Interface", "Image socket of a node");
+  RNA_def_struct_sdna(srna, "bNodeSocket");
+}
+
+static void rna_def_node_socket_surface_hook(BlenderRNA *brna,
+                                             const char *identifier,
+                                             const char *interface_idname)
+{
+  StructRNA *srna;
+
+  srna = RNA_def_struct(brna, identifier, "NodeSocketStandard");
+  RNA_def_struct_ui_text(srna, "Surface Hook Node Socket", "Surface Hook socket of a node");
+  RNA_def_struct_sdna(srna, "bNodeSocket");
+
+  /* socket interface */
+  srna = RNA_def_struct(brna, interface_idname, "NodeSocketInterfaceStandard");
+  RNA_def_struct_ui_text(
+      srna, "Surface Hook Node Socket Interface", "Surface Hook socket of a node");
+  RNA_def_struct_sdna(srna, "bNodeSocket");
+}
+
 static void rna_def_node_socket_effector(BlenderRNA *brna,
                                          const char *identifier,
                                          const char *interface_idname)
@@ -8730,10 +8782,12 @@ static void rna_def_node_socket_standard_types(BlenderRNA *brna)
       brna, "NodeSocketVectorXYZ", "NodeSocketInterfaceVectorXYZ", PROP_XYZ);
 
   rna_def_node_socket_color(brna, "NodeSocketColor", "NodeSocketInterfaceColor");
-
   rna_def_node_socket_string(brna, "NodeSocketString", "NodeSocketInterfaceString");
-
   rna_def_node_socket_shader(brna, "NodeSocketShader", "NodeSocketInterfaceShader");
+  rna_def_node_socket_object(brna, "NodeSocketObject", "NodeSocketInterfaceObject");
+  rna_def_node_socket_image(brna, "NodeSocketImage", "NodeSocketInterfaceImage");
+  rna_def_node_socket_surface_hook(
+      brna, "NodeSocketSurfaceHook", "NodeSocketInterfaceSurfaceHook");
 
   rna_def_node_socket_effector(brna, "NodeSocketEmitters", "NodeSocketInterfaceEmitters");
   rna_def_node_socket_effector(brna, "NodeSocketEvents", "NodeSocketInterfaceEvents");
diff --git a/source/blender/nodes/intern/node_socket.c b/source/blender/nodes/intern/node_socket.c
index 8b4e38e9d85..9009f7697a6 100644
--- a/source/blender/nodes/intern/node_socket.c
+++ b/source/blender/nodes/intern/node_socket.c
@@ -508,10 +508,11 @@ void register_standard_node_socket_types(void)
   nodeRegisterSocketType(make_standard_socket_type(SOCK_VECTOR, PROP_XYZ));
 
   nodeRegisterSocketType(make_standard_socket_type(SOCK_RGBA, PROP_NONE));
-
   nodeRegisterSocketType(make_standard_socket_type(SOCK_STRING, PROP_NONE));
-
   nodeRegisterSocketType(make_standard_socket_type(SOCK_SHADER, PROP_NONE));
+  nodeRegisterSocketType(make_standard_socket_type(SOCK_OBJECT, PROP_NONE));
+  nodeRegisterSocketType(make_standard_socket_type(SOCK_IMAGE, PROP_NONE));
+  nodeRegisterSocketType(make_standard_socket_type(SOCK_SURFACE_HOOK, PROP_NONE));
 
   nodeRegisterSocketType(make_socket_type_effector(SOCK_EMITTERS));
   nodeRegisterSocketType(make_socket_type_effector(SOCK_EVENTS));



More information about the Bf-blender-cvs mailing list