[Bf-blender-cvs] [cedbf385884] geometry-nodes-level-set-nodes: Cleanup: Use new socket declaration API

Hans Goudey noreply at git.blender.org
Thu Sep 2 18:08:24 CEST 2021


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 &params)
@@ -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. @@



More information about the Bf-blender-cvs mailing list