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:
Diffstat (limited to 'source/blender/nodes/geometry/nodes/node_geo_mesh_primitive_line.cc')
-rw-r--r--source/blender/nodes/geometry/nodes/node_geo_mesh_primitive_line.cc41
1 files changed, 14 insertions, 27 deletions
diff --git a/source/blender/nodes/geometry/nodes/node_geo_mesh_primitive_line.cc b/source/blender/nodes/geometry/nodes/node_geo_mesh_primitive_line.cc
index ad0bd854a8f..031223b5ca6 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_mesh_primitive_line.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_mesh_primitive_line.cc
@@ -25,26 +25,16 @@
#include "node_geometry_util.hh"
-static bNodeSocketTemplate geo_node_mesh_primitive_line_in[] = {
- {SOCK_INT, N_("Count"), 10, 0.0f, 0.0f, 0.0f, 1, 10000},
- {SOCK_FLOAT, N_("Resolution"), 1.0f, 0.0f, 0.0f, 0.0f, 0.01f, FLT_MAX, PROP_DISTANCE},
- {SOCK_VECTOR,
- N_("Start Location"),
- 0.0f,
- 0.0f,
- 0.0f,
- 1.0f,
- -FLT_MAX,
- FLT_MAX,
- PROP_TRANSLATION},
- {SOCK_VECTOR, N_("Offset"), 0.0f, 0.0f, 1.0f, 0.0f, -FLT_MAX, FLT_MAX, PROP_TRANSLATION},
- {-1, ""},
-};
-
-static bNodeSocketTemplate geo_node_mesh_primitive_line_out[] = {
- {SOCK_GEOMETRY, N_("Geometry")},
- {-1, ""},
-};
+namespace blender::nodes {
+
+static void geo_node_mesh_primitive_line_declare(NodeDeclarationBuilder &b)
+{
+ b.add_input<decl::Int>("Count").default_value(10).min(1).max(10000);
+ b.add_input<decl::Float>("Resolution").default_value(1.0f).min(0.1f).subtype(PROP_DISTANCE);
+ b.add_input<decl::Vector>("Start Location").subtype(PROP_TRANSLATION);
+ b.add_input<decl::Vector>("Offset").default_value({0.0f, 0.0f, 1.0f}).subtype(PROP_TRANSLATION);
+ b.add_output<decl::Geometry>("Geometry");
+}
static void geo_node_mesh_primitive_line_layout(uiLayout *layout,
bContext *UNUSED(C),
@@ -93,8 +83,6 @@ static void geo_node_mesh_primitive_line_update(bNodeTree *UNUSED(tree), bNode *
count_mode == GEO_NODE_MESH_LINE_COUNT_TOTAL);
}
-namespace blender::nodes {
-
static void fill_edge_data(MutableSpan<MEdge> edges)
{
for (const int i : edges.index_range()) {
@@ -176,13 +164,12 @@ void register_node_type_geo_mesh_primitive_line()
static bNodeType ntype;
geo_node_type_base(&ntype, GEO_NODE_MESH_PRIMITIVE_LINE, "Mesh Line", NODE_CLASS_GEOMETRY, 0);
- node_type_socket_templates(
- &ntype, geo_node_mesh_primitive_line_in, geo_node_mesh_primitive_line_out);
- node_type_init(&ntype, geo_node_mesh_primitive_line_init);
- node_type_update(&ntype, geo_node_mesh_primitive_line_update);
+ ntype.declare = blender::nodes::geo_node_mesh_primitive_line_declare;
+ node_type_init(&ntype, blender::nodes::geo_node_mesh_primitive_line_init);
+ node_type_update(&ntype, blender::nodes::geo_node_mesh_primitive_line_update);
node_type_storage(
&ntype, "NodeGeometryMeshLine", node_free_standard_storage, node_copy_standard_storage);
ntype.geometry_node_execute = blender::nodes::geo_node_mesh_primitive_line_exec;
- ntype.draw_buttons = geo_node_mesh_primitive_line_layout;
+ ntype.draw_buttons = blender::nodes::geo_node_mesh_primitive_line_layout;
nodeRegisterType(&ntype);
}