[Bf-blender-cvs] [400ea40dca7] master: Curves: Port curves total length node to the new data-block
Hans Goudey
noreply at git.blender.org
Wed Mar 30 03:24:55 CEST 2022
Commit: 400ea40dca7a9be5fd2c1974c1c542d896621d67
Author: Hans Goudey
Date: Tue Mar 29 20:24:41 2022 -0500
Branches: master
https://developer.blender.org/rB400ea40dca7a9be5fd2c1974c1c542d896621d67
Curves: Port curves total length node to the new data-block
Ref T95443
===================================================================
M source/blender/nodes/geometry/nodes/node_geo_curve_length.cc
===================================================================
diff --git a/source/blender/nodes/geometry/nodes/node_geo_curve_length.cc b/source/blender/nodes/geometry/nodes/node_geo_curve_length.cc
index d5769c691c8..11eb472a6e2 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_curve_length.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_curve_length.cc
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
-#include "BKE_spline.hh"
+#include "BKE_curves.hh"
+
#include "node_geometry_util.hh"
namespace blender::nodes::node_geo_curve_length_cc {
@@ -18,11 +19,18 @@ static void node_geo_exec(GeoNodeExecParams params)
params.set_default_remaining_outputs();
return;
}
- const std::unique_ptr<CurveEval> curve = curves_to_curve_eval(*curve_set.get_curves_for_read());
+
+ const Curves &curves_id = *curve_set.get_curves_for_read();
+ const bke::CurvesGeometry &curves = bke::CurvesGeometry::wrap(curves_id.geometry);
+ const VArray<bool> cyclic = curves.cyclic();
+
+ curves.ensure_evaluated_lengths();
+
float length = 0.0f;
- for (const SplinePtr &spline : curve->splines()) {
- length += spline->length();
+ for (const int i : curves.curves_range()) {
+ length += curves.evaluated_length_total_for_curve(i, cyclic[i]);
}
+
params.set_output("Length", length);
}
More information about the Bf-blender-cvs
mailing list