From 11f6c65e61a22ea9423962d6165f54ec29e221a8 Mon Sep 17 00:00:00 2001 From: Mattias Fredriksson Date: Wed, 9 Nov 2022 10:50:51 -0600 Subject: Geometry Nodes: Trim curve node selection input and corrections Correct trim for cyclical curves mentioned in T101379, splitting the curves if the start/endpoint is at the 'loop point'. Correct implementation based on comments in D14481, request was made to use 'foreach_curve_by_type' to computing the point lookups. Included corrections from D16066 as it may not be a adopted solution. Exposed selection input by adding it as input to the node. Note: This is disabled for 3.4 to avoid making UI changes in Bcon3. Differential Revision: https://developer.blender.org/D16161 --- source/blender/geometry/GEO_trim_curves.hh | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) (limited to 'source/blender/geometry/GEO_trim_curves.hh') diff --git a/source/blender/geometry/GEO_trim_curves.hh b/source/blender/geometry/GEO_trim_curves.hh index d2ff770f225..197ef79c25b 100644 --- a/source/blender/geometry/GEO_trim_curves.hh +++ b/source/blender/geometry/GEO_trim_curves.hh @@ -3,6 +3,7 @@ #pragma once #include "BLI_span.hh" +#include "DNA_node_types.h" #include "BKE_curves.hh" #include "BKE_curves_utils.hh" @@ -16,21 +17,8 @@ namespace blender::geometry { */ bke::CurvesGeometry trim_curves(const bke::CurvesGeometry &src_curves, IndexMask selection, - Span start_points, - Span end_points); - -/** - * Find the point(s) and piecewise segment corresponding to the given distance along the length of - * the curve. Returns points on the evaluated curve for Catmull-Rom and NURBS splines. - * - * \param curves: Curve geometry to sample. - * \param lengths: Distance along the curve on form [0.0, length] to determine the point for. - * \param curve_indices: Curve index to lookup for each 'length', negative index are set to 0. - * \param normalized_factors: If true, 'lengths' are normalized to the interval [0.0, 1.0]. - */ -Array lookup_curve_points(const bke::CurvesGeometry &curves, - Span lengths, - Span curve_indices, - bool normalized_factors); + const VArray &starts, + const VArray &ends, + GeometryNodeCurveSampleMode mode); } // namespace blender::geometry -- cgit v1.2.3