Commit: cedbf385884ae180655ac13f3863347e6f540807 Author: Hans Goudey Date: Thu Sep 2 11:08:16 2021 -0500 Branches: geometry-nodes-level-set-nodes https://developer.blender.org/rBcedbf385884ae180655ac13f3863347e6f540807
Cleanup: Use new socket declaration API =================================================================== M source/blender/nodes/geometry/nodes/node_geo_level_set_boolean.cc M source/blender/nodes/geometry/nodes/node_geo_level_set_filter.cc M source/blender/nodes/geometry/nodes/node_geo_level_set_morph.cc M source/blender/nodes/geometry/nodes/node_geo_level_set_primitive_platonic.cc M source/blender/nodes/geometry/nodes/node_geo_level_set_primitive_sphere.cc M source/blender/nodes/geometry/nodes/node_geo_level_set_to_fog_volume.cc M source/blender/nodes/geometry/nodes/node_geo_level_set_to_mask.cc M source/blender/nodes/geometry/nodes/node_geo_mesh_to_level_set.cc M source/blender/nodes/geometry/nodes/node_geo_raycast.cc =================================================================== diff --git a/source/blender/nodes/geometry/nodes/node_geo_level_set_boolean.cc b/source/blender/nodes/geometry/nodes/node_geo_level_set_boolean.cc index 05ebb5fc362..2381ecfabde 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_level_set_boolean.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_level_set_boolean.cc @@ -31,7 +31,16 @@ static bNodeSocketTemplate geo_node_level_set_boolean_in[] = { {SOCK_GEOMETRY, N_("Level Set 1")}, - {SOCK_GEOMETRY, N_("Level Set 2")}, + {SOCK_GEOMETRY, + N_("Level Set 2"), + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + PROP_NONE, + SOCK_MULTI_INPUT}, {-1, ""}, }; diff --git a/source/blender/nodes/geometry/nodes/node_geo_level_set_filter.cc b/source/blender/nodes/geometry/nodes/node_geo_level_set_filter.cc index 74d663fb9dc..e7a7d4d3966 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_level_set_filter.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_level_set_filter.cc @@ -28,17 +28,15 @@ #include "node_geometry_util.hh" -static bNodeSocketTemplate geo_node_level_set_filter_in[] = { - {SOCK_GEOMETRY, N_("Level Set")}, - {SOCK_FLOAT, N_("Distance"), 0.1f, 0.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX, PROP_DISTANCE}, - {SOCK_INT, N_("Width"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 128, PROP_DISTANCE}, - {-1, ""}, -}; - -static bNodeSocketTemplate geo_node_level_set_filter_out[] = { - {SOCK_GEOMETRY, N_("Level Set")}, - {-1, ""}, -}; +namespace blender::nodes { + +static void geo_node_level_set_filter_declare(NodeDeclarationBuilder &b) +{ + b.add_input<decl::Geometry>("Level Set"); + b.add_input<decl::Float>("Distance").default_value(0.1f).subtype(PROP_DISTANCE); + b.add_input<decl::Int>("Width").default_value(1).min(128); + b.add_output<decl::Geometry>("Level Set"); +} static void geo_node_level_set_filter_layout(uiLayout *layout, bContext *UNUSED(C), @@ -71,8 +69,6 @@ static void geo_node_level_set_filter_update(bNodeTree *UNUSED(ntree), bNode *no GEO_NODE_LEVEL_SET_FILTER_MEAN)); } -namespace blender::nodes { - #ifdef WITH_OPENVDB static void level_set_filter(Volume &volume, @@ -155,15 +151,15 @@ void register_node_type_geo_level_set_filter() geo_node_type_base( &ntype, GEO_NODE_LEVEL_SET_FILTER, "Level Set Filter", NODE_CLASS_GEOMETRY, 0); - node_type_socket_templates(&ntype, geo_node_level_set_filter_in, geo_node_level_set_filter_out); + ntype.declare = blender::nodes::geo_node_level_set_filter_declare; ntype.geometry_node_execute = blender::nodes::geo_node_level_set_filter_exec; node_type_storage(&ntype, "NodeGeometryLevelSetFilter", node_free_standard_storage, node_copy_standard_storage); - node_type_init(&ntype, geo_node_level_set_filter_init); - ntype.draw_buttons = geo_node_level_set_filter_layout; - ntype.updatefunc = geo_node_level_set_filter_update; + node_type_init(&ntype, blender::nodes::geo_node_level_set_filter_init); + ntype.draw_buttons = blender::nodes::geo_node_level_set_filter_layout; + ntype.updatefunc = blender::nodes::geo_node_level_set_filter_update; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/geometry/nodes/node_geo_level_set_morph.cc b/source/blender/nodes/geometry/nodes/node_geo_level_set_morph.cc index 5ba34cce7ec..495e8df98d6 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_level_set_morph.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_level_set_morph.cc @@ -29,17 +29,15 @@ #include "node_geometry_util.hh" -static bNodeSocketTemplate geo_node_level_set_morph_in[] = { - {SOCK_GEOMETRY, N_("Source")}, - {SOCK_GEOMETRY, N_("Target")}, - {SOCK_FLOAT, N_("Factor"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_UNSIGNED}, - {-1, ""}, -}; - -static bNodeSocketTemplate geo_node_level_set_morph_out[] = { - {SOCK_GEOMETRY, N_("Result")}, - {-1, ""}, -}; +namespace blender::nodes { + +static void geo_node_level_set_morph_declare(NodeDeclarationBuilder &b) +{ + b.add_input<decl::Geometry>("Source"); + b.add_input<decl::Geometry>("Target"); + b.add_input<decl::Float>("Factor").default_value(0.5f).min(0.0f).max(1.0f).subtype(PROP_FACTOR); + b.add_output<decl::Geometry>("Result"); +} static void geo_node_level_set_morph_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { @@ -56,8 +54,6 @@ static void geo_node_level_set_morph_init(bNodeTree *UNUSED(ntree), bNode *node) node->storage = data; } -namespace blender::nodes { - #ifdef WITH_OPENVDB static openvdb::math::TemporalIntegrationScheme temporal_scheme_to_openvdb( @@ -202,12 +198,12 @@ void register_node_type_geo_level_set_morph() static bNodeType ntype; geo_node_type_base(&ntype, GEO_NODE_LEVEL_SET_MORPH, "Level Set Morph", NODE_CLASS_GEOMETRY, 0); - node_type_socket_templates(&ntype, geo_node_level_set_morph_in, geo_node_level_set_morph_out); + ntype.declare = blender::nodes::geo_node_level_set_morph_declare; ntype.geometry_node_execute = blender::nodes::geo_node_level_set_morph_exec; node_type_storage( &ntype, "NodeGeometryLevelSetMorph", node_free_standard_storage, node_copy_standard_storage); - node_type_init(&ntype, geo_node_level_set_morph_init); - ntype.draw_buttons = geo_node_level_set_morph_layout; + node_type_init(&ntype, blender::nodes::geo_node_level_set_morph_init); + ntype.draw_buttons = blender::nodes::geo_node_level_set_morph_layout; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/geometry/nodes/node_geo_level_set_primitive_platonic.cc b/source/blender/nodes/geometry/nodes/node_geo_level_set_primitive_platonic.cc index 5fc40a62654..ee07e9f78f8 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_level_set_primitive_platonic.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_level_set_primitive_platonic.cc @@ -26,17 +26,15 @@ #include "node_geometry_util.hh" -static bNodeSocketTemplate geo_node_level_set_primitive_platonic_in[] = { - {SOCK_FLOAT, N_("Size"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, FLT_MAX, PROP_DISTANCE}, - {SOCK_VECTOR, N_("Center"), 0.0f, 0.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX, PROP_TRANSLATION}, - {SOCK_FLOAT, N_("Voxel Size"), 0.3f, 0.0f, 0.0f, 0.0f, 0.01f, FLT_MAX, PROP_DISTANCE}, - {-1, ""}, -}; - -static bNodeSocketTemplate geo_node_level_set_primitive_platonic_out[] = { - {SOCK_GEOMETRY, N_("Level Set")}, - {-1, ""}, -}; +namespace blender::nodes { + +static void geo_node_level_set_primitive_platonic_declare(NodeDeclarationBuilder &b) +{ + b.add_input<decl::Float>("Size").default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE); + b.add_input<decl::Vector>("Target").subtype(PROP_TRANSLATION); + b.add_input<decl::Float>("Voxel Size").default_value(0.3f).min(0.01f).subtype(PROP_DISTANCE); + b.add_output<decl::Geometry>("Level Set"); +} static void geo_node_level_set_primitive_platonic_layout(uiLayout *layout, bContext *UNUSED(C), @@ -53,8 +51,6 @@ static void geo_node_level_set_primitive_platonic_init(bNodeTree *UNUSED(ntree), node->storage = data; } -namespace blender::nodes { - #ifdef WITH_OPENVDB static Volume *level_set_primitive_platonic(const NodeGeometryPlatonicShape shape, @@ -99,15 +95,14 @@ void register_node_type_geo_level_set_primitive_platonic() geo_node_type_base( &ntype, GEO_NODE_LEVEL_SET_PRIMITIVE_PLATONIC, "Level Set Platonic", NODE_CLASS_GEOMETRY, 0); - node_type_socket_templates( - &ntype, geo_node_level_set_primitive_platonic_in, geo_node_level_set_primitive_platonic_out); + ntype.declare = blender::nodes::geo_node_level_set_primitive_platonic_declare; ntype.geometry_node_execute = blender::nodes::geo_node_level_set_primitive_platonic_exec; node_type_storage(&ntype, "NodeGeometryLevelSetPlatonic", node_free_standard_storage, node_copy_standard_storage); - node_type_init(&ntype, geo_node_level_set_primitive_platonic_init); - ntype.draw_buttons = geo_node_level_set_primitive_platonic_layout; + node_type_init(&ntype, blender::nodes::geo_node_level_set_primitive_platonic_init); + ntype.draw_buttons = blender::nodes::geo_node_level_set_primitive_platonic_layout; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/geometry/nodes/node_geo_level_set_primitive_sphere.cc b/source/blender/nodes/geometry/nodes/node_geo_level_set_primitive_sphere.cc index e30fd62684b..a1390a078f2 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_level_set_primitive_sphere.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_level_set_primitive_sphere.cc @@ -28,20 +28,16 @@ #include "node_geometry_util.hh" -static bNodeSocketTemplate geo_node_level_set_primitive_sphere_in[] = { - {SOCK_FLOAT, N_("Radius"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, FLT_MAX, PROP_DISTANCE}, - {SOCK_VECTOR, N_("Center"), 0.0f, 0.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX, PROP_TRANSLATION}, - {SOCK_FLOAT, N_("Voxel Size"), 0.3f, 0.0f, 0.0f, 0.0f, 0.01f, FLT_MAX, PROP_DISTANCE}, - {-1, ""}, -}; - -static bNodeSocketTemplate geo_node_level_set_primitive_sphere_out[] = { - {SOCK_GEOMETRY, N_("Level Set")}, - {-1, ""}, -}; - namespace blender::nodes { +static void geo_node_level_set_primitive_sphere_declare(NodeDeclarationBuilder &b) +{ + b.add_input<decl::Float>("Radius").default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE); + b.add_input<decl::Vector>("Target").subtype(PROP_TRANSLATION); + b.add_input<decl::Float>("Voxel Size").default_value(0.3f).min(0.01f).subtype(PROP_DISTANCE); + b.add_output<decl::Geometry>("Level Set"); +} + #ifdef WITH_OPENVDB static Volume *level_set_primitive_sphere(GeoNodeExecParams ¶ms) @@ -80,8 +76,7 @@ void register_node_type_geo_level_set_primitive_sphere() geo_node_type_base( &ntype, GEO_NODE_LEVEL_SET_PRIMITIVE_SPHERE, "Level Set Sphere", NODE_CLASS_GEOMETRY, 0); - node_type_socket_templates( - &ntype, geo_node_level_set_primitive_sphere_in, geo_node_level_set_primitive_sphere_out); + ntype.declare = blender::nodes::geo_node_level_set_primitive_sphere_declare; ntype @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs