Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Matthews <guitargeek>2021-09-02 06:53:52 +0300
committerHans Goudey <h.goudey@me.com>2021-09-02 06:53:52 +0300
commit0ccbf5069431aaa323ca9c7f09cb62a0ea35ae86 (patch)
tree043a3e5da7c01c85aea9784f28af124b4cd7d287 /source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc
parent4170668776fc447c2204298ccb6928eeed0e4f55 (diff)
Cleanup: Convert geometry nodes socket list to use new API
The new API introduced in rB1e69a25043120c provides a shorted, more flexibly way to declare node socket inputs and outputs. This commit updates all geometry nodes to use the `NodeSocketBuilder` API, except the four nodes that need `SOCK_HIDE_VALUE` or `SOCK_MULTI_INPUT`. Differential Revisions: D12377, D12376, D12374, D12373, D12372
Diffstat (limited to 'source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc')
-rw-r--r--source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc36
1 files changed, 16 insertions, 20 deletions
diff --git a/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc b/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc
index ae947b7aeed..f5eb83ea4fd 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc
@@ -21,20 +21,20 @@
#include "node_geometry_util.hh"
-static bNodeSocketTemplate geo_node_curve_primitive_circle_in[] = {
- {SOCK_INT, N_("Resolution"), 32.0f, 0.0f, 0.0f, 0.0f, 3.0f, 512.0f},
- {SOCK_VECTOR, N_("Point 1"), -1.0f, 0.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX, PROP_TRANSLATION},
- {SOCK_VECTOR, N_("Point 2"), 0.0f, 1.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX, PROP_TRANSLATION},
- {SOCK_VECTOR, N_("Point 3"), 1.0f, 0.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX, PROP_TRANSLATION},
- {SOCK_FLOAT, N_("Radius"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, FLT_MAX, PROP_DISTANCE},
- {-1, ""},
-};
-
-static bNodeSocketTemplate geo_node_curve_primitive_circle_out[] = {
- {SOCK_GEOMETRY, N_("Curve")},
- {SOCK_VECTOR, N_("Center")},
- {-1, ""},
-};
+namespace blender::nodes {
+
+static void geo_node_curve_primitive_circle_declare(NodeDeclarationBuilder &b)
+{
+ b.add_input<decl::Int>("Resolution").default_value(32).min(3).max(512);
+ b.add_input<decl::Vector>("Point 1")
+ .default_value({-1.0f, 0.0f, 0.0f})
+ .subtype(PROP_TRANSLATION);
+ b.add_input<decl::Vector>("Point 2").default_value({0.0f, 1.0f, 0.0f}).subtype(PROP_TRANSLATION);
+ b.add_input<decl::Vector>("Point 3").default_value({1.0f, 0.0f, 0.0f}).subtype(PROP_TRANSLATION);
+ b.add_input<decl::Float>("Radius").default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE);
+ b.add_output<decl::Geometry>("Curve");
+ b.add_output<decl::Vector>("Center");
+}
static void geo_node_curve_primitive_circle_layout(uiLayout *layout,
bContext *UNUSED(C),
@@ -43,8 +43,6 @@ static void geo_node_curve_primitive_circle_layout(uiLayout *layout,
uiItemR(layout, ptr, "mode", UI_ITEM_R_EXPAND, nullptr, ICON_NONE);
}
-namespace blender::nodes {
-
static void geo_node_curve_primitive_circle_init(bNodeTree *UNUSED(tree), bNode *node)
{
NodeGeometryCurvePrimitiveCircle *data = (NodeGeometryCurvePrimitiveCircle *)MEM_callocN(
@@ -209,8 +207,6 @@ void register_node_type_geo_curve_primitive_circle()
static bNodeType ntype;
geo_node_type_base(
&ntype, GEO_NODE_CURVE_PRIMITIVE_CIRCLE, "Curve Circle", NODE_CLASS_GEOMETRY, 0);
- node_type_socket_templates(
- &ntype, geo_node_curve_primitive_circle_in, geo_node_curve_primitive_circle_out);
node_type_init(&ntype, blender::nodes::geo_node_curve_primitive_circle_init);
node_type_update(&ntype, blender::nodes::geo_node_curve_primitive_circle_update);
@@ -218,8 +214,8 @@ void register_node_type_geo_curve_primitive_circle()
"NodeGeometryCurvePrimitiveCircle",
node_free_standard_storage,
node_copy_standard_storage);
-
+ ntype.declare = blender::nodes::geo_node_curve_primitive_circle_declare;
ntype.geometry_node_execute = blender::nodes::geo_node_curve_primitive_circle_exec;
- ntype.draw_buttons = geo_node_curve_primitive_circle_layout;
+ ntype.draw_buttons = blender::nodes::geo_node_curve_primitive_circle_layout;
nodeRegisterType(&ntype);
}