[Bf-blender-cvs] [de6a5ea3a0e] functions: clamp node as combination of min and max functions
Jacques Lucke
noreply at git.blender.org
Wed Feb 20 17:21:41 CET 2019
Commit: de6a5ea3a0ece852dbb5f10ba69458673940b9f4
Author: Jacques Lucke
Date: Wed Feb 20 16:59:21 2019 +0100
Branches: functions
https://developer.blender.org/rBde6a5ea3a0ece852dbb5f10ba69458673940b9f4
clamp node as combination of min and max functions
===================================================================
M release/scripts/startup/function_nodes/menu.py
M release/scripts/startup/function_nodes/nodes/__init__.py
A release/scripts/startup/function_nodes/nodes/clamp.py
M source/blender/functions/nodes/test_nodes.cpp
===================================================================
diff --git a/release/scripts/startup/function_nodes/menu.py b/release/scripts/startup/function_nodes/menu.py
index c2a9e10ae66..1d98803309b 100644
--- a/release/scripts/startup/function_nodes/menu.py
+++ b/release/scripts/startup/function_nodes/menu.py
@@ -16,6 +16,7 @@ def draw_menu(self, context):
insert_node(layout, "fn_CombineVectorNode", "Combine Vector")
insert_node(layout, "fn_SeparateVectorNode", "Separate Vector")
insert_node(layout, "fn_VectorDistanceNode", "Vector Distance")
+ insert_node(layout, "fn_ClampNode", "Clamp")
insert_node(layout, "fn_ObjectTransformsNode", "Object Transforms")
def insert_node(layout, type, text, settings = {}, icon = "NONE"):
diff --git a/release/scripts/startup/function_nodes/nodes/__init__.py b/release/scripts/startup/function_nodes/nodes/__init__.py
index f6831f9187d..7be89bc2b39 100644
--- a/release/scripts/startup/function_nodes/nodes/__init__.py
+++ b/release/scripts/startup/function_nodes/nodes/__init__.py
@@ -7,4 +7,5 @@ from . import (
separate_vector,
object_transforms,
vector_distance,
+ clamp,
)
\ No newline at end of file
diff --git a/release/scripts/startup/function_nodes/nodes/clamp.py b/release/scripts/startup/function_nodes/nodes/clamp.py
new file mode 100644
index 00000000000..92f7a19046c
--- /dev/null
+++ b/release/scripts/startup/function_nodes/nodes/clamp.py
@@ -0,0 +1,17 @@
+import bpy
+from .. base import FunctionNode
+
+class ClampNode(bpy.types.Node, FunctionNode):
+ bl_idname = "fn_ClampNode"
+ bl_label = "Clamp"
+
+ def get_sockets(self):
+ return [
+ ("fn_FloatSocket", "Value"),
+ ("fn_FloatSocket", "Min"),
+ ("fn_FloatSocket", "Max"),
+ ], [
+ ("fn_FloatSocket", "Result"),
+ ]
+
+bpy.utils.register_class(ClampNode)
\ No newline at end of file
diff --git a/source/blender/functions/nodes/test_nodes.cpp b/source/blender/functions/nodes/test_nodes.cpp
index ca9e7bbf5c3..a053218dea5 100644
--- a/source/blender/functions/nodes/test_nodes.cpp
+++ b/source/blender/functions/nodes/test_nodes.cpp
@@ -223,6 +223,25 @@ namespace FN { namespace Nodes {
map_node_sockets(socket_map, bnode, node);
}
+ static void insert_clamp_node(
+ bNodeTree *UNUSED(btree),
+ bNode *bnode,
+ SharedDataFlowGraph &graph,
+ SocketMap &socket_map)
+ {
+ SharedFunction &max_fn = get_maximum_function();
+ SharedFunction &min_fn = get_minimum_function();
+
+ const Node *max_node = graph->insert(max_fn);
+ const Node *min_node = graph->insert(min_fn);
+
+ graph->link(max_node->output(0), min_node->input(0));
+ socket_map.add((bNodeSocket *)BLI_findlink(&bnode->inputs, 0), max_node->input(0));
+ socket_map.add((bNodeSocket *)BLI_findlink(&bnode->inputs, 1), max_node->input(1));
+ socket_map.add((bNodeSocket *)BLI_findlink(&bnode->inputs, 2), min_node->input(1));
+ socket_map.add((bNodeSocket *)BLI_findlink(&bnode->outputs, 0), min_node->output(0));
+ }
+
void initialize_node_inserters()
{
register_node_function_getter__no_arg("fn_CombineVectorNode", get_combine_vector_function);
@@ -230,6 +249,7 @@ namespace FN { namespace Nodes {
register_node_function_getter__no_arg("fn_VectorDistanceNode", get_vector_distance_function);
register_node_inserter("fn_ObjectTransformsNode", insert_object_transforms_node);
register_node_inserter("fn_FloatMathNode", insert_float_math_node);
+ register_node_inserter("fn_ClampNode", insert_clamp_node);
}
} }
\ No newline at end of file
More information about the Bf-blender-cvs
mailing list