[Bf-blender-cvs] [b215fe82e8d] master: Cleanup: Further simplification of loop syntax for curve segments

Hans Goudey noreply at git.blender.org
Fri May 20 16:01:25 CEST 2022


Commit: b215fe82e8d422bb537797146a5d5e7be1eefb91
Author: Hans Goudey
Date:   Fri May 20 16:00:26 2022 +0200
Branches: master
https://developer.blender.org/rBb215fe82e8d422bb537797146a5d5e7be1eefb91

Cleanup: Further simplification of loop syntax for curve segments

The same changes as 019681b9841d7e34bac56211d645cf0497f8e9cf.

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

M	source/blender/editors/sculpt_paint/curves_sculpt_add.cc
M	source/blender/editors/sculpt_paint/curves_sculpt_brush.cc
M	source/blender/editors/sculpt_paint/curves_sculpt_grow_shrink.cc

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

diff --git a/source/blender/editors/sculpt_paint/curves_sculpt_add.cc b/source/blender/editors/sculpt_paint/curves_sculpt_add.cc
index db9afe878cc..d7f4b71d2d0 100644
--- a/source/blender/editors/sculpt_paint/curves_sculpt_add.cc
+++ b/source/blender/editors/sculpt_paint/curves_sculpt_add.cc
@@ -700,10 +700,9 @@ struct AddOperationExecutor {
         for (const NeighborInfo &neighbor : neighbors) {
           const IndexRange neighbor_points = curves_->points_for_curve(neighbor.index);
           float neighbor_length = 0.0f;
-          const int tot_segments = neighbor_points.size() - 1;
-          for (const int segment_i : IndexRange(tot_segments)) {
-            const float3 &p1 = positions_cu[neighbor_points[segment_i]];
-            const float3 &p2 = positions_cu[neighbor_points[segment_i] + 1];
+          for (const int segment_i : neighbor_points.drop_back(1)) {
+            const float3 &p1 = positions_cu[segment_i];
+            const float3 &p2 = positions_cu[segment_i + 1];
             neighbor_length += math::distance(p1, p2);
           }
           length_sum += neighbor.weight * neighbor_length;
diff --git a/source/blender/editors/sculpt_paint/curves_sculpt_brush.cc b/source/blender/editors/sculpt_paint/curves_sculpt_brush.cc
index 9ebbf72806e..83e0d493d00 100644
--- a/source/blender/editors/sculpt_paint/curves_sculpt_brush.cc
+++ b/source/blender/editors/sculpt_paint/curves_sculpt_brush.cc
@@ -94,11 +94,10 @@ static std::optional<float3> find_curves_brush_position(const CurvesGeometry &cu
 
         for (const int curve_i : curves_range) {
           const IndexRange points = curves.points_for_curve(curve_i);
-          const int tot_segments = points.size() - 1;
 
-          for (const int segment_i : IndexRange(tot_segments)) {
-            const float3 &p1_cu = positions[points[segment_i]];
-            const float3 &p2_cu = positions[points[segment_i] + 1];
+          for (const int segment_i : points.drop_back(1)) {
+            const float3 &p1_cu = positions[segment_i];
+            const float3 &p2_cu = positions[segment_i + 1];
 
             float2 p1_re, p2_re;
             ED_view3d_project_float_v2_m4(&region, p1_cu, p1_re, projection.values);
diff --git a/source/blender/editors/sculpt_paint/curves_sculpt_grow_shrink.cc b/source/blender/editors/sculpt_paint/curves_sculpt_grow_shrink.cc
index 16df721a853..c864fb0c59f 100644
--- a/source/blender/editors/sculpt_paint/curves_sculpt_grow_shrink.cc
+++ b/source/blender/editors/sculpt_paint/curves_sculpt_grow_shrink.cc
@@ -390,13 +390,12 @@ struct CurvesEffectOperationExecutor {
 
       for (const int curve_i : curves_range) {
         const IndexRange points = curves_->points_for_curve(curve_i);
-        const int tot_segments = points.size() - 1;
-        float max_move_distance_cu = 0.0f;
 
+        float max_move_distance_cu = 0.0f;
         for (const float4x4 &brush_transform_inv : symmetry_brush_transforms_inv) {
-          for (const int segment_i : IndexRange(tot_segments)) {
-            const float3 &p1_cu = brush_transform_inv * positions_cu[points[segment_i]];
-            const float3 &p2_cu = brush_transform_inv * positions_cu[points[segment_i] + 1];
+          for (const int segment_i : points.drop_back(1)) {
+            const float3 p1_cu = brush_transform_inv * positions_cu[segment_i];
+            const float3 p2_cu = brush_transform_inv * positions_cu[segment_i + 1];
 
             float2 p1_re, p2_re;
             ED_view3d_project_float_v2_m4(region_, p1_cu, p1_re, projection.values);
@@ -485,15 +484,15 @@ struct CurvesEffectOperationExecutor {
 
       for (const int curve_i : curves_range) {
         const IndexRange points = curves_->points_for_curve(curve_i);
-        const int tot_segments = points.size() - 1;
+
         float max_move_distance_cu = 0.0f;
         for (const float4x4 &brush_transform : symmetry_brush_transforms) {
           const float3 brush_pos_start_transformed_cu = brush_transform * brush_pos_start_cu;
           const float3 brush_pos_end_transformed_cu = brush_transform * brush_pos_end_cu;
 
-          for (const int segment_i : IndexRange(tot_segments)) {
-            const float3 &p1_cu = positions_cu[points[segment_i]];
-            const float3 &p2_cu = positions_cu[points[segment_i] + 1];
+          for (const int segment_i : points.drop_back(1)) {
+            const float3 &p1_cu = positions_cu[segment_i];
+            const float3 &p2_cu = positions_cu[segment_i + 1];
 
             float3 closest_on_segment_cu;
             float3 closest_on_brush_cu;



More information about the Bf-blender-cvs mailing list