Blender V4.5
blender::bke::curves Namespace Reference

Namespaces

namespace  nurbs
namespace  poly
namespace  bezier
namespace  catmull_rom

Classes

struct  CurvePoint
struct  CurveSegment
class  CurvesVertexGroupsAttributeProvider
class  IndexRangeCyclic

Functions

const AttributeAccessorFunctionsget_attribute_accessor_functions ()
static void tag_component_topology_changed (void *owner)
static void tag_component_curve_types_changed (void *owner)
static void tag_component_positions_changed (void *owner)
static void tag_component_radii_changed (void *owner)
static void tag_component_normals_changed (void *owner)
static void tag_component_material_index_changed (void *owner)
static GeometryAttributeProviders create_attribute_providers_for_curve ()
static AttributeAccessorFunctions get_curves_accessor_functions ()
static void if_has_data_call_callback (const Span< int > offset_data, const int begin, const int end, UnselectedCallback callback)
template<typename Fn>
static void foreach_selected_point_ranges_per_curve_ (const IndexMask &mask, const OffsetIndices< int > points_by_curve, SelectedCallback selected_fn, Fn unselected_fn)
Inline Curve Methods
int segments_num (const int points_num, const bool cyclic)
float2 encode_surface_bary_coord (const float3 &v)
float3 decode_surface_bary_coord (const float2 &v)
IndexRange per_curve_point_offsets_range (const IndexRange points, const int curve_index)

Utility Functions

using SelectedCallback
using UnselectedCallback = FunctionRef<void(IndexRange curves, IndexRange unselected_points)>
IndexMask curve_to_point_selection (OffsetIndices< int > points_by_curve, const IndexMask &curve_selection, IndexMaskMemory &memory)
void fill_points (OffsetIndices< int > points_by_curve, const IndexMask &curve_selection, GPointer value, GMutableSpan dst)
template<typename T>
void fill_points (const OffsetIndices< int > points_by_curve, const IndexMask &curve_selection, const T &value, MutableSpan< T > dst)
bke::CurvesGeometry copy_only_curve_domain (const bke::CurvesGeometry &src_curves)
IndexMask indices_for_type (const VArray< int8_t > &types, const std::array< int, CURVE_TYPES_NUM > &type_counts, const CurveType type, const IndexMask &selection, IndexMaskMemory &memory)
void foreach_curve_by_type (const VArray< int8_t > &types, const std::array< int, CURVE_TYPES_NUM > &type_counts, const IndexMask &selection, FunctionRef< void(IndexMask)> catmull_rom_fn, FunctionRef< void(IndexMask)> poly_fn, FunctionRef< void(IndexMask)> bezier_fn, FunctionRef< void(IndexMask)> nurbs_fn)
void foreach_selected_point_ranges_per_curve (const IndexMask &mask, const OffsetIndices< int > points_by_curve, SelectedCallback selected_fn)
void foreach_selected_point_ranges_per_curve (const IndexMask &mask, const OffsetIndices< int > points_by_curve, SelectedCallback selected_fn, UnselectedCallback unselected_fn)

Typedef Documentation

◆ SelectedCallback

Initial value:

Definition at line 511 of file BKE_curves_utils.hh.

◆ UnselectedCallback

Definition at line 513 of file BKE_curves_utils.hh.

Function Documentation

◆ copy_only_curve_domain()

CurvesGeometry blender::bke::curves::copy_only_curve_domain ( const bke::CurvesGeometry & src_curves)

◆ create_attribute_providers_for_curve()

◆ curve_to_point_selection()

◆ decode_surface_bary_coord()

float3 blender::bke::curves::decode_surface_bary_coord ( const float2 & v)
inline

Definition at line 572 of file BKE_curves.hh.

References decode_surface_bary_coord(), and v.

Referenced by decode_surface_bary_coord().

◆ encode_surface_bary_coord()

float2 blender::bke::curves::encode_surface_bary_coord ( const float3 & v)
inline

Definition at line 566 of file BKE_curves.hh.

References BLI_assert, encode_surface_bary_coord(), and v.

Referenced by encode_surface_bary_coord().

◆ fill_points() [1/2]

template<typename T>
void blender::bke::curves::fill_points ( const OffsetIndices< int > points_by_curve,
const IndexMask & curve_selection,
const T & value,
MutableSpan< T > dst )

Definition at line 478 of file BKE_curves_utils.hh.

References fill_points(), and T.

◆ fill_points() [2/2]

◆ foreach_curve_by_type()

◆ foreach_selected_point_ranges_per_curve() [1/2]

void blender::bke::curves::foreach_selected_point_ranges_per_curve ( const IndexMask & mask,
const OffsetIndices< int > points_by_curve,
SelectedCallback selected_fn )

Calls callback function for each curve having selected points.

Parameters
maskselected points.
points_by_curveThe offsets of every curve into arrays on the points domain.
selected_fncallback function called for each curve with at least one point selected.

Definition at line 147 of file curves_utils.cc.

References foreach_selected_point_ranges_per_curve(), foreach_selected_point_ranges_per_curve_(), and mask().

Referenced by blender::ed::curves::calc_curves_extrusion(), blender::bke::copy_point_selection_custom_knots(), blender::ed::curves::duplicate_points(), foreach_selected_point_ranges_per_curve(), foreach_selected_point_ranges_per_curve(), blender::ed::curves::separate_points(), and blender::ed::curves::split_points().

◆ foreach_selected_point_ranges_per_curve() [2/2]

void blender::bke::curves::foreach_selected_point_ranges_per_curve ( const IndexMask & mask,
const OffsetIndices< int > points_by_curve,
SelectedCallback selected_fn,
UnselectedCallback unselected_fn )

Calls callback function for each curve having selected points. Calls second callback for groups of curves with no points selected.

Parameters
maskselected points.
points_by_curveThe offsets of every curve into arrays on the points domain.
selected_fncallback function called for each curve with at least one point selected.
unselected_fncallback function called for groups of curves with no selected points.

Definition at line 154 of file curves_utils.cc.

References foreach_selected_point_ranges_per_curve(), foreach_selected_point_ranges_per_curve_(), and mask().

◆ foreach_selected_point_ranges_per_curve_()

◆ get_attribute_accessor_functions()

◆ get_curves_accessor_functions()

◆ if_has_data_call_callback()

void blender::bke::curves::if_has_data_call_callback ( const Span< int > offset_data,
const int begin,
const int end,
UnselectedCallback callback )
static

◆ indices_for_type()

◆ per_curve_point_offsets_range()

IndexRange blender::bke::curves::per_curve_point_offsets_range ( const IndexRange points,
const int curve_index )
inline

◆ segments_num()

int blender::bke::curves::segments_num ( const int points_num,
const bool cyclic )
inline

◆ tag_component_curve_types_changed()

void blender::bke::curves::tag_component_curve_types_changed ( void * owner)
static

◆ tag_component_material_index_changed()

void blender::bke::curves::tag_component_material_index_changed ( void * owner)
static

◆ tag_component_normals_changed()

void blender::bke::curves::tag_component_normals_changed ( void * owner)
static

◆ tag_component_positions_changed()

void blender::bke::curves::tag_component_positions_changed ( void * owner)
static

◆ tag_component_radii_changed()

void blender::bke::curves::tag_component_radii_changed ( void * owner)
static

◆ tag_component_topology_changed()

void blender::bke::curves::tag_component_topology_changed ( void * owner)
static