28 curves.curves_range(), grain_size, memory, [&](
const int curve_i) {
29 const IndexRange points = points_by_curve[curve_i];
30 for (const int point_i : points) {
31 if (selected[point_i]) {
41 const int amount_start,
51 .slice(points_by_curve[curve_i].drop_front(amount_start).drop_back(amount_end))
52 .fill(inverted ?
true :
false);
59 const int amount_start,
Low-level operations for curves.
static IndexMask from_bools(Span< bool > bools, IndexMaskMemory &memory)
static IndexMask from_predicate(const IndexMask &universe, GrainSize grain_size, IndexMaskMemory &memory, Fn &&predicate)
void to_bools(MutableSpan< bool > r_bools) const
void foreach_index(Fn &&fn) const
IndexMask curve_mask_from_points(const bke::CurvesGeometry &curves, const IndexMask &point_mask, const GrainSize grain_size, IndexMaskMemory &memory)
IndexMask end_points(const bke::CurvesGeometry &curves, const IndexMask &curves_mask, const int amount_start, const int amount_end, const bool inverted, IndexMaskMemory &memory)