This repository has been archived on 2023-10-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
blender-archive/source/blender/geometry/GEO_trim_curves.hh
Hans Goudey 548a2cbe06 Cleanup: Clang tidy
Also remove unnecessary struct keywords in C++ files.
2022-10-05 13:48:01 -05:00

37 lines
1.5 KiB
C++

/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#include "BLI_span.hh"
#include "BKE_curves.hh"
#include "BKE_curves_utils.hh"
#include "BKE_geometry_set.hh"
namespace blender::geometry {
/*
* Create a new Curves instance by trimming the input curves. Copying the selected splines
* between the start and end points.
*/
bke::CurvesGeometry trim_curves(const bke::CurvesGeometry &src_curves,
IndexMask selection,
Span<bke::curves::CurvePoint> start_points,
Span<bke::curves::CurvePoint> 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<bke::curves::CurvePoint, 12> lookup_curve_points(const bke::CurvesGeometry &curves,
Span<float> lengths,
Span<int64_t> curve_indices,
bool normalized_factors);
} // namespace blender::geometry