diff options
author | Johnny Matthews <guitargeek> | 2021-09-02 06:53:52 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-09-02 06:53:52 +0300 |
commit | 0ccbf5069431aaa323ca9c7f09cb62a0ea35ae86 (patch) | |
tree | 043a3e5da7c01c85aea9784f28af124b4cd7d287 /source/blender/nodes/geometry/nodes/node_geo_curve_primitive_bezier_segment.cc | |
parent | 4170668776fc447c2204298ccb6928eeed0e4f55 (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_bezier_segment.cc')
-rw-r--r-- | source/blender/nodes/geometry/nodes/node_geo_curve_primitive_bezier_segment.cc | 41 |
1 files changed, 15 insertions, 26 deletions
diff --git a/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_bezier_segment.cc b/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_bezier_segment.cc index 78b5b109419..313473e3442 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_bezier_segment.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_bezier_segment.cc @@ -21,27 +21,20 @@ #include "node_geometry_util.hh" -static bNodeSocketTemplate geo_node_curve_primitive_bezier_segment_in[] = { - {SOCK_INT, N_("Resolution"), 16.0f, 0.0f, 0.0f, 0.0f, 1, 256, PROP_UNSIGNED}, - {SOCK_VECTOR, N_("Start"), -1.0f, 0.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX, PROP_TRANSLATION}, - {SOCK_VECTOR, - N_("Start Handle"), - -0.5f, - 0.5f, - 0.0f, - 0.0f, - -FLT_MAX, - FLT_MAX, - PROP_TRANSLATION}, - {SOCK_VECTOR, N_("End Handle"), 0.0f, 0.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX, PROP_TRANSLATION}, - {SOCK_VECTOR, N_("End"), 1.0f, 0.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX, PROP_TRANSLATION}, - {-1, ""}, -}; +namespace blender::nodes { + +static void geo_node_curve_primitive_bezier_segment_declare(NodeDeclarationBuilder &b) +{ + b.add_input<decl::Int>("Resolution").default_value(16).min(1).max(256).subtype(PROP_UNSIGNED); + b.add_input<decl::Vector>("Start").default_value({-1.0f, 0.0f, 0.0f}).subtype(PROP_TRANSLATION); + b.add_input<decl::Vector>("Start Handle") + .default_value({-0.5f, 0.5f, 0.0f}) + .subtype(PROP_TRANSLATION); + b.add_input<decl::Vector>("End Handle").subtype(PROP_TRANSLATION); + b.add_input<decl::Vector>("End").default_value({1.0f, 0.0f, 0.0f}).subtype(PROP_TRANSLATION); + b.add_output<decl::Geometry>("Curve"); +} -static bNodeSocketTemplate geo_node_curve_primitive_bezier_segment_out[] = { - {SOCK_GEOMETRY, N_("Curve")}, - {-1, ""}, -}; static void geo_node_curve_primitive_bezier_segment_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) @@ -49,8 +42,6 @@ static void geo_node_curve_primitive_bezier_segment_layout(uiLayout *layout, uiItemR(layout, ptr, "mode", UI_ITEM_R_EXPAND, nullptr, ICON_NONE); } -namespace blender::nodes { - static void geo_node_curve_primitive_bezier_segment_init(bNodeTree *UNUSED(tree), bNode *node) { NodeGeometryCurvePrimitiveBezierSegment *data = (NodeGeometryCurvePrimitiveBezierSegment *) @@ -135,15 +126,13 @@ void register_node_type_geo_curve_primitive_bezier_segment() static bNodeType ntype; geo_node_type_base( &ntype, GEO_NODE_CURVE_PRIMITIVE_BEZIER_SEGMENT, "Bezier Segment", NODE_CLASS_GEOMETRY, 0); - node_type_socket_templates(&ntype, - geo_node_curve_primitive_bezier_segment_in, - geo_node_curve_primitive_bezier_segment_out); node_type_init(&ntype, blender::nodes::geo_node_curve_primitive_bezier_segment_init); node_type_storage(&ntype, "NodeGeometryCurvePrimitiveBezierSegment", node_free_standard_storage, node_copy_standard_storage); - ntype.draw_buttons = geo_node_curve_primitive_bezier_segment_layout; + ntype.declare = blender::nodes::geo_node_curve_primitive_bezier_segment_declare; + ntype.draw_buttons = blender::nodes::geo_node_curve_primitive_bezier_segment_layout; ntype.geometry_node_execute = blender::nodes::geo_node_curve_primitive_bezier_segment_exec; nodeRegisterType(&ntype); } |