[Bf-blender-cvs] [4108d2f4f90] functions: integer socket

Jacques Lucke noreply at git.blender.org
Mon Feb 25 10:30:43 CET 2019


Commit: 4108d2f4f90640716c461b6b45a33ca79885768e
Author: Jacques Lucke
Date:   Fri Feb 22 14:27:34 2019 +0100
Branches: functions
https://developer.blender.org/rB4108d2f4f90640716c461b6b45a33ca79885768e

integer socket

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

M	release/scripts/startup/function_nodes/nodes/function_input.py
M	release/scripts/startup/function_nodes/nodes/function_output.py
M	release/scripts/startup/function_nodes/sockets.py
M	source/blender/functions/FN_functions.h
M	source/blender/functions/c_wrapper.cpp
M	source/blender/functions/nodes/graph_generation.cpp

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

diff --git a/release/scripts/startup/function_nodes/nodes/function_input.py b/release/scripts/startup/function_nodes/nodes/function_input.py
index c05851e270e..7f4e90e28ed 100644
--- a/release/scripts/startup/function_nodes/nodes/function_input.py
+++ b/release/scripts/startup/function_nodes/nodes/function_input.py
@@ -12,6 +12,8 @@ class FunctionInputNode(BaseNode, bpy.types.Node):
         col = layout.column(align=True)
         self.invoke_function(col, "new_socket",
             "New Float", settings=("fn_FloatSocket", ))
+        self.invoke_function(col, "new_socket",
+            "New Integer", settings=("fn_IntegerSocket", ))
         self.invoke_function(col, "new_socket",
             "New Vector", settings=("fn_VectorSocket", ))
 
diff --git a/release/scripts/startup/function_nodes/nodes/function_output.py b/release/scripts/startup/function_nodes/nodes/function_output.py
index a85d7beb1e9..562fe636987 100644
--- a/release/scripts/startup/function_nodes/nodes/function_output.py
+++ b/release/scripts/startup/function_nodes/nodes/function_output.py
@@ -12,6 +12,8 @@ class FunctionOutputNode(BaseNode, bpy.types.Node):
         col = layout.column(align=True)
         self.invoke_function(col, "new_socket",
             "New Float", settings=("fn_FloatSocket", ))
+        self.invoke_function(col, "new_socket",
+            "New Integer", settings=("fn_IntegerSocket", ))
         self.invoke_function(col, "new_socket",
             "New Vector", settings=("fn_VectorSocket", ))
 
diff --git a/release/scripts/startup/function_nodes/sockets.py b/release/scripts/startup/function_nodes/sockets.py
index a7821c897cd..db97cc55ea9 100644
--- a/release/scripts/startup/function_nodes/sockets.py
+++ b/release/scripts/startup/function_nodes/sockets.py
@@ -15,6 +15,19 @@ class FloatSocket(bpy.types.NodeSocket, DataSocket):
     def draw_property(self, layout, node, text):
         layout.prop(self, "value", text=text)
 
+class IntegerSocket(bpy.types.NodeSocket, DataSocket):
+    bl_idname = "fn_IntegerSocket"
+    bl_label = "Integer Socket"
+    color = (0, 0, 0, 1)
+
+    value: IntProperty(
+        name="Value",
+        default=0,
+    )
+
+    def draw_property(self, layout, node, text):
+        layout.prop(self, "value", text=text)
+
 class VectorSocket(bpy.types.NodeSocket, DataSocket):
     bl_idname = "fn_VectorSocket"
     bl_label = "Vector Socket"
@@ -30,4 +43,5 @@ class VectorSocket(bpy.types.NodeSocket, DataSocket):
         layout.column().prop(self, "value", text=text)
 
 bpy.utils.register_class(FloatSocket)
+bpy.utils.register_class(IntegerSocket)
 bpy.utils.register_class(VectorSocket)
\ No newline at end of file
diff --git a/source/blender/functions/FN_functions.h b/source/blender/functions/FN_functions.h
index 49424b231ba..b34ea72914f 100644
--- a/source/blender/functions/FN_functions.h
+++ b/source/blender/functions/FN_functions.h
@@ -33,8 +33,10 @@ FnTuple FN_tuple_for_output(FnFunction fn);
 void FN_tuple_free(FnTuple tuple);
 
 void FN_tuple_set_float(FnTuple tuple, uint index, float value);
+void FN_tuple_set_int32(FnTuple tuple, uint index, int32_t value);
 void FN_tuple_set_float_vector_3(FnTuple tuple, uint index, float vector[3]);
 float FN_tuple_get_float(FnTuple tuple, uint index);
+int32_t FN_tuple_get_int32(FnTuple tuple, uint index);
 void FN_tuple_get_float_vector_3(FnTuple tuple, uint index, float dst[3]);
 
 const char *FN_type_name(FnType type);
diff --git a/source/blender/functions/c_wrapper.cpp b/source/blender/functions/c_wrapper.cpp
index 2c91a94f325..9c30243befa 100644
--- a/source/blender/functions/c_wrapper.cpp
+++ b/source/blender/functions/c_wrapper.cpp
@@ -117,6 +117,16 @@ float FN_tuple_get_float(FnTuple tuple, uint index)
 	return unwrap(tuple)->get<float>(index);
 }
 
+void FN_tuple_set_int32(FnTuple tuple, uint index, int32_t value)
+{
+	unwrap(tuple)->set<int32_t>(index, value);
+}
+
+int32_t FN_tuple_get_int32(FnTuple tuple, uint index)
+{
+	return unwrap(tuple)->get<int32_t>(index);
+}
+
 using FN::Types::Vector;
 
 void FN_tuple_set_float_vector_3(FnTuple tuple, uint index, float value[3])
diff --git a/source/blender/functions/nodes/graph_generation.cpp b/source/blender/functions/nodes/graph_generation.cpp
index 2f719e7e7a4..126f0774420 100644
--- a/source/blender/functions/nodes/graph_generation.cpp
+++ b/source/blender/functions/nodes/graph_generation.cpp
@@ -9,6 +9,9 @@ namespace FN { namespace Nodes {
 		if (STREQ(bsocket->idname, "fn_FloatSocket")) {
 			return get_float_type();
 		}
+		else if (STREQ(bsocket->idname, "fn_IntegerSocket")) {
+			return get_int32_type();
+		}
 		else if (STREQ(bsocket->idname, "fn_VectorSocket")) {
 			return get_fvec3_type();
 		}



More information about the Bf-blender-cvs mailing list