Blender V4.3
trim_curves.cc File Reference

Go to the source code of this file.

Namespaces

namespace  blender
 
namespace  blender::geometry
 

Functions

bke::CurvesGeometry blender::geometry::trim_curves (const bke::CurvesGeometry &src_curves, const IndexMask &selection, const VArray< float > &starts, const VArray< float > &ends, GeometryNodeCurveSampleMode mode, const bke::AttributeFilter &attribute_filter)
 
Lookup Curve Points
static bke::curves::CurvePoint blender::geometry::lookup_point_uniform_spacing (const Span< float > lengths, const float sample_length, const bool cyclic, const int resolution, const int num_curve_points)
 
static bke::curves::CurvePoint blender::geometry::lookup_point_polygonal (const Span< float > lengths, const float sample_length, const bool cyclic, const int evaluated_size)
 
static bke::curves::CurvePoint blender::geometry::lookup_point_bezier (const Span< int > bezier_offsets, const Span< float > lengths, const float sample_length, const bool cyclic, const int num_curve_points)
 
static bke::curves::CurvePoint blender::geometry::lookup_point_bezier (const bke::CurvesGeometry &src_curves, const OffsetIndices< int > evaluated_points_by_curve, const int64_t curve_index, const Span< float > accumulated_lengths, const float sample_length, const bool cyclic, const int resolution, const int num_curve_points)
 
static bke::curves::CurvePoint blender::geometry::lookup_curve_point (const bke::CurvesGeometry &src_curves, const OffsetIndices< int > evaluated_points_by_curve, const CurveType curve_type, const int64_t curve_index, const Span< float > accumulated_lengths, const float sample_length, const bool cyclic, const int resolution, const int num_curve_points)
 
Utility Functions
static void blender::geometry::fill_bezier_data (bke::CurvesGeometry &dst_curves, const IndexMask &selection)
 
static void blender::geometry::fill_nurbs_data (bke::CurvesGeometry &dst_curves, const IndexMask &selection)
 
template<typename T >
static int64_t blender::geometry::copy_point_data_between_endpoints (const Span< T > src_data, MutableSpan< T > dst_data, const bke::curves::IndexRangeCyclic src_range, int64_t dst_index)
 
Sampling Utilities
template<typename T >
static T blender::geometry::interpolate_catmull_rom (const Span< T > src_data, const bke::curves::CurvePoint insertion_point, const bool src_cyclic)
 
static bke::curves::bezier::Insertion blender::geometry::knot_insert_bezier (const Span< float3 > positions, const Span< float3 > handles_left, const Span< float3 > handles_right, const bke::curves::CurvePoint insertion_point)
 
Sample Curve Interval (Trim)
template<typename T , bool include_start_point = true>
static void blender::geometry::sample_interval_linear (const Span< T > src_data, MutableSpan< T > dst_data, bke::curves::IndexRangeCyclic src_range, const IndexRange dst_range, const bke::curves::CurvePoint start_point, const bke::curves::CurvePoint end_point)
 
template<typename T >
static void blender::geometry::sample_interval_catmull_rom (const Span< T > src_data, MutableSpan< T > dst_data, bke::curves::IndexRangeCyclic src_range, const IndexRange dst_range, const bke::curves::CurvePoint start_point, const bke::curves::CurvePoint end_point, const bool src_cyclic)
 
template<bool include_start_point = true>
static void blender::geometry::sample_interval_bezier (const Span< float3 > src_positions, const Span< float3 > src_handles_l, const Span< float3 > src_handles_r, const Span< int8_t > src_types_l, const Span< int8_t > src_types_r, MutableSpan< float3 > dst_positions, MutableSpan< float3 > dst_handles_l, MutableSpan< float3 > dst_handles_r, MutableSpan< int8_t > dst_types_l, MutableSpan< int8_t > dst_types_r, bke::curves::IndexRangeCyclic src_range, const IndexRange dst_range, const bke::curves::CurvePoint start_point, const bke::curves::CurvePoint end_point)
 
Trim Curves
static void blender::geometry::trim_attribute_linear (const bke::CurvesGeometry &src_curves, bke::CurvesGeometry &dst_curves, const IndexMask &selection, const Span< bke::curves::CurvePoint > start_points, const Span< bke::curves::CurvePoint > end_points, const Span< bke::curves::IndexRangeCyclic > src_ranges, MutableSpan< bke::AttributeTransferData > transfer_attributes)
 
static void blender::geometry::trim_polygonal_curves (const bke::CurvesGeometry &src_curves, bke::CurvesGeometry &dst_curves, const IndexMask &selection, const Span< bke::curves::CurvePoint > start_points, const Span< bke::curves::CurvePoint > end_points, const Span< bke::curves::IndexRangeCyclic > src_ranges, MutableSpan< bke::AttributeTransferData > transfer_attributes)
 
static void blender::geometry::trim_catmull_rom_curves (const bke::CurvesGeometry &src_curves, bke::CurvesGeometry &dst_curves, const IndexMask &selection, const Span< bke::curves::CurvePoint > start_points, const Span< bke::curves::CurvePoint > end_points, const Span< bke::curves::IndexRangeCyclic > src_ranges, MutableSpan< bke::AttributeTransferData > transfer_attributes)
 
static void blender::geometry::trim_bezier_curves (const bke::CurvesGeometry &src_curves, bke::CurvesGeometry &dst_curves, const IndexMask &selection, const Span< bke::curves::CurvePoint > start_points, const Span< bke::curves::CurvePoint > end_points, const Span< bke::curves::IndexRangeCyclic > src_ranges, MutableSpan< bke::AttributeTransferData > transfer_attributes)
 
static void blender::geometry::trim_evaluated_curves (const bke::CurvesGeometry &src_curves, bke::CurvesGeometry &dst_curves, const IndexMask &selection, const Span< bke::curves::CurvePoint > start_points, const Span< bke::curves::CurvePoint > end_points, const Span< bke::curves::IndexRangeCyclic > src_ranges, MutableSpan< bke::AttributeTransferData > transfer_attributes)
 
Compute trim parameters
static float blender::geometry::trim_sample_length (const Span< float > accumulated_lengths, const float sample_length, const GeometryNodeCurveSampleMode mode)
 
static void blender::geometry::compute_curve_trim_parameters (const bke::CurvesGeometry &curves, const IndexMask &selection, const VArray< float > &starts, const VArray< float > &ends, const GeometryNodeCurveSampleMode mode, MutableSpan< int > dst_curve_size, MutableSpan< bke::curves::CurvePoint > start_points, MutableSpan< bke::curves::CurvePoint > end_points, MutableSpan< bke::curves::IndexRangeCyclic > src_ranges)