[Bf-blender-cvs] [349682e5bf9] temp-deform-curves-on-surface: Cleanup to naming and other small tweaks

Hans Goudey noreply at git.blender.org
Fri Jul 8 00:09:49 CEST 2022


Commit: 349682e5bf97112581de8e116210f94adeaa5dc1
Author: Hans Goudey
Date:   Thu Jul 7 16:32:02 2022 -0500
Branches: temp-deform-curves-on-surface
https://developer.blender.org/rB349682e5bf97112581de8e116210f94adeaa5dc1

Cleanup to naming and other small tweaks

===================================================================

M	source/blender/blenkernel/BKE_node.h
M	source/blender/blenkernel/intern/node.cc
M	source/blender/editors/curves/intern/curves_add.cc
M	source/blender/makesrna/intern/rna_object.c
M	source/blender/modifiers/intern/MOD_nodes.cc
M	source/blender/nodes/NOD_geometry.h
M	source/blender/nodes/NOD_static_types.h
M	source/blender/nodes/geometry/nodes/node_geo_deform_curves_with_surface.cc

===================================================================

diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index 71eb3f6664f..b7962ade312 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -1501,7 +1501,7 @@ struct TexResult;
 #define GEO_NODE_MESH_TO_VOLUME 1164
 #define GEO_NODE_UV_UNWRAP 1165
 #define GEO_NODE_UV_PACK_ISLANDS 1166
-#define GEO_NODE_DEFORM_CURVES_WITH_SURFACE 1167
+#define GEO_NODE_DEFORM_CURVES_ON_SURFACE 1167
 
 /** \} */
 
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc
index 1c797f29ce1..c6f140b9260 100644
--- a/source/blender/blenkernel/intern/node.cc
+++ b/source/blender/blenkernel/intern/node.cc
@@ -4749,7 +4749,7 @@ static void registerGeometryNodes()
   register_node_type_geo_curve_to_mesh();
   register_node_type_geo_curve_to_points();
   register_node_type_geo_curve_trim();
-  register_node_type_geo_deform_curves_with_surface();
+  register_node_type_geo_deform_curves_on_surface();
   register_node_type_geo_delete_geometry();
   register_node_type_geo_duplicate_elements();
   register_node_type_geo_distribute_points_on_faces();
diff --git a/source/blender/editors/curves/intern/curves_add.cc b/source/blender/editors/curves/intern/curves_add.cc
index c725ef2edb9..79916253207 100644
--- a/source/blender/editors/curves/intern/curves_add.cc
+++ b/source/blender/editors/curves/intern/curves_add.cc
@@ -24,7 +24,7 @@ namespace blender::ed::curves {
 static bool has_surface_deformation_node(const bNodeTree &ntree)
 {
   LISTBASE_FOREACH (const bNode *, node, &ntree.nodes) {
-    if (node->type == GEO_NODE_DEFORM_CURVES_WITH_SURFACE) {
+    if (node->type == GEO_NODE_DEFORM_CURVES_ON_SURFACE) {
       return true;
     }
     if (node->type == NODE_GROUP) {
@@ -65,16 +65,16 @@ void ensure_surface_deformation_node_exists(bContext &C, Object &curves_ob)
   Scene *scene = CTX_data_scene(&C);
 
   ModifierData *md = ED_object_modifier_add(
-      nullptr, bmain, scene, &curves_ob, "Hair Deform", eModifierType_Nodes);
+      nullptr, bmain, scene, &curves_ob, "Surface Deform", eModifierType_Nodes);
   NodesModifierData &nmd = *reinterpret_cast<NodesModifierData *>(md);
-  nmd.node_group = ntreeAddTree(bmain, "Hair Deform", "GeometryNodeTree");
+  nmd.node_group = ntreeAddTree(bmain, "Surface Deform", "GeometryNodeTree");
 
   bNodeTree *ntree = nmd.node_group;
   ntreeAddSocketInterface(ntree, SOCK_IN, "NodeSocketGeometry", "Geometry");
   ntreeAddSocketInterface(ntree, SOCK_OUT, "NodeSocketGeometry", "Geometry");
   bNode *group_input = nodeAddStaticNode(&C, ntree, NODE_GROUP_INPUT);
   bNode *group_output = nodeAddStaticNode(&C, ntree, NODE_GROUP_OUTPUT);
-  bNode *deform_node = nodeAddStaticNode(&C, ntree, GEO_NODE_DEFORM_CURVES_WITH_SURFACE);
+  bNode *deform_node = nodeAddStaticNode(&C, ntree, GEO_NODE_DEFORM_CURVES_ON_SURFACE);
 
   ED_node_tree_propagate_change(&C, bmain, nmd.node_group);
 
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index 3af992da3ee..a68ef361f04 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -3583,8 +3583,8 @@ static void rna_def_object(BlenderRNA *brna)
   RNA_def_property_boolean_sdna(prop, NULL, "modifier_flag", OB_MODIFIER_FLAG_ADD_REST_POSITION);
   RNA_def_property_ui_text(prop,
                            "Add Rest Position",
-                           "Add a rest_position attribute that is a copy of the position "
-                           "attribute right before shape keys and modifiers are evaluated");
+                           "Add a \"rest_position\" attribute that is a copy of the position "
+                           "attribute before shape keys and modifiers are evaluated");
   RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_internal_update_data");
 
   /* render */
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc
index 02b146b85fb..a63a89e076b 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -191,7 +191,7 @@ static bool node_needs_own_transform_relation(const bNode &node)
     return storage.transform_space == GEO_NODE_TRANSFORM_SPACE_RELATIVE;
   }
 
-  if (node.type == GEO_NODE_DEFORM_CURVES_WITH_SURFACE) {
+  if (node.type == GEO_NODE_DEFORM_CURVES_ON_SURFACE) {
     return true;
   }
 
diff --git a/source/blender/nodes/NOD_geometry.h b/source/blender/nodes/NOD_geometry.h
index 567307ec1e6..86c276fbd6f 100644
--- a/source/blender/nodes/NOD_geometry.h
+++ b/source/blender/nodes/NOD_geometry.h
@@ -47,7 +47,7 @@ void register_node_type_geo_curve_subdivide(void);
 void register_node_type_geo_curve_to_mesh(void);
 void register_node_type_geo_curve_to_points(void);
 void register_node_type_geo_curve_trim(void);
-void register_node_type_geo_deform_curves_with_surface(void);
+void register_node_type_geo_deform_curves_on_surface(void);
 void register_node_type_geo_delete_geometry(void);
 void register_node_type_geo_duplicate_elements(void);
 void register_node_type_geo_distribute_points_on_faces(void);
diff --git a/source/blender/nodes/NOD_static_types.h b/source/blender/nodes/NOD_static_types.h
index f015e5b6c4a..7c7f114bb78 100644
--- a/source/blender/nodes/NOD_static_types.h
+++ b/source/blender/nodes/NOD_static_types.h
@@ -301,7 +301,7 @@ DefNode(GeometryNode, GEO_NODE_CURVE_SPLINE_PARAMETER, 0, "SPLINE_PARAMETER", Sp
 DefNode(GeometryNode, GEO_NODE_CURVE_SPLINE_TYPE, def_geo_curve_spline_type, "CURVE_SPLINE_TYPE", CurveSplineType, "Set Spline Type", "")
 DefNode(GeometryNode, GEO_NODE_CURVE_TO_MESH, 0, "CURVE_TO_MESH", CurveToMesh, "Curve to Mesh", "")
 DefNode(GeometryNode, GEO_NODE_CURVE_TO_POINTS, def_geo_curve_to_points, "CURVE_TO_POINTS", CurveToPoints, "Curve to Points", "")
-DefNode(GeometryNode, GEO_NODE_DEFORM_CURVES_WITH_SURFACE, 0, "DEFORM_CURVES_WITH_SURFACE", DeformCurvesWithSurface, "Deform Curves with Surface", "")
+DefNode(GeometryNode, GEO_NODE_DEFORM_CURVES_ON_SURFACE, 0, "DEFORM_CURVES_ON_SURFACE", DeformCurvesOnSurface, "Deform Curves on Surface", "")
 DefNode(GeometryNode, GEO_NODE_DELETE_GEOMETRY, def_geo_delete_geometry, "DELETE_GEOMETRY", DeleteGeometry, "Delete Geometry", "")
 DefNode(GeometryNode, GEO_NODE_DUPLICATE_ELEMENTS, def_geo_duplicate_elements, "DUPLICATE_ELEMENTS", DuplicateElements, "Duplicate Elements", "")
 DefNode(GeometryNode, GEO_NODE_DISTRIBUTE_POINTS_ON_FACES, def_geo_distribute_points_on_faces, "DISTRIBUTE_POINTS_ON_FACES", DistributePointsOnFaces, "Distribute Points on Faces", "")
diff --git a/source/blender/nodes/geometry/nodes/node_geo_deform_curves_with_surface.cc b/source/blender/nodes/geometry/nodes/node_geo_deform_curves_with_surface.cc
index 28501e4fb10..00866bca48f 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_deform_curves_with_surface.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_deform_curves_with_surface.cc
@@ -49,7 +49,7 @@ static void deform_curves(CurvesGeometry &curves,
                           const Span<float3> corner_normals_new,
                           const Span<float3> rest_positions,
                           const float4x4 &surface_to_curves,
-                          std::atomic<bool> &r_found_invalid_uv)
+                          std::atomic<int> &r_invalid_uv_count)
 {
   /* Find attachment points on old and new mesh. */
   const int curves_num = curves.curves_num();
@@ -67,12 +67,12 @@ static void deform_curves(CurvesGeometry &curves,
     for (const int curve_i : range) {
       const ReverseUVSampler::Result &surface_sample_old = surface_samples_old[curve_i];
       if (surface_sample_old.type != ReverseUVSampler::ResultType::Ok) {
-        r_found_invalid_uv.store(true);
+        r_invalid_uv_count++;
         continue;
       }
       const ReverseUVSampler::Result &surface_sample_new = surface_samples_new[curve_i];
       if (surface_sample_new.type != ReverseUVSampler::ResultType::Ok) {
-        r_found_invalid_uv.store(true);
+        r_invalid_uv_count++;
         continue;
       }
 
@@ -132,7 +132,7 @@ static void deform_curves(CurvesGeometry &curves,
        * computed based on the rest position attribute instead of positions on the old mesh. This
        * way the old and new tangent reference use the same topology.
        *
-       * Todo: Figure out if this can be smoothly interpolated across the surface as well.
+       * TODO: Figure out if this can be smoothly interpolated across the surface as well.
        * Currently, this is a source of discontinuity in the deformation, because the vector
        * changes intantly from one triangle to the next. */
       const float3 tangent_reference_dir_old = rest_pos_1 - rest_pos_0;
@@ -280,7 +280,7 @@ static void node_geo_exec(GeoNodeExecParams params)
       reinterpret_cast<const float3 *>(CustomData_get_layer(&surface_mesh_eval->ldata, CD_NORMAL)),
       surface_mesh_eval->totloop};
 
-  std::atomic<bool> found_invalid_uv = false;
+  std::atomic<int> invalid_uv_count = 0;
 
   const bke::CurvesSurfaceTransforms transforms{*self_ob_eval, surface_ob_eval};
 
@@ -294,12 +294,16 @@ static void node_geo_exec(GeoNodeExecParams params)
                 corner_normals_eval,
                 rest_positions,
                 transforms.surface_to_curves,
-                found_invalid_uv);
+                invalid_uv_count);
 
   curves.tag_positions_changed();
 
-  if (found_invalid_uv) {
-    params.error_message_add(NodeWarningType::Warning, "Invalid uvs found");
+  if (invalid_uv_count) {
+    char *error = BLI_sprintfN(
+        TIP_("Invalid surface attachment UV coordinates found on %d curves"),
+        invalid_uv_count.load());
+    params.error_message_add(NodeWarningType::Warning, error);
+    MEM_freeN(error);
   }
 
   params.set_output("Curves", curves_geometry);
@@ -307,16 +311,15 @@ static void node_geo_exec(GeoNodeExecParams params)
 
 }  // namespace blender::nodes::node_geo_deform_curves_with_surface_cc
 
-void register_node_type_geo_deform_curves_with_surface()
+void register_node_type_geo_deform_curves_on_surface()
 {
   namespace file_ns = blender::nodes::node_geo_deform_curves_with

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list