[Bf-blender-cvs] [7dd54b38585] builtin-simulation-nodes: add separate/combine xyz/rgb/hsv node uis

Jacques Lucke noreply at git.blender.org
Fri Mar 13 15:15:54 CET 2020


Commit: 7dd54b385852ab139975b9dea881c17aff005439
Author: Jacques Lucke
Date:   Fri Mar 13 15:14:35 2020 +0100
Branches: builtin-simulation-nodes
https://developer.blender.org/rB7dd54b385852ab139975b9dea881c17aff005439

add separate/combine xyz/rgb/hsv node uis

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

M	release/scripts/startup/nodeitems_builtins.py
M	source/blender/blenkernel/BKE_node.h
M	source/blender/blenkernel/intern/node.c
M	source/blender/nodes/CMakeLists.txt
M	source/blender/nodes/NOD_function.h
M	source/blender/nodes/NOD_static_types.h
A	source/blender/nodes/function/nodes/node_fn_combine_hsv.cc
A	source/blender/nodes/function/nodes/node_fn_combine_rgb.cc
A	source/blender/nodes/function/nodes/node_fn_separate_hsv.cc
A	source/blender/nodes/function/nodes/node_fn_separate_rgb.cc
A	source/blender/nodes/function/nodes/node_fn_separate_xyz.cc

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

diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py
index 604b3ac143e..ca8b0b68d66 100644
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@ -505,8 +505,13 @@ simulation_node_categories = [
         NodeItem("SimulationNodeSimulationTime"),
         NodeItem("SimulationNodeParticleAttribute"),
     ]),
-    FunctionNodeCategory("VECTOR", "Vector", items=[
+    FunctionNodeCategory("CONVERTER", "Converter", items=[
         NodeItem("FunctionNodeCombineXYZ"),
+        NodeItem("FunctionNodeSeparateXYZ"),
+        NodeItem("FunctionNodeCombineRGB"),
+        NodeItem("FunctionNodeSeparateRGB"),
+        NodeItem("FunctionNodeCombineHSV"),
+        NodeItem("FunctionNodeSeparateHSV"),
     ]),
 ]
 
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index d5b3077d21b..cf30d829507 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -1014,6 +1014,11 @@ void BKE_nodetree_remove_layer_n(struct bNodeTree *ntree,
 #define SIM_NODE_PARTICLE_ATTRIBUTE 1011
 
 #define FN_NODE_COMBINE_XYZ 1100
+#define FN_NODE_SEPARATE_XYZ 1101
+#define FN_NODE_COMBINE_RGB 1102
+#define FN_NODE_SEPARATE_RGB 1103
+#define FN_NODE_COMBINE_HSV 1104
+#define FN_NODE_SEPARATE_HSV 1105
 
 /* custom defines options for Material node */
 // #define SH_NODE_MAT_DIFF 1
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index 5095902dd4d..927d9950449 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -4200,6 +4200,11 @@ static void registerSimulationNodes(void)
 static void registerFunctionNodes(void)
 {
   register_node_type_fn_combine_xyz();
+  register_node_type_fn_separate_xyz();
+  register_node_type_fn_combine_rgb();
+  register_node_type_fn_separate_rgb();
+  register_node_type_fn_combine_hsv();
+  register_node_type_fn_separate_hsv();
 }
 
 void init_nodesystem(void)
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index 5542006b439..aeff0a29cd5 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -130,6 +130,11 @@ set(SRC
   composite/node_composite_util.c
 
   function/nodes/node_fn_combine_xyz.cc
+  function/nodes/node_fn_separate_xyz.cc
+  function/nodes/node_fn_combine_rgb.cc
+  function/nodes/node_fn_separate_rgb.cc
+  function/nodes/node_fn_combine_hsv.cc
+  function/nodes/node_fn_separate_hsv.cc
   function/node_fn_util.cc
 
   shader/nodes/node_shader_add_shader.c
diff --git a/source/blender/nodes/NOD_function.h b/source/blender/nodes/NOD_function.h
index 96e4087c489..4847fb61799 100644
--- a/source/blender/nodes/NOD_function.h
+++ b/source/blender/nodes/NOD_function.h
@@ -6,6 +6,11 @@ extern "C" {
 #endif
 
 void register_node_type_fn_combine_xyz(void);
+void register_node_type_fn_separate_xyz(void);
+void register_node_type_fn_combine_rgb(void);
+void register_node_type_fn_separate_rgb(void);
+void register_node_type_fn_combine_hsv(void);
+void register_node_type_fn_separate_hsv(void);
 
 #ifdef __cplusplus
 }
diff --git a/source/blender/nodes/NOD_static_types.h b/source/blender/nodes/NOD_static_types.h
index db3d6d726bb..b9a8d1000ee 100644
--- a/source/blender/nodes/NOD_static_types.h
+++ b/source/blender/nodes/NOD_static_types.h
@@ -272,6 +272,11 @@ DefNode(SimulationNode, SIM_NODE_SIMULATION_TIME, 0,                     "SIMULA
 DefNode(SimulationNode, SIM_NODE_PARTICLE_ATTRIBUTE, 0,                  "PARTICLE_ATTRIBUTE",  ParticleAttribute,  "Particle Attribute",   "")
 
 DefNode(FunctionNode, FN_NODE_COMBINE_XYZ, 0, "COMBINE_XYZ", CombineXYZ, "Combine XYZ", "")
+DefNode(FunctionNode, FN_NODE_SEPARATE_XYZ, 0, "SEPARATE_XYZ", SeparateXYZ, "Separate XYZ", "")
+DefNode(FunctionNode, FN_NODE_COMBINE_RGB, 0, "COMBINE_RGB", CombineRGB, "Combine RGB", "")
+DefNode(FunctionNode, FN_NODE_SEPARATE_RGB, 0, "SEPARATE_RGB", SeparateRGB, "Separate RGB", "")
+DefNode(FunctionNode, FN_NODE_COMBINE_HSV, 0, "COMBINE_HSV", CombineHSV, "Combine HSV", "")
+DefNode(FunctionNode, FN_NODE_SEPARATE_HSV, 0, "SEPARATE_HSV", SeparateHSV, "Separate HSV", "")
 
 /* undefine macros */
 #undef DefNode
diff --git a/source/blender/nodes/function/nodes/node_fn_combine_hsv.cc b/source/blender/nodes/function/nodes/node_fn_combine_hsv.cc
new file mode 100644
index 00000000000..b564373f78e
--- /dev/null
+++ b/source/blender/nodes/function/nodes/node_fn_combine_hsv.cc
@@ -0,0 +1,22 @@
+#include "node_fn_util.h"
+
+static bNodeSocketTemplate fn_node_combine_hsv_in[] = {
+    {SOCK_FLOAT, N_("H"), 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f},
+    {SOCK_FLOAT, N_("S"), 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f},
+    {SOCK_FLOAT, N_("V"), 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f},
+    {-1, ""},
+};
+
+static bNodeSocketTemplate fn_node_combine_hsv_out[] = {
+    {SOCK_RGBA, N_("Color")},
+    {-1, ""},
+};
+
+void register_node_type_fn_combine_hsv()
+{
+  static bNodeType ntype;
+
+  fn_node_type_base(&ntype, FN_NODE_COMBINE_HSV, "Combine HSV", 0, 0);
+  node_type_socket_templates(&ntype, fn_node_combine_hsv_in, fn_node_combine_hsv_out);
+  nodeRegisterType(&ntype);
+}
diff --git a/source/blender/nodes/function/nodes/node_fn_combine_rgb.cc b/source/blender/nodes/function/nodes/node_fn_combine_rgb.cc
new file mode 100644
index 00000000000..6c9a4462761
--- /dev/null
+++ b/source/blender/nodes/function/nodes/node_fn_combine_rgb.cc
@@ -0,0 +1,22 @@
+#include "node_fn_util.h"
+
+static bNodeSocketTemplate fn_node_combine_rgb_in[] = {
+    {SOCK_FLOAT, N_("R"), 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f},
+    {SOCK_FLOAT, N_("G"), 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f},
+    {SOCK_FLOAT, N_("B"), 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f},
+    {-1, ""},
+};
+
+static bNodeSocketTemplate fn_node_combine_rgb_out[] = {
+    {SOCK_RGBA, N_("Color")},
+    {-1, ""},
+};
+
+void register_node_type_fn_combine_rgb()
+{
+  static bNodeType ntype;
+
+  fn_node_type_base(&ntype, FN_NODE_COMBINE_RGB, "Combine RGB", 0, 0);
+  node_type_socket_templates(&ntype, fn_node_combine_rgb_in, fn_node_combine_rgb_out);
+  nodeRegisterType(&ntype);
+}
diff --git a/source/blender/nodes/function/nodes/node_fn_separate_hsv.cc b/source/blender/nodes/function/nodes/node_fn_separate_hsv.cc
new file mode 100644
index 00000000000..0e6bbda50d7
--- /dev/null
+++ b/source/blender/nodes/function/nodes/node_fn_separate_hsv.cc
@@ -0,0 +1,22 @@
+#include "node_fn_util.h"
+
+static bNodeSocketTemplate fn_node_separate_hsv_in[] = {
+    {SOCK_RGBA, N_("Color")},
+    {-1, ""},
+};
+
+static bNodeSocketTemplate fn_node_separate_hsv_out[] = {
+    {SOCK_FLOAT, N_("H")},
+    {SOCK_FLOAT, N_("S")},
+    {SOCK_FLOAT, N_("V")},
+    {-1, ""},
+};
+
+void register_node_type_fn_separate_hsv()
+{
+  static bNodeType ntype;
+
+  fn_node_type_base(&ntype, FN_NODE_SEPARATE_HSV, "Separate HSV", 0, 0);
+  node_type_socket_templates(&ntype, fn_node_separate_hsv_in, fn_node_separate_hsv_out);
+  nodeRegisterType(&ntype);
+}
diff --git a/source/blender/nodes/function/nodes/node_fn_separate_rgb.cc b/source/blender/nodes/function/nodes/node_fn_separate_rgb.cc
new file mode 100644
index 00000000000..e0787e6e19a
--- /dev/null
+++ b/source/blender/nodes/function/nodes/node_fn_separate_rgb.cc
@@ -0,0 +1,22 @@
+#include "node_fn_util.h"
+
+static bNodeSocketTemplate fn_node_separate_rgb_in[] = {
+    {SOCK_RGBA, N_("Color")},
+    {-1, ""},
+};
+
+static bNodeSocketTemplate fn_node_separate_rgb_out[] = {
+    {SOCK_FLOAT, N_("R")},
+    {SOCK_FLOAT, N_("G")},
+    {SOCK_FLOAT, N_("B")},
+    {-1, ""},
+};
+
+void register_node_type_fn_separate_rgb()
+{
+  static bNodeType ntype;
+
+  fn_node_type_base(&ntype, FN_NODE_SEPARATE_RGB, "Separate RGB", 0, 0);
+  node_type_socket_templates(&ntype, fn_node_separate_rgb_in, fn_node_separate_rgb_out);
+  nodeRegisterType(&ntype);
+}
diff --git a/source/blender/nodes/function/nodes/node_fn_separate_xyz.cc b/source/blender/nodes/function/nodes/node_fn_separate_xyz.cc
new file mode 100644
index 00000000000..b0f1c2e09f4
--- /dev/null
+++ b/source/blender/nodes/function/nodes/node_fn_separate_xyz.cc
@@ -0,0 +1,22 @@
+#include "node_fn_util.h"
+
+static bNodeSocketTemplate fn_node_separate_xyz_in[] = {
+    {SOCK_VECTOR, N_("Vector")},
+    {-1, ""},
+};
+
+static bNodeSocketTemplate fn_node_separate_xyz_out[] = {
+    {SOCK_FLOAT, N_("X")},
+    {SOCK_FLOAT, N_("Y")},
+    {SOCK_FLOAT, N_("Z")},
+    {-1, ""},
+};
+
+void register_node_type_fn_separate_xyz()
+{
+  static bNodeType ntype;
+
+  fn_node_type_base(&ntype, FN_NODE_SEPARATE_XYZ, "Separate XYZ", 0, 0);
+  node_type_socket_templates(&ntype, fn_node_separate_xyz_in, fn_node_separate_xyz_out);
+  nodeRegisterType(&ntype);
+}



More information about the Bf-blender-cvs mailing list