Blender V4.5
blender::bke::CurvesGeometry Class Reference

#include <BKE_curves.hh>

Inherits CurvesGeometry.

Classes

struct  BlendWriteData
 

Public Member Functions

template<typename T >
VArray< Tadapt_domain (const VArray< T > &varray, AttrDomain from, AttrDomain to) const
 
Constructors/Destructor
 CurvesGeometry ()
 
 CurvesGeometry (int point_num, int curve_num)
 
 CurvesGeometry (const CurvesGeometry &other)
 
 CurvesGeometry (CurvesGeometry &&other)
 
CurvesGeometryoperator= (const CurvesGeometry &other)
 
CurvesGeometryoperator= (CurvesGeometry &&other)
 
 ~CurvesGeometry ()
 
Accessors
Span< int > offsets () const
 
MutableSpan< int > offsets_for_write ()
 
VArray< int8_tcurve_types () const
 
MutableSpan< int8_tcurve_types_for_write ()
 
void fill_curve_types (CurveType type)
 
void fill_curve_types (const IndexMask &selection, CurveType type)
 
void update_curve_types ()
 
Span< float3positions () const
 
MutableSpan< float3positions_for_write ()
 
VArray< float > radius () const
 
MutableSpan< float > radius_for_write ()
 
VArray< bool > cyclic () const
 
MutableSpan< bool > cyclic_for_write ()
 
VArray< int > resolution () const
 
MutableSpan< int > resolution_for_write ()
 
VArray< float > tilt () const
 
MutableSpan< float > tilt_for_write ()
 
VArray< int8_tnormal_mode () const
 
MutableSpan< int8_tnormal_mode_for_write ()
 
VArray< int8_thandle_types_left () const
 
MutableSpan< int8_thandle_types_left_for_write ()
 
VArray< int8_thandle_types_right () const
 
MutableSpan< int8_thandle_types_right_for_write ()
 
Span< float3handle_positions_left () const
 
MutableSpan< float3handle_positions_left_for_write ()
 
Span< float3handle_positions_right () const
 
MutableSpan< float3handle_positions_right_for_write ()
 
VArray< int8_tnurbs_orders () const
 
MutableSpan< int8_tnurbs_orders_for_write ()
 
VArray< int8_tnurbs_knots_modes () const
 
MutableSpan< int8_tnurbs_knots_modes_for_write ()
 
Span< float > nurbs_weights () const
 
MutableSpan< float > nurbs_weights_for_write ()
 
Span< float2surface_uv_coords () const
 
MutableSpan< float2surface_uv_coords_for_write ()
 
Span< float > nurbs_custom_knots () const
 
MutableSpan< float > nurbs_custom_knots_for_write ()
 
OffsetIndices< int > nurbs_custom_knots_by_curve () const
 
IndexMask nurbs_custom_knot_curves (IndexMaskMemory &memory) const
 
void nurbs_custom_knots_update_size ()
 
void nurbs_custom_knots_resize (int knots_num)
 
Span< MDeformVertdeform_verts () const
 
MutableSpan< MDeformVertdeform_verts_for_write ()
 
Operations
std::optional< Bounds< float3 > > bounds_min_max (bool use_radius=true) const
 
void count_memory (MemoryCounter &memory) const
 
std::optional< int > material_index_max () const
 
void resize (int points_num, int curves_num)
 
void tag_positions_changed ()
 
void tag_topology_changed ()
 
void tag_normals_changed ()
 
void tag_radii_changed ()
 
void tag_material_index_changed ()
 
void translate (const float3 &translation)
 
void transform (const float4x4 &matrix)
 
void calculate_bezier_auto_handles ()
 
void remove_points (const IndexMask &points_to_delete, const AttributeFilter &attribute_filter)
 
void remove_curves (const IndexMask &curves_to_delete, const AttributeFilter &attribute_filter)
 
void reverse_curves (const IndexMask &curves_to_reverse)
 
void remove_attributes_based_on_types ()
 
Domain Interpolation
AttributeAccessor attributes () const
 
MutableAttributeAccessor attributes_for_write ()
 
GVArray adapt_domain (const GVArray &varray, AttrDomain from, AttrDomain to) const
 
File reading/writing.
void blend_read (BlendDataReader &reader)
 
void blend_write_prepare (BlendWriteData &write_data)
 
void blend_write (BlendWriter &writer, ID &id, const BlendWriteData &write_data)
 

#CurvesGeometry Inline Methods

int points_num () const
 
int curves_num () const
 
bool is_empty () const
 
IndexRange points_range () const
 
IndexRange curves_range () const
 
OffsetIndices< int > points_by_curve () const
 
bool has_curve_with_type (CurveType type) const
 
bool has_curve_with_type (Span< CurveType > types) const
 
bool is_single_type (CurveType type) const
 
const std::array< int, CURVE_TYPES_NUM > & curve_type_counts () const
 
bool nurbs_has_custom_knots () const
 
int evaluated_points_num () const
 
Span< int > bezier_evaluated_offsets_for_curve (int curve_index) const
 
Span< float > evaluated_lengths_for_curve (int curve_index, bool cyclic) const
 
float evaluated_length_total_for_curve (int curve_index, bool cyclic) const
 

Evaluation

IndexMask indices_for_curve_type (CurveType type, IndexMaskMemory &memory) const
 
IndexMask indices_for_curve_type (CurveType type, const IndexMask &selection, IndexMaskMemory &memory) const
 
Array< int > point_to_curve_map () const
 
OffsetIndices< int > evaluated_points_by_curve () const
 
Span< float3evaluated_positions () const
 
Span< float3evaluated_tangents () const
 
Span< float3evaluated_normals () const
 
void ensure_evaluated_lengths () const
 
void ensure_can_interpolate_to_evaluated () const
 
void interpolate_to_evaluated (int curve_index, GSpan src, GMutableSpan dst) const
 
void interpolate_to_evaluated (GSpan src, GMutableSpan dst) const
 

Additional Inherited Members

- Public Attributes inherited from CurvesGeometry
int * curve_offsets
 
struct AttributeStorage attribute_storage
 
CustomData point_data
 
CustomData curve_data
 
int point_num
 
int curve_num
 
ListBase vertex_group_names
 
int vertex_group_active_index
 
int attributes_active_index
 
CurvesGeometryRuntimeHandleruntime
 
float * custom_knots
 
int custom_knot_num
 
char _pad [4]
 

Detailed Description

A C++ class that wraps the DNA struct for better encapsulation and ease of use. It inherits directly from the struct rather than storing a pointer to avoid more complicated ownership handling.

Definition at line 152 of file BKE_curves.hh.

Constructor & Destructor Documentation

◆ CurvesGeometry() [1/4]

CurvesGeometry::CurvesGeometry ( )

Definition at line 62 of file curves_geometry.cc.

Referenced by operator=(), and operator=().

◆ CurvesGeometry() [2/4]

◆ CurvesGeometry() [3/4]

◆ CurvesGeometry() [4/4]

◆ ~CurvesGeometry()

Member Function Documentation

◆ adapt_domain() [1/2]

◆ adapt_domain() [2/2]

template<typename T >
VArray< T > blender::bke::CurvesGeometry::adapt_domain ( const VArray< T > & varray,
AttrDomain from,
AttrDomain to ) const
inline

Definition at line 486 of file BKE_curves.hh.

References adapt_domain(), from, and blender::GVArray::typed().

◆ attributes()

AttributeAccessor CurvesGeometry::attributes ( ) const

Definition at line 1845 of file curves_geometry.cc.

Referenced by blender::bke::greasepencil::assign_to_vertex_group(), attr_create_generic(), blender::bke::GeometryFieldContext::attributes(), blender::ed::greasepencil::bake_grease_pencil_animation_exec(), BKE_grease_pencil_material_index_used(), blender::build_concurrent(), blender::bke::build_mesh_positions(), blender::ed::spreadsheet::GreasePencilLayerCurvesDomainViewItem::build_row(), blender::build_sequential(), blender::bke::compare_geometry::compare_curves(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::geometry::copy_and_reorder_curves(), blender::nodes::node_geo_duplicate_elements_cc::copy_curve_attributes_without_id(), blender::ed::curves::copy_data_to_geometry(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_curves(), blender::ed::greasepencil::create_curves_outline(), blender::create_dashes(), blender::draw::create_edit_points_data(), blender::create_envelope_strokes(), blender::draw::curve_create_attribute(), blender::bke::curve_normal_point_domain(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::bke::curve_to_mesh_sweep(), blender::bke::curves_copy_curve_selection(), blender::ed::greasepencil::curves_geometry_is_equal(), blender::ed::greasepencil::curves_merge_endpoints_by_distance(), blender::draw::curves_sub_pass_setup_implementation(), blender::nodes::node_geo_curve_to_points_cc::curves_to_points(), blender::bke::CurvesFieldContext::CurvesFieldContext(), blender::deform_drawing_as_envelope(), blender::draw::overlay::GreasePencil::draw_grease_pencil(), blender::ed::greasepencil::image_render::draw_grease_pencil_strokes(), blender::draw::DRW_curves_batch_cache_create_requested(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_CurvesGeometry(), ed_curves_select_pick(), blender::draw::ensure_control_point_attribute(), blender::ed::sculpt_paint::AddOperationExecutor::execute(), blender::ed::sculpt_paint::CombOperationExecutor::execute(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::execute(), blender::ed::sculpt_paint::PinchOperationExecutor::execute(), blender::ed::sculpt_paint::PuffOperationExecutor::execute(), blender::ed::sculpt_paint::SlideOperationExecutor::execute(), blender::ed::sculpt_paint::SmoothOperationExecutor::execute(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::execute(), export_hair_curves(), export_hair_curves_motion(), blender::geometry::extend_curves(), blender::geometry::extract_curves(), blender::geometry::extract_curves_points(), blender::geometry::extract_greasepencil_layer_curves(), blender::geometry::extract_greasepencil_layer_points(), blender::ed::curves::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::geometry::fillet_curves(), blender::io::grease_pencil::GreasePencilExporter::foreach_stroke_in_layer(), blender::geometry::gather_curve_attributes_to_interpolate(), blender::geometry::gather_point_attributes_to_interpolate(), blender::geometry::gather_point_attributes_to_interpolate(), blender::ed::greasepencil::get_boundary_bounds(), blender::get_build_factor(), blender::ed::curves::get_curves_bezier_selection_attribute_names(), blender::get_factor_from_draw_speed(), blender::modifier::greasepencil::get_filtered_stroke_mask(), blender::modifier::greasepencil::get_influence_vertex_weights(), blender::ed::greasepencil::get_points_to_dissolve(), blender::ed::sculpt_paint::greasepencil::get_single_stroke(), blender::bke::AttributeExistsFieldInput::get_varray_for_context(), blender::nodes::node_geo_input_curve_handles_cc::HandlePositionFieldInput::get_varray_for_context(), blender::nodes::node_geo_material_selection_cc::MaterialSelectionFieldInput::get_varray_for_context(), blender::ed::greasepencil::get_visible_boundary_strokes(), blender::ed::greasepencil::gpencil_stroke_subdivide_exec(), blender::ed::sculpt_paint::grease_pencil_apply_fill(), blender::ed::greasepencil::grease_pencil_cyclical_set_exec(), blender::draw::grease_pencil_edit_batch_ensure(), blender::draw::grease_pencil_geom_batch_ensure(), blender::ed::greasepencil::grease_pencil_set_active_material_exec(), blender::ed::greasepencil::grease_pencil_stroke_smooth_exec(), blender::ed::greasepencil::grease_pencil_texture_gradient_exec(), blender::draw::grease_pencil_weight_batch_ensure(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::hard_eraser(), blender::ed::curves::has_anything_selected(), blender::ed::curves::has_anything_selected(), blender::ed::curves::has_anything_selected(), blender::ed::sculpt_paint::greasepencil::GreasePencilStrokeOperationCommon::init_auto_masking(), blender::geometry::initialize_curves_builtin_attribute_defaults(), blender::ed::greasepencil::insert_selected_values(), blender::nodes::node_geo_interpolate_curves_cc::interpolate_curve_attributes(), blender::geometry::join_curves_ranges(), blender::ed::object::mesh_data_to_grease_pencil(), blender::modify_curves(), blender::modify_fill_color(), blender::modify_stroke_color(), blender::modify_stroke_color(), blender::nodes::node_geo_deform_curves_on_surface_cc::node_geo_exec(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::nodes::node_geo_set_curve_handles_cc::node_geo_exec(), blender::nodes::node_geo_set_grease_pencil_color_cc::node_geo_exec(), obedit_circle_select(), blender::draw::overlay::AttributeTexts::object_sync(), blender::ed::sculpt_paint::greasepencil::EraseOperation::on_stroke_done(), blender::geometry::preprocess_curves(), blender::bke::remember_deformed_curve_positions_if_necessary(), blender::bke::remember_deformed_grease_pencil_if_necessary(), blender::ed::greasepencil::remove_fill_guides(), blender::bke::greasepencil::remove_from_vertex_group(), blender::geometry::remove_points_and_split(), blender::ed::curves::remove_selection(), blender::ed::greasepencil::render_strokes(), blender::geometry::reorder_and_flip_curves(), blender::reorder_cyclic_curve_points(), blender::draw::request_attribute(), blender::ed::curves::resize_curves(), blender::geometry::retrieve_attribute_spans(), blender::geometry::retrieve_attribute_spans(), blender::ed::greasepencil::retrieve_editable_fill_strokes(), blender::ed::greasepencil::retrieve_editable_points(), blender::ed::greasepencil::retrieve_editable_strokes(), blender::ed::greasepencil::retrieve_editable_strokes_by_material(), blender::ed::curves::retrieve_selected_curves(), blender::ed::curves::retrieve_selected_points(), blender::ed::greasepencil::retrieve_visible_bezier_handle_points(), blender::ed::greasepencil::retrieve_visible_points(), blender::ed::greasepencil::retrieve_visible_strokes(), blender::ed::curves::select_adjacent_mask(), blender::ed::curves::select_all(), blender::ed::curves::select_all(), blender::ed::sculpt_paint::select_grow::select_grow_invoke_per_curve(), blender::ed::curves::select_random_exec(), blender::ed::greasepencil::select_similar_by_value(), blender::geometry::separate_curves_selection(), blender::bke::bake::serialize_curves_geometry(), blender::ed::curves::set_attribute_exec(), blender::ed::curves::set_attribute_invoke(), blender::ed::curves::set_attribute_ui(), blender::ed::sculpt_paint::greasepencil::simplify_opacities(), blender::ed::sculpt_paint::greasepencil::simplify_stroke(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::soft_eraser(), stats_object_edit(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_curves(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::bke::greasepencil::Drawing::texture_matrices(), blender::geometry::trim_curves(), blender::ed::sculpt_paint::greasepencil::trim_stroke_ends(), view3d_box_select_exec(), view3d_lasso_select(), and blender::io::hydra::CurvesData::write_curves().

◆ attributes_for_write()

MutableAttributeAccessor CurvesGeometry::attributes_for_write ( )

Definition at line 1850 of file curves_geometry.cc.

Referenced by blender::ed::curves::add_curves(), blender::ed::greasepencil::add_single_curve(), blender::ed::greasepencil::apply_eval_grease_pencil_data(), blender::nodes::ForeachElementComponent::attributes_for_write(), BKE_grease_pencil_material_index_remove(), BKE_grease_pencil_material_remap(), blender::ed::greasepencil::boundary_to_curves(), blender::build_concurrent(), blender::build_sequential(), blender::geometry::calc_radius_with_interpolation(), blender::ed::greasepencil::clipboard_paste_strokes_ex(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::geometry::copy_and_reorder_curves(), blender::nodes::node_geo_duplicate_elements_cc::copy_curve_attributes_without_id(), blender::ed::curves::copy_data_to_geometry(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_curves(), blender::create_array_copies(), blender::geometry::create_curve_from_vert_indices(), blender::create_dashes(), blender::create_envelope_strokes(), blender::bke::tests::GreasePencilInterpolate::create_test_curves(), blender::geometry::tests::create_test_curves(), blender::geometry::tests::create_test_curves(), blender::ed::transform::curves::createTransCurvesVerts(), blender::nodes::node_geo_points_to_curves_cc::curve_from_points(), blender::nodes::node_geo_curves_to_grease_pencil_cc::curve_instances_to_grease_pencil_layers(), blender::bke::curve_legacy_to_curves(), blender::bke::curves_copy_curve_selection(), blender::ed::curves::curves_draw_exec(), blender::nodes::node_geo_points_to_curves_cc::curves_from_points(), blender::ed::curves::set_selection_domain::curves_set_selection_domain_exec(), CurvesGeometry(), blender::deform_drawing(), blender::deform_drawing(), blender::ed::curves::duplicate_curves(), blender::ed::curves::duplicate_points(), blender::ed::curves::ensure_selection_attribute(), blender::ed::greasepencil::ensure_selection_domain(), blender::ed::curves::clear_tilt::exec(), blender::ed::curves::cyclic_toggle::exec(), blender::ed::curves::set_handle_type::exec(), blender::ed::sculpt_paint::AddOperationExecutor::execute(), blender::geometry::execute_realize_curve_tasks(), blender::geometry::execute_realize_grease_pencil_task(), blender::geometry::extend_curves(), blender::geometry::extract_greasepencil_layer_curves(), blender::geometry::extract_greasepencil_layer_points(), blender::ed::greasepencil::extrude_grease_pencil_curves(), fill_curve_types(), blender::geometry::fillet_curves(), blender::ed::sculpt_paint::float_selection_ensure(), blender::geometry::gather_point_attributes_to_interpolate(), blender::generate_curves(), blender::ed::geometry::geometry_attribute_convert_exec(), blender::bke::get_attribute_accessor_for_write(), blender::ed::sculpt_paint::greasepencil::get_single_stroke(), blender::ed::sculpt_paint::grease_pencil_apply_fill(), blender::ed::greasepencil::grease_pencil_caps_set_exec(), blender::ed::greasepencil::grease_pencil_cyclical_set_exec(), blender::ed::greasepencil::grease_pencil_primitive_init_curves(), blender::ed::greasepencil::grease_pencil_primitive_update_curves(), blender::ed::greasepencil::grease_pencil_reset_uvs_exec(), blender::ed::greasepencil::grease_pencil_set_handle_type_exec(), blender::ed::greasepencil::grease_pencil_stroke_material_set_exec(), blender::ed::greasepencil::grease_pencil_stroke_smooth_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_reset_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_set_exec(), blender::nodes::node_geo_interpolate_curves_cc::interpolate_curve_attributes(), blender::geometry::join_curves_ranges(), blender::bke::greasepencil::convert::legacy_gpencil_frame_to_grease_pencil_drawing(), blender::ed::object::mesh_data_to_grease_pencil(), blender::geometry::mesh_faces_to_curves_convert(), MOD_lineart_gpencil_generate_v3(), blender::modify_fill_color(), blender::modify_fill_color(), blender::modify_opacity(), blender::modify_softness(), blender::modify_stroke_by_index(), blender::modify_stroke_by_layer(), blender::modify_stroke_by_material(), blender::modify_stroke_color(), blender::modify_stroke_random(), blender::nodes::node_geo_set_grease_pencil_color_cc::node_geo_exec(), blender::nodes::node_geo_set_grease_pencil_softness_cc::node_geo_exec(), blender::nodes::node_geo_set_material_cc::node_geo_exec(), blender::ed::sculpt_paint::greasepencil::EraseOperation::on_stroke_done(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done(), blender::ed::sculpt_paint::greasepencil::RandomizeOperation::on_stroke_extended(), blender::ed::sculpt_paint::greasepencil::SmoothOperation::on_stroke_extended(), blender::ed::curves::primitive_random_sphere(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_start_sample(), blender::io::usd::USDCurvesReader::read_custom_data(), blender::io::usd::USDCurvesReader::read_velocities(), blender::ed::greasepencil::remap_material_indices(), blender::ed::greasepencil::remove_fill_guides(), blender::geometry::remove_points_and_split(), blender::geometry::reorder_and_flip_curves(), blender::reorder_cyclic_curve_points(), blender::ed::curves::resize_curves(), blender::ed::greasepencil::resize_single_curve(), blender::geometry::retrieve_attribute_spans(), blender::geometry::retrieve_attribute_spans(), blender::ed::curves::select_all(), blender::ed::sculpt_paint::select_grow::select_grow_modal(), blender::ed::greasepencil::selection_update(), blender::ed::curves::separate_points(), blender::ed::curves::set_attribute_exec(), blender::nodes::node_geo_set_spline_cyclic_cc::set_curve_cyclic(), blender::nodes::node_geo_set_curve_normal_cc::set_curve_normal(), blender::nodes::node_geo_set_spline_resolution_cc::set_curve_resolution(), blender::nodes::node_geo_set_curve_tilt_cc::set_curve_tilt(), blender::nodes::node_geo_set_position_cc::set_curves_position(), blender::nodes::node_geo_set_material_index_cc::set_material_index_in_grease_pencil(), blender::nodes::node_geo_set_curve_radius_cc::set_radius(), blender::bke::greasepencil::Drawing::set_texture_matrices(), blender::io::grease_pencil::shape_attributes_to_curves(), blender::geometry::smooth_curve_positions(), blender::ed::sculpt_paint::smooth_fill_strokes(), blender::ed::sculpt_paint::greasepencil::smooth_stroke(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::soft_eraser(), blender::nodes::node_geo_interpolate_curves_cc::store_output_attributes(), blender::geometry::subdivide_curves(), blender::geometry::trim_curves(), blender::ed::sculpt_paint::greasepencil::trim_end_points(), blender::bke::bake::try_load_curves_geometry(), blender::write_stroke_transforms(), and blender::write_weights_for_drawing().

◆ bezier_evaluated_offsets_for_curve()

Span< int > CurvesGeometry::bezier_evaluated_offsets_for_curve ( int curve_index) const
inline

Retrieve offsets into a Bezier curve's evaluated points for each control point. Stored in the same format as #OffsetIndices. Call evaluated_points_by_curve() first to ensure that the evaluated offsets cache is current.

Definition at line 1033 of file BKE_curves.hh.

References blender::Span< T >::data(), offsets(), blender::bke::curves::per_curve_point_offsets_range(), points_by_curve(), range, CurvesGeometry::runtime, and blender::Span< T >::slice().

Referenced by blender::geometry::lookup_point_bezier().

◆ blend_read()

◆ blend_write()

◆ blend_write_prepare()

void CurvesGeometry::blend_write_prepare ( BlendWriteData & write_data)

This function needs to be called before blend_write and before the CurvesGeometry struct is written because it can mutate the CustomData and AttributeStorage structs.

Definition at line 1902 of file curves_geometry.cc.

References CurvesGeometry::attribute_storage, and blender::bke::attribute_storage_blend_write_prepare().

Referenced by write_drawing_array().

◆ bounds_min_max()

◆ calculate_bezier_auto_handles()

◆ count_memory()

◆ curve_type_counts()

◆ curve_types()

VArray< int8_t > CurvesGeometry::curve_types ( ) const

The type (CurveType) of each curve, or potentially a single if all are the same type.

Definition at line 303 of file curves_geometry.cc.

References blender::bke::ATTR_CURVE_TYPE, blender::bke::Curve, CURVE_TYPE_CATMULL_ROM, and blender::bke::get_varray_attribute().

Referenced by blender::bke::calculate_evaluated_offsets(), blender::nodes::node_geo_curve_spline_parameter_cc::calculate_point_lengths(), blender::geometry::compute_curve_trim_parameters(), blender::nodes::node_geo_input_tangent_cc::construct_curve_tangent_gvarray(), blender::geometry::convert_bezier_or_catmull_rom_to_poly_before_conversion_to_nurbs(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::ed::transform::curves::createTransCurvesVerts(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), blender::bke::curve_legacy_to_curves(), blender::bke::curve_normal_point_domain(), blender::bke::curve_normals_varray(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::nodes::node_geo_input_tangent_cc::curve_tangent_point_domain(), curve_type_counts(), blender::io::alembic::ABCCurveWriter::do_write(), blender::io::usd::USDCurvesWriter::do_write(), blender::draw::DRW_curves_batch_cache_create_requested(), blender::ed::greasepencil::extrude_grease_pencil_curves(), fill_curve_types(), blender::draw::grease_pencil_get_visible_non_nurbs_curves(), blender::draw::grease_pencil_get_visible_nurbs_curves(), blender::draw::grease_pencil_get_visible_nurbs_points(), blender::geometry::resample_to_uniform(), blender::ed::greasepencil::retrieve_visible_bezier_handle_points(), blender::geometry::sample_curve_attribute(), blender::nodes::node_geo_curve_handle_type_selection_cc::select_by_handle_type(), blender::ed::curves::select_linked(), blender::geometry::subdivide_curves(), blender::geometry::trim_curves(), and blender::bke::write_sharp_bezier_edges().

◆ curve_types_for_write()

◆ curves_num()

int CurvesGeometry::curves_num ( ) const
inline

The number of curves in the data-block.

Definition at line 968 of file BKE_curves.hh.

References CurvesGeometry::curve_num.

Referenced by blender::nodes::node_geo_curve_spline_parameter_cc::accumulated_lengths_curve_domain(), blender::bke::adapt_curve_domain_curve_to_point_impl(), blender::bke::adapt_curve_domain_point_to_curve_impl(), blender::ed::curves::add_curves(), blender::geometry::add_curves_on_mesh(), blender::ed::greasepencil::add_single_curve(), blender::ed::curves::append_curve_knots(), blender::ed::curves::append_point_knots(), blender::ed::curves::append_primitive_curve(), blender::ed::greasepencil::boundary_to_curves(), blender::build_drawing(), blender::build_sequential(), blender::draw::calc_final_indices(), blender::nodes::node_geo_curve_spline_parameter_cc::calculate_curve_parameters(), blender::ed::greasepencil::clipboard_paste_strokes_ex(), blender::bke::compare_geometry::compare_curves(), blender::ed::greasepencil::compute_topology_change(), blender::bke::construct_curve_length_gvarray(), blender::nodes::node_geo_input_spline_length_cc::construct_curve_point_count_gvarray(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::bke::curves::nurbs::copy_custom_knots(), blender::bke::curves::copy_only_curve_domain(), blender::bke::curves::create_attribute_providers_for_curve(), blender::geometry::create_curves_for_faces(), blender::create_envelope_strokes(), blender::nodes::node_geo_curve_sample_cc::curve_accumulated_lengths(), blender::draw::curve_eval_render_wire_verts_edges_len_get(), blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate(), blender::bke::curve_legacy_to_curves(), blender::bke::greasepencil::Drawing::curve_plane_normals(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::bke::curves_convert_customdata_to_storage(), blender::bke::curves_copy_curve_selection(), blender::bke::curves_copy_point_selection(), blender::ed::curves::curves_draw_exec(), blender::draw::curves_ensure_procedural_data(), blender::ed::greasepencil::curves_geometry_is_equal(), blender::ed::greasepencil::curves_merge_by_distance(), blender::geometry::curves_merge_endpoints(), blender::ed::greasepencil::curves_merge_endpoints_by_distance(), curves_range(), blender::draw::curves_sub_pass_setup_implementation(), blender::nodes::node_geo_curves_to_grease_pencil_cc::curves_to_grease_pencil_with_one_layer(), blender::nodes::node_geo_deform_curves_on_surface_cc::deform_curves(), blender::deform_drawing(), blender::nodes::node_geo_curve_fill_cc::do_group_aware_cdt(), blender::io::alembic::ABCCurveWriter::do_write(), blender::io::usd::USDCurvesWriter::do_write(), blender::bke::domain_num(), blender::bke::greasepencil::domain_num(), blender::ed::curves::duplicate_curves(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_curves_CurveGeometry(), blender::ed::curves::duplicate_points(), blender::duplicate_strokes(), blender::draw::ensure_control_point_attribute(), blender::ed::sculpt_paint::AddOperationExecutor::ensure_curve_roots_kdtree(), blender::ed::sculpt_paint::CombOperationExecutor::execute(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::execute(), blender::ed::sculpt_paint::DeleteOperationExecutor::execute(), blender::ed::sculpt_paint::DensityAddOperationExecutor::execute(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::execute(), blender::ed::sculpt_paint::PinchOperationExecutor::execute(), blender::ed::sculpt_paint::PuffOperationExecutor::execute(), blender::geometry::execute_realize_curve_task(), blender::geometry::extend_curves(), blender::io::grease_pencil::extend_curves_geometry(), blender::ed::curves::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), fill_curve_types(), blender::geometry::fillet_curves(), blender::ed::greasepencil::find_curve_segments(), blender::ed::greasepencil::fit_poly_curves(), blender::geometry::fit_poly_to_bezier_curves(), blender::bke::curves::get_curves_accessor_functions(), blender::get_factor_from_draw_speed(), blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput::get_varray_for_context(), blender::nodes::node_geo_material_selection_cc::MaterialSelectionFieldInput::get_varray_for_context(), blender::ed::sculpt_paint::grease_pencil_apply_fill(), blender::ed::greasepencil::grease_pencil_copy_strokes_exec(), blender::ed::greasepencil::grease_pencil_primitive_init_curves(), blender::ed::greasepencil::grease_pencil_primitive_undo_curves(), blender::ed::greasepencil::grease_pencil_reset_uvs_exec(), blender::ed::greasepencil::grease_pencil_stroke_reorder_exec(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::geometry::interpolate_curves_with_samples(), is_single_type(), blender::modify_drawing(), blender::modify_fill_color(), blender::modify_stroke_by_index(), blender::nodes::node_geo_curve_sample_cc::node_geo_exec(), blender::nodes::node_geo_curve_spline_type_cc::node_geo_exec(), blender::nodes::node_geo_deform_curves_on_surface_cc::node_geo_exec(), blender::nodes::node_geo_interpolate_curves_cc::parameterize_guide_curves(), blender::point_counts_to_keep_concurrent(), blender::points_info_sequential(), blender::ed::sculpt_paint::DensityAddOperationExecutor::prepare_curve_roots_kdtrees(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_start_sample(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::reduce_density_projected(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::reduce_density_spherical(), blender::geometry::reorder_curves_geometry(), blender::reorder_cyclic_curve_points(), blender::reorder_strokes(), blender::geometry::resample_to_count(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_length(), blender::geometry::resample_to_uniform(), blender::ed::curves::resize_curves(), blender::ed::greasepencil::resize_single_curve(), blender::nodes::node_geo_curve_reverse_cc::reverse_curve(), blender::nodes::node_geo_set_curve_normal_cc::set_curve_normal(), blender::bke::greasepencil::Drawing::set_texture_matrices(), blender::simplify_drawing(), stats_object(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_curves(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::bke::greasepencil::Drawing::texture_matrices(), blender::geometry::trim_curves(), blender::nodes::node_geo_curve_trim_cc::trim_curves(), blender::ed::sculpt_paint::greasepencil::trim_end_points(), blender::bke::bake::try_load_curves_geometry(), blender::ed::sculpt_paint::use_add_density_mode(), blender::io::hydra::CurvesData::write_curves(), and blender::write_stroke_transforms().

◆ curves_range()

IndexRange CurvesGeometry::curves_range ( ) const
inline

Definition at line 986 of file BKE_curves.hh.

References curves_num().

Referenced by blender::nodes::node_geo_curve_spline_parameter_cc::accumulated_lengths_curve_domain(), blender::bke::adapt_curve_domain_point_to_curve_impl(), blender::ed::curves::add_curves(), blender::geometry::add_curves_on_mesh(), blender::ed::greasepencil::bake_grease_pencil_animation_exec(), blender::nodes::node_geo_blur_attribute_cc::blur_on_curve_exec(), blender::ed::greasepencil::boundary_to_curves(), blender::build_concurrent(), blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), blender::build_sequential(), blender::nodes::node_geo_curve_spline_parameter_cc::calculate_point_lengths(), blender::ed::greasepencil::compute_topology_change(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::bke::tests::create_basic_curves(), blender::create_envelope_strokes(), blender::bke::tests::GreasePencilInterpolate::create_test_curves(), blender::ed::transform::curves::createTransCurvesVerts(), blender::nodes::node_geo_curve_sample_cc::curve_accumulated_lengths(), blender::draw::curve_create_curves_lines(), blender::draw::curve_eval_render_wire_verts_edges_len_get(), blender::bke::curve_legacy_to_curves(), blender::ed::curves::curve_mask_from_points(), blender::bke::curve_normal_point_domain(), blender::bke::greasepencil::Drawing::curve_plane_normals(), blender::nodes::node_geo_input_tangent_cc::curve_tangent_point_domain(), blender::bke::curves_copy_point_selection(), blender::ed::greasepencil::curves_merge_by_distance(), blender::geometry::curves_merge_endpoints(), blender::ed::greasepencil::curves_merge_endpoints_by_distance(), blender::nodes::node_geo_curves_to_grease_pencil_cc::curves_to_grease_pencil_with_one_layer(), blender::nodes::node_geo_curve_length_cc::curves_total_length(), blender::ed::object::data_xform_by_mat4(), blender::ed::object::data_xform_create_ex(), blender::ed::object::data_xform_restore(), blender::nodes::node_geo_deform_curves_on_surface_cc::deform_curves(), blender::deform_drawing(), blender::io::alembic::ABCCurveWriter::do_write(), blender::draw::DRW_curves_batch_cache_create_requested(), blender::ed::curves::duplicate_curves(), blender::ed::curves::end_points(), blender::ed::sculpt_paint::AddOperationExecutor::ensure_curve_roots_kdtree(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::execute(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::execute(), blender::geometry::execute_realize_curve_task(), blender::io::grease_pencil::SVGExporter::export_grease_pencil_objects(), blender::geometry::extend_curves(), blender::ed::curves::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::nodes::node_geo_curve_fillet_cc::fillet_curve(), blender::geometry::fillet_curves(), blender::geometry::find_connected_ranges(), blender::ed::sculpt_paint::greasepencil::find_curve_mapping_from_index(), blender::ed::sculpt_paint::find_curves_brush_position(), blender::geometry::fit_poly_to_bezier_curves(), blender::ed::curves::foreach_selectable_curve_range(), blender::generate_curves(), blender::get_factor_from_draw_speed(), blender::modifier::greasepencil::get_filtered_stroke_mask(), blender::ed::greasepencil::trim::get_intersections_of_curve_with_curves(), blender::ed::greasepencil::get_points_to_dissolve(), blender::ed::greasepencil::get_stroke_colors(), blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput::get_varray_for_context(), blender::nodes::node_geo_curve_topology_points_of_curve_cc::PointsOfCurveInput::get_varray_for_context(), blender::ed::greasepencil::get_visible_boundary_strokes(), blender::ed::greasepencil::gpencil_stroke_subdivide_exec(), blender::ed::sculpt_paint::grease_pencil_apply_fill(), blender::draw::grease_pencil_edit_batch_ensure(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::sculpt_paint::grease_pencil_fill_get_extension_data(), blender::draw::grease_pencil_geom_batch_ensure(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_update(), blender::ed::greasepencil::grease_pencil_primitive_exit(), blender::ed::greasepencil::grease_pencil_primitive_init_curves(), blender::ed::greasepencil::grease_pencil_primitive_update_curves(), blender::ed::greasepencil::grease_pencil_stroke_reorder_exec(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::hard_eraser(), blender::ed::sculpt_paint::greasepencil::GreasePencilStrokeOperationCommon::init_auto_masking(), blender::nodes::node_geo_interpolate_curves_cc::interpolate_curve_attributes(), blender::nodes::node_geo_interpolate_curves_cc::interpolate_curve_shapes(), blender::ed::sculpt_paint::greasepencil::PaintOperation::interpolate_stroke_depth(), blender::modify_drawing(), blender::modify_drawing(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done(), blender::ed::sculpt_paint::greasepencil::SmoothOperation::on_stroke_extended(), blender::nodes::node_geo_interpolate_curves_cc::parameterize_guide_curves(), blender::point_counts_to_keep_concurrent(), blender::points_info_sequential(), blender::io::usd::populate_curve_props_for_nurbs(), blender::io::usd::populate_curve_verts(), blender::io::usd::populate_curve_verts_for_bezier(), blender::ed::sculpt_paint::DensityAddOperationExecutor::prepare_curve_roots_kdtrees(), blender::ed::curves::primitive_random_sphere(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_start_sample(), blender::io::usd::USDBasisCurvesReader::read_curve_sample(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::reduce_density_projected(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::reduce_density_spherical(), blender::ed::greasepencil::remap_material_indices(), blender::geometry::remove_points_and_split(), blender::reorder_strokes(), blender::geometry::resample_to_count(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_length(), blender::geometry::resample_to_uniform(), blender::geometry::resample_to_uniform(), blender::ed::curves::resize_curves(), blender::ed::greasepencil::resize_single_curve(), blender::ed::greasepencil::retrieve_editable_fill_strokes(), blender::ed::greasepencil::retrieve_editable_strokes(), blender::ed::greasepencil::retrieve_editable_strokes_by_material(), blender::ed::curves::retrieve_selected_curves(), blender::ed::greasepencil::retrieve_visible_strokes(), blender::geometry::sample_curve_padded(), blender::ed::curves::select_adjacent(), blender::ed::curves::select_adjacent_mask(), blender::ed::curves::select_alternate(), blender::nodes::node_geo_curve_handle_type_selection_cc::select_by_handle_type(), blender::ed::sculpt_paint::select_grow::select_grow_update(), blender::ed::curves::select_linked(), blender::ed::curves::select_mask_from_predicates(), blender::ed::sculpt_paint::select_random::select_random_exec(), blender::ed::greasepencil::set_start_point(), blender::ed::curves::snap_curves_to_surface::snap_curves_to_surface_exec_object(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::soft_eraser(), blender::nodes::node_geo_interpolate_curves_cc::store_output_attributes(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_curves(), blender::nodes::node_geo_curve_subdivide_cc::subdivide_curves(), blender::subdivide_drawing(), blender::nodes::node_geo_curve_subdivide_cc::subdivide_grease_pencil_curves(), blender::bke::greasepencil::Drawing::tag_positions_changed(), blender::bke::greasepencil::Drawing::tag_topology_changed(), blender::bke::greasepencil::Drawing::texture_matrices(), blender::bke::greasepencil::Drawing::triangles(), blender::ed::greasepencil::trim::trim_curve_segments(), blender::geometry::trim_curves(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), blender::ed::sculpt_paint::use_add_density_mode(), blender::ed::object::vgroup_grease_pencil_select_verts(), and blender::io::hydra::CurvesData::write_curves().

◆ cyclic()

VArray< bool > CurvesGeometry::cyclic ( ) const

Whether the curve loops around to connect to itself, on the curve domain.

Definition at line 419 of file curves_geometry.cc.

References blender::bke::ATTR_CYCLIC, and get_varray_attribute().

Referenced by blender::nodes::node_geo_curve_spline_parameter_cc::accumulated_lengths_curve_domain(), blender::nodes::node_geo_blur_attribute_cc::blur_on_curve_exec(), blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), blender::nodes::node_geo_curve_spline_parameter_cc::calculate_curve_parameters(), blender::bke::calculate_evaluated_offsets(), blender::nodes::node_geo_curve_spline_parameter_cc::calculate_point_lengths(), blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::call(), blender::geometry::compute_curve_trim_parameters(), blender::ed::greasepencil::compute_topology_change(), blender::bke::construct_curve_length_gvarray(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::ed::greasepencil::convert_to_catmull_rom(), blender::bke::copy_point_selection_custom_knots(), blender::create_dashes(), blender::nodes::node_geo_curve_sample_cc::curve_accumulated_lengths(), blender::draw::curve_create_curves_lines(), blender::draw::curve_eval_render_wire_verts_edges_len_get(), blender::bke::curve_normal_point_domain(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::nodes::node_geo_input_tangent_cc::curve_tangent_point_domain(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::curves_intersections_and_points_sides(), blender::ed::greasepencil::curves_merge_by_distance(), blender::geometry::curves_merge_endpoints(), blender::nodes::node_geo_curve_length_cc::curves_total_length(), blender::deform_drawing(), blender::io::alembic::ABCCurveWriter::do_write(), blender::io::usd::USDCurvesWriter::do_write(), blender::ed::greasepencil::image_render::draw_grease_pencil_strokes(), blender::draw::DRW_curves_batch_cache_create_requested(), blender::ed::curves::duplicate_points(), ed_curves_select_pick(), ed_grease_pencil_select_pick(), evaluated_length_total_for_curve(), evaluated_lengths_for_curve(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::geometry::fillet_curves(), blender::ed::greasepencil::find_curve_intersections(), blender::ed::greasepencil::find_curve_segments(), blender::geometry::fit_poly_to_bezier_curves(), blender::io::grease_pencil::GreasePencilExporter::foreach_stroke_in_layer(), blender::bke::get_curves_info(), blender::ed::greasepencil::trim::get_intersections_of_curve_with_curves(), blender::nodes::node_geo_offset_point_in_curve_cc::ControlPointNeighborFieldInput::get_varray_for_context(), blender::nodes::node_geo_offset_point_in_curve_cc::OffsetValidFieldInput::get_varray_for_context(), blender::ed::greasepencil::gpencil_stroke_subdivide_exec(), blender::ed::greasepencil::grease_pencil_cyclical_set_exec(), blender::draw::grease_pencil_edit_batch_ensure(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::sculpt_paint::grease_pencil_fill_get_extension_data(), blender::draw::grease_pencil_geom_batch_ensure(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_update(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::ed::greasepencil::grease_pencil_stroke_smooth_exec(), blender::draw::grease_pencil_weight_batch_ensure(), blender::draw::grease_pencil_wire_batch_ensure(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::hard_eraser(), blender::draw::index_buf_add_line_points(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::geometry::interpolate_curves(), blender::modify_drawing(), blender::ed::sculpt_paint::greasepencil::SmoothOperation::on_stroke_extended(), blender::point_counts_to_keep_concurrent(), blender::geometry::remove_points_and_split(), blender::geometry::resample_to_length(), blender::geometry::resample_to_uniform(), blender::ed::curves::select_adjacent(), blender::ed::curves::select_adjacent_mask(), blender::ed::curves::select_alternate(), blender::ed::curves::select_mask_from_predicates(), blender::ed::curves::separate_points(), blender::ed::greasepencil::set_start_point(), blender::simplify_drawing(), blender::ed::sculpt_paint::greasepencil::simplify_stroke(), blender::geometry::smooth_curve_positions(), blender::ed::sculpt_paint::smooth_fill_strokes(), blender::ed::sculpt_paint::greasepencil::smooth_stroke(), blender::ed::curves::split_points(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_curves(), blender::subdivide_drawing(), blender::ed::greasepencil::subdivide_last_segement(), blender::bke::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::bke::tests::GreasePencilInterpolate::test_sample_curve(), blender::geometry::trim_catmull_rom_curves(), blender::ed::greasepencil::trim::trim_curve_segments(), blender::bke::curves::nurbs::update_custom_knot_modes(), blender::ed::greasepencil::weight_sample_invoke(), and blender::write_stroke_transforms().

◆ cyclic_for_write()

MutableSpan< bool > CurvesGeometry::cyclic_for_write ( )

Mutable access to curve cyclic values. Call tag_topology_changed after changes.

Definition at line 423 of file curves_geometry.cc.

References blender::bke::ATTR_CYCLIC, and get_mutable_attribute().

Referenced by blender::ed::curves::copy_data_to_geometry(), blender::nodes::node_geo_curve_primitive_arc_cc::create_arc_curve_from_points(), blender::nodes::node_geo_curve_primitive_arc_cc::create_arc_curve_from_radius(), blender::geometry::create_curve_from_vert_indices(), blender::ed::curves::tests::create_curves(), blender::geometry::create_curves_for_faces(), blender::nodes::node_geo_curve_primitive_circle_cc::create_point_circle_curve(), blender::nodes::node_geo_curve_primitive_circle_cc::create_radius_circle_curve(), blender::nodes::node_geo_curve_primitive_star_cc::create_star_curve(), blender::bke::tests::GreasePencilInterpolate::create_test_curves(), blender::geometry::tests::create_test_curves(), blender::bke::curve_legacy_to_curves(), blender::ed::curves::curves_draw_exec(), blender::geometry::curves_merge_endpoints(), blender::ed::curves::duplicate_points(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::ed::greasepencil::grease_pencil_cyclical_set_exec(), blender::ed::object::mesh_data_to_grease_pencil(), blender::ed::space_node::node_draw_zones_and_frames(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_geo_exec(), blender::io::usd::USDBasisCurvesReader::read_curve_sample(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::geometry::remove_points_and_split(), blender::io::grease_pencil::shape_attributes_to_curves(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), and blender::bke::tests::TEST().

◆ deform_verts()

◆ deform_verts_for_write()

◆ ensure_can_interpolate_to_evaluated()

◆ ensure_evaluated_lengths()

◆ evaluated_length_total_for_curve()

◆ evaluated_lengths_for_curve()

Span< float > CurvesGeometry::evaluated_lengths_for_curve ( int curve_index,
bool cyclic ) const
inline

Return a cache of accumulated lengths along the curve. Each item is the length of the subsequent segment (the first value is the length of the first segment rather than 0). This calculation is rather trivial, and only depends on the evaluated positions, but the results are used often, and it is necessarily single threaded per curve, so it is cached.

Parameters
cyclicThis argument is redundant with the data stored for the curve, but is passed for performance reasons to avoid looking up the attribute.

Definition at line 1051 of file BKE_curves.hh.

References cyclic(), range, and CurvesGeometry::runtime.

Referenced by blender::geometry::compute_curve_trim_parameters(), evaluated_length_total_for_curve(), blender::draw::grease_pencil_geom_batch_ensure(), blender::geometry::resample_to_uniform(), blender::geometry::sample_curve_uniform(), and blender::write_stroke_transforms().

◆ evaluated_normals()

◆ evaluated_points_by_curve()

OffsetIndices< int > CurvesGeometry::evaluated_points_by_curve ( ) const

The offsets of every curve's evaluated points.

Definition at line 691 of file curves_geometry.cc.

References blender::bke::CurvesGeometryRuntime::EvaluatedOffsets::all_bezier_offsets, blender::Vector< T, InlineBufferCapacity, Allocator >::clear_and_shrink(), CURVE_TYPE_BEZIER, CURVE_TYPE_POLY, blender::bke::CurvesGeometryRuntime::EvaluatedOffsets::evaluated_offsets, blender::bke::CurvesGeometryRuntime::evaluated_offsets_cache, and blender::Vector< T, InlineBufferCapacity, Allocator >::resize().

Referenced by blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::call(), blender::geometry::compute_curve_trim_parameters(), blender::draw::curve_create_curves_lines(), blender::draw::curve_eval_render_wire_verts_edges_len_get(), blender::bke::curve_normal_point_domain(), blender::nodes::node_geo_input_tangent_cc::curve_tangent_point_domain(), blender::nodes::node_geo_curve_fill_cc::do_cdt(), blender::nodes::node_geo_curve_fill_cc::do_cdt_with_mask(), blender::draw::overlay::GreasePencil::draw_grease_pencil(), blender::draw::DRW_curves_batch_cache_create_requested(), evaluated_points_num(), blender::draw::grease_pencil_edit_batch_ensure(), blender::draw::grease_pencil_geom_batch_ensure(), blender::draw::grease_pencil_wire_batch_ensure(), blender::draw::index_buf_add_line_points(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_uniform(), blender::geometry::sample_curve_attribute(), blender::bke::greasepencil::Drawing::tag_positions_changed(), blender::bke::greasepencil::Drawing::tag_topology_changed(), blender::bke::greasepencil::Drawing::triangles(), and blender::geometry::trim_evaluated_curves().

◆ evaluated_points_num()

int CurvesGeometry::evaluated_points_num ( ) const
inline

The total number of points in the evaluated poly curve. This can depend on the resolution attribute if it exists.

Definition at line 1027 of file BKE_curves.hh.

References evaluated_points_by_curve().

Referenced by blender::draw::attribute_interpolate(), blender::bke::evaluate_attribute(), blender::draw::grease_pencil_edit_batch_ensure(), blender::draw::grease_pencil_geom_batch_ensure(), blender::draw::index_buf_add_line_points(), and blender::bke::tests::TEST().

◆ evaluated_positions()

Span< float3 > CurvesGeometry::evaluated_positions ( ) const

Definition at line 793 of file curves_geometry.cc.

References blender::Vector< T, InlineBufferCapacity, Allocator >::clear_and_shrink(), blender::array_utils::copy_group_to_group(), CURVE_TYPE_POLY, blender::bke::CurvesGeometryRuntime::evaluated_offsets_cache, blender::bke::CurvesGeometryRuntime::evaluated_position_cache, blender::Span< T >::is_empty(), blender::bke::CurvesGeometryRuntime::nurbs_basis_cache, blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::MutableSpan< T >::slice(), blender::Span< T >::slice(), and blender::Span< T >::slice_safe().

Referenced by BKE_object_foreach_display_point(), blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), blender::bke::build_mesh_positions(), blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::call(), blender::draw::create_edit_points_position_vbo(), blender::draw::curve_create_curves_pos(), blender::nodes::node_geo_curve_fill_cc::do_cdt(), blender::nodes::node_geo_curve_fill_cc::do_cdt_with_mask(), blender::draw::grease_pencil_edit_batch_ensure(), blender::draw::grease_pencil_geom_batch_ensure(), blender::geometry::interpolate_curves_with_samples(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_uniform(), blender::bke::greasepencil::Drawing::tag_positions_changed(), blender::bke::greasepencil::Drawing::tag_topology_changed(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::greasepencil::Drawing::triangles(), blender::geometry::trim_curves(), and blender::geometry::trim_evaluated_curves().

◆ evaluated_tangents()

◆ fill_curve_types() [1/2]

void CurvesGeometry::fill_curve_types ( const IndexMask & selection,
CurveType type )

◆ fill_curve_types() [2/2]

void CurvesGeometry::fill_curve_types ( CurveType type)

Set all curve types to the value and call update_curve_types.

Definition at line 314 of file curves_geometry.cc.

References attributes_for_write(), CURVE_TYPE_CATMULL_ROM, curve_types_for_write(), curves_num(), blender::bke::MutableAttributeAccessor::remove(), CurvesGeometry::runtime, and tag_topology_changed().

Referenced by blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::geometry::convert_curves_trivial(), blender::geometry::create_curve_from_vert_indices(), blender::geometry::create_curves_for_faces(), blender::ed::curves::curves_draw_exec(), blender::nodes::node_geo_points_to_curves_cc::curves_from_points(), blender::bke::curves_new_nomain_single(), fill_curve_types(), blender::bke::get_curve_single_vert(), blender::geometry::interpolate_curves_with_samples(), blender::bke::greasepencil::convert::legacy_gpencil_frame_to_grease_pencil_drawing(), blender::ed::object::mesh_data_to_grease_pencil(), MOD_lineart_gpencil_generate_v3(), blender::ed::space_node::node_draw_zones_and_frames(), blender::io::usd::USDBasisCurvesReader::read_curve_sample(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_uniform(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), and blender::geometry::trim_curves().

◆ handle_positions_left()

◆ handle_positions_left_for_write()

◆ handle_positions_right()

◆ handle_positions_right_for_write()

◆ handle_types_left()

◆ handle_types_left_for_write()

◆ handle_types_right()

◆ handle_types_right_for_write()

◆ has_curve_with_type() [1/2]

bool CurvesGeometry::has_curve_with_type ( CurveType type) const
inline

◆ has_curve_with_type() [2/2]

bool CurvesGeometry::has_curve_with_type ( Span< CurveType > types) const
inline

Definition at line 1001 of file BKE_curves.hh.

References types.

◆ indices_for_curve_type() [1/2]

IndexMask CurvesGeometry::indices_for_curve_type ( CurveType type,
const IndexMask & selection,
IndexMaskMemory & memory ) const

Definition at line 726 of file curves_geometry.cc.

◆ indices_for_curve_type() [2/2]

◆ interpolate_to_evaluated() [1/2]

void CurvesGeometry::interpolate_to_evaluated ( GSpan src,
GMutableSpan dst ) const

◆ interpolate_to_evaluated() [2/2]

void CurvesGeometry::interpolate_to_evaluated ( int curve_index,
GSpan src,
GMutableSpan dst ) const

◆ is_empty()

bool CurvesGeometry::is_empty ( ) const
inline

Return true if there are no curves in the geometry.

Definition at line 976 of file BKE_curves.hh.

References BLI_assert, CurvesGeometry::curve_num, and CurvesGeometry::point_num.

Referenced by blender::build_drawing(), blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::call(), blender::ed::curves::copy_data_to_geometry(), blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate(), blender::ed::greasepencil::curves_geometry_is_equal(), blender::ed::curves::set_selection_domain::curves_set_selection_domain_exec(), blender::deform_drawing(), blender::deform_drawing(), blender::deform_drawing(), blender::io::alembic::ABCCurveWriter::do_write(), blender::io::usd::USDCurvesWriter::do_write(), blender::ed::curves::duplicate_points(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_CurvesGeometry(), ED_view3d_minmax_verts(), blender::ed::greasepencil::ensure_selection_domain(), blender::ed::sculpt_paint::CombOperationExecutor::execute(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::execute(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::execute(), blender::ed::sculpt_paint::PinchOperationExecutor::execute(), blender::ed::sculpt_paint::PuffOperationExecutor::execute(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::execute(), blender::ed::sculpt_paint::SlideOperationExecutor::execute(), blender::ed::sculpt_paint::SmoothOperationExecutor::execute(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::execute(), blender::geometry::fillet_curves(), blender::nodes::node_geo_curve_fillet_cc::fillet_grease_pencil(), blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput::get_varray_for_context(), blender::ed::sculpt_paint::grease_pencil_apply_fill(), blender::ed::greasepencil::grease_pencil_copy_strokes_exec(), blender::ed::greasepencil::grease_pencil_dissolve_exec(), blender::ed::greasepencil::grease_pencil_snap_compute_centroid(), blender::ed::greasepencil::grease_pencil_snap_to_cursor_exec(), blender::ed::greasepencil::grease_pencil_snap_to_grid_exec(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::ed::greasepencil::grease_pencil_stroke_smooth_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_brightness_contrast_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_hsv_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_invert_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_levels_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_reset_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_set_exec(), blender::geometry::interpolate_curves_with_samples(), blender::ed::greasepencil::join_curves(), blender::geometry::join_curves(), blender::nodes::node_geo_curve_sample_cc::node_geo_exec(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), blender::nodes::node_geo_set_material_cc::node_geo_exec(), blender::ed::object::object_origin_set_exec(), blender::nodes::LazyFunctionForForeachGeometryElementZone::prepare_components(), blender::bke::remember_deformed_grease_pencil_if_necessary(), blender::bke::curves::bezier::retrieve_all_positions(), blender::nodes::node_geo_set_curve_handles_cc::set_position_in_component(), blender::nodes::node_geo_set_position_cc::set_position_in_grease_pencil(), blender::ed::sculpt_paint::smooth_fill_strokes(), blender::geometry::subdivide_curves(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::nodes::node_geo_curve_trim_cc::trim_curves(), blender::ed::sculpt_paint::greasepencil::trim_stroke_ends(), v3d_editvertex_buts(), blender::bke::curves::bezier::write_all_positions(), and blender::write_weights_for_drawing().

◆ is_single_type()

◆ material_index_max()

std::optional< int > CurvesGeometry::material_index_max ( ) const

Get the largest material index used by the geometry or nullopt if there are none. The returned value is clamped between 0 and MAXMAT even if the stored material indices may be out of that range.

Definition at line 1349 of file curves_geometry.cc.

References blender::bke::Curve, blender::SharedCache< T >::data(), blender::SharedCache< T >::ensure(), blender::bounds::max(), blender::bke::CurvesGeometryRuntime::max_material_index_cache, and MAXMAT.

◆ normal_mode()

VArray< int8_t > CurvesGeometry::normal_mode ( ) const

Which method to use for calculating the normals of evaluated points (NormalMode). Call tag_normals_changed after changes.

Definition at line 437 of file curves_geometry.cc.

References blender::bke::ATTR_NORMAL_MODE, and get_varray_attribute().

Referenced by blender::bke::curve_normal_point_domain().

◆ normal_mode_for_write()

◆ nurbs_custom_knot_curves()

◆ nurbs_custom_knots()

◆ nurbs_custom_knots_by_curve()

◆ nurbs_custom_knots_for_write()

◆ nurbs_custom_knots_resize()

void CurvesGeometry::nurbs_custom_knots_resize ( int knots_num)

Resizes custom knots array. Used when knots number is known in advance and knot values are set together with topological data.

Definition at line 595 of file curves_geometry.cc.

References blender::implicit_sharing::resize_trivial_array(), and this.

Referenced by blender::geometry::execute_realize_curve_tasks().

◆ nurbs_custom_knots_update_size()

◆ nurbs_has_custom_knots()

◆ nurbs_knots_modes()

VArray< int8_t > CurvesGeometry::nurbs_knots_modes ( ) const

◆ nurbs_knots_modes_for_write()

◆ nurbs_orders()

◆ nurbs_orders_for_write()

◆ nurbs_weights()

Span< float > CurvesGeometry::nurbs_weights ( ) const

The weight for each control point for NURBS curves. Call tag_positions_changed after changes.

Definition at line 500 of file curves_geometry.cc.

References blender::bke::ATTR_NURBS_WEIGHT, and get_span_attribute().

Referenced by blender::geometry::convert_curves_to_nurbs(), and blender::io::alembic::ABCCurveWriter::do_write().

◆ nurbs_weights_for_write()

◆ offsets()

Span< int > CurvesGeometry::offsets ( ) const

The index of the first point in every curve. The size of this span is one larger than the number of curves, but the spans will be empty if there are no curves/points.

Consider using points_by_curve rather than these offsets directly.

Definition at line 402 of file curves_geometry.cc.

Referenced by blender::ed::curves::add_curves(), blender::geometry::add_curves_on_mesh(), bezier_evaluated_offsets_for_curve(), blender::nodes::node_geo_interpolate_curves_cc::build_kdtrees_for_root_positions(), blender::bke::compare_geometry::compare_curves(), blender::geometry::copy_and_reorder_curves(), blender::geometry::create_curves_for_faces(), blender::create_envelope_strokes(), blender::bke::curve_legacy_to_curves(), blender::ed::greasepencil::curves_geometry_is_equal(), blender::io::alembic::curves_topology_changed(), blender::io::usd::curves_topology_changed(), blender::ed::sculpt_paint::AddOperationExecutor::ensure_curve_roots_kdtree(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::execute(), blender::geometry::execute_realize_curve_task(), blender::io::grease_pencil::extend_curves_geometry(), blender::ed::curves::extrude_curves(), blender::geometry::fillet_curves(), blender::ed::sculpt_paint::SlideOperationExecutor::find_curves_to_slide(), blender::geometry::fit_poly_to_bezier_curves(), blender::modify_curves(), blender::ed::sculpt_paint::DensityAddOperationExecutor::prepare_curve_roots_kdtrees(), blender::geometry::reorder_and_flip_curves(), blender::ed::curves::resize_curves(), blender::bke::bake::serialize_curves_geometry(), blender::geometry::subdivide_curves(), blender::bke::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::trim_curves(), and blender::ed::sculpt_paint::use_add_density_mode().

◆ offsets_for_write()

MutableSpan< int > CurvesGeometry::offsets_for_write ( )

Definition at line 409 of file curves_geometry.cc.

References blender::implicit_sharing::make_trivial_data_mutable(), and this.

Referenced by blender::ed::curves::add_curves(), blender::geometry::add_curves_on_mesh(), blender::ed::greasepencil::add_single_curve(), blender::ed::greasepencil::boundary_to_curves(), blender::build_concurrent(), blender::build_sequential(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::geometry::copy_and_reorder_curves(), blender::ed::curves::copy_data_to_geometry(), blender::bke::tests::create_basic_curves(), blender::geometry::create_curve_from_vert_indices(), blender::ed::curves::tests::create_curves(), blender::geometry::create_curves_for_faces(), blender::create_dashes(), blender::create_envelope_strokes(), blender::bke::tests::GreasePencilInterpolate::create_test_curves(), blender::geometry::tests::create_test_curves(), blender::geometry::tests::create_test_curves(), blender::bke::curve_legacy_to_curves(), blender::bke::curves_copy_curve_selection(), blender::nodes::node_geo_points_to_curves_cc::curves_from_points(), blender::ed::greasepencil::curves_merge_by_distance(), blender::bke::curves_new_nomain_single(), CurvesGeometry(), blender::geometry::debug_randomize_curve_order(), blender::ed::curves::duplicate_curves(), blender::ed::curves::duplicate_points(), blender::geometry::execute_realize_curve_task(), blender::geometry::execute_realize_curve_tasks(), blender::geometry::extend_curves(), blender::io::grease_pencil::extend_curves_geometry(), blender::geometry::extract_greasepencil_layer_points(), blender::ed::curves::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::geometry::fillet_curves(), blender::geometry::fit_poly_to_bezier_curves(), blender::nodes::node_geo_interpolate_curves_cc::generate_interpolated_curves(), blender::bke::get_curve_single_vert(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::geometry::join_curves_ranges(), blender::bke::greasepencil::convert::legacy_gpencil_frame_to_grease_pencil_drawing(), blender::ed::object::mesh_data_to_grease_pencil(), MOD_lineart_gpencil_generate_v3(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::curves::convert_from_particle_system::particles_to_curves(), blender::ed::curves::primitive_random_sphere(), blender::io::usd::USDBasisCurvesReader::read_curve_sample(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::geometry::remove_points_and_split(), blender::geometry::reorder_and_flip_curves(), blender::geometry::resample_to_count(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_length(), blender::geometry::resample_to_uniform(), blender::ed::curves::resize_curves(), blender::ed::greasepencil::resize_single_curve(), blender::geometry::subdivide_curves(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::geometry::trim_curves(), and blender::ed::sculpt_paint::greasepencil::trim_end_points().

◆ operator=() [1/2]

CurvesGeometry & CurvesGeometry::operator= ( const CurvesGeometry & other)

Definition at line 150 of file curves_geometry.cc.

References CurvesGeometry().

◆ operator=() [2/2]

CurvesGeometry & CurvesGeometry::operator= ( CurvesGeometry && other)

Definition at line 199 of file curves_geometry.cc.

References CurvesGeometry().

◆ point_to_curve_map()

◆ points_by_curve()

OffsetIndices< int > CurvesGeometry::points_by_curve ( ) const
inline

The offsets of every curve into arrays on the points domain.

Definition at line 1021 of file BKE_curves.hh.

References CurvesGeometry::curve_num, and CurvesGeometry::curve_offsets.

Referenced by blender::bke::adapt_curve_domain_curve_to_point_impl(), blender::bke::adapt_curve_domain_point_to_curve_impl(), blender::bke::adapt_curve_domain_point_to_curve_impl(), blender::geometry::add_curves_on_mesh(), blender::ed::curves::append_point_knots(), blender::ed::greasepencil::apply_mask_as_segment_selection(), bezier_evaluated_offsets_for_curve(), blender::nodes::node_geo_blur_attribute_cc::blur_on_curve_exec(), blender::build_concurrent(), blender::build_sequential(), blender::geometry::calc_position_with_interpolation(), blender::geometry::calc_position_without_interpolation(), blender::geometry::calc_radius_with_interpolation(), blender::bke::calculate_evaluated_offsets(), blender::nodes::node_geo_curve_spline_parameter_cc::calculate_point_lengths(), blender::geometry::calculate_result_offsets(), blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::call(), blender::ed::sculpt_paint::CombOperationExecutor::comb_projected(), blender::ed::sculpt_paint::CombOperationExecutor::comb_spherical(), blender::geometry::compute_curve_trim_parameters(), blender::nodes::node_geo_interpolate_curves_cc::compute_point_counts_per_child(), blender::nodes::node_geo_interpolate_curves_cc::compute_points_per_curve_by_group(), blender::ed::greasepencil::compute_topology_change(), blender::nodes::node_geo_input_spline_length_cc::construct_curve_point_count_gvarray(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::ed::greasepencil::convert_to_catmull_rom(), blender::nodes::node_geo_duplicate_elements_cc::copy_curve_attributes_without_id(), blender::geometry::copy_or_defaults_for_unselected_curves(), blender::bke::copy_point_selection_custom_knots(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_curves(), blender::ed::curves::create_Bezier(), blender::ed::curves::tests::create_curves(), blender::create_dashes(), blender::create_envelope_strokes(), blender::ed::curves::create_NURBS(), blender::draw::create_points_position_time_vbo(), blender::bke::tests::GreasePencilInterpolate::create_test_curves(), blender::ed::transform::curves::createTransCurvesVerts(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), blender::bke::curve_legacy_to_curves(), blender::ed::curves::curve_mask_from_points(), blender::bke::curve_normal_point_domain(), blender::bke::greasepencil::Drawing::curve_plane_normals(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::nodes::node_geo_input_tangent_cc::curve_tangent_point_domain(), blender::bke::curves_copy_curve_selection(), blender::ed::curves::curves_draw_exec(), blender::draw::curves_ensure_procedural_data(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::curves_intersections_and_points_sides(), blender::ed::greasepencil::curves_merge_by_distance(), blender::ed::greasepencil::curves_merge_endpoints_by_distance(), blender::draw::curves_sub_pass_setup_implementation(), blender::geometry::debug_randomize_curve_order(), blender::nodes::node_geo_deform_curves_on_surface_cc::deform_curves(), blender::deform_drawing(), blender::deform_drawing(), blender::deform_drawing_as_envelope(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_projected(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_spherical(), blender::ed::sculpt_paint::greasepencil::deselect_stroke(), blender::io::alembic::ABCCurveWriter::do_write(), blender::ed::greasepencil::image_render::draw_grease_pencil_strokes(), blender::draw::DRW_curves_batch_cache_create_requested(), blender::ed::curves::duplicate_curves(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_curves_CurveGeometry(), blender::ed::curves::duplicate_points(), ed_curves_select_pick(), ed_grease_pencil_select_pick(), blender::ed::curves::end_points(), blender::ed::curves::subdivide::exec(), blender::ed::sculpt_paint::CombOperationExecutor::execute(), blender::ed::sculpt_paint::DeleteOperationExecutor::execute(), blender::ed::sculpt_paint::ScaleCurvesEffect::execute(), blender::ed::sculpt_paint::ShrinkCurvesEffect::execute(), blender::ed::greasepencil::execute_trim_on_drawing(), blender::ed::greasepencil::trim::expand_trim_segment_direction(), export_hair_curves(), export_hair_curves_motion(), blender::geometry::extend_curves(), blender::geometry::extract_curves(), blender::geometry::extract_greasepencil_layer_curves(), blender::ed::curves::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::geometry::fill_bezier_data(), blender::geometry::fill_nurbs_data(), blender::geometry::fillet_curves(), blender::ed::greasepencil::find_curve_intersections(), blender::ed::greasepencil::find_curve_segments(), blender::ed::sculpt_paint::PuffOperationExecutor::find_curve_weights_projected(), blender::ed::sculpt_paint::find_curves_brush_position(), blender::ed::sculpt_paint::PuffOperationExecutor::find_curves_weights_spherical(), blender::ed::sculpt_paint::SmoothOperationExecutor::find_projected_smooth_factors(), blender::ed::sculpt_paint::SmoothOperationExecutor::find_spherical_smooth_factors(), blender::ed::curves::foreach_selectable_point_range(), blender::io::grease_pencil::GreasePencilExporter::foreach_stroke_in_layer(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::gather_influences_projected(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::gather_influences_spherical(), blender::generate_curves(), blender::ed::greasepencil::get_boundary_bounds(), blender::get_factor_from_draw_speed(), blender::ed::greasepencil::trim::get_intersections_of_curve_with_curves(), blender::ed::greasepencil::get_points_to_dissolve(), blender::ed::sculpt_paint::greasepencil::get_single_stroke(), blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput::get_varray_for_context(), blender::nodes::node_geo_curve_topology_points_of_curve_cc::PointsOfCurveInput::get_varray_for_context(), blender::nodes::node_geo_offset_point_in_curve_cc::ControlPointNeighborFieldInput::get_varray_for_context(), blender::nodes::node_geo_offset_point_in_curve_cc::OffsetValidFieldInput::get_varray_for_context(), blender::ed::greasepencil::get_visible_boundary_strokes(), blender::ed::greasepencil::gpencil_stroke_subdivide_exec(), blender::ed::greasepencil::grease_pencil_clean_loose_exec(), blender::draw::grease_pencil_edit_batch_ensure(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::sculpt_paint::grease_pencil_fill_get_extension_data(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_update(), blender::ed::greasepencil::grease_pencil_material_select_exec(), blender::ed::greasepencil::grease_pencil_primitive_update_curves(), blender::ed::greasepencil::grease_pencil_set_handle_type_exec(), blender::ed::greasepencil::grease_pencil_set_uniform_thickness_exec(), blender::ed::greasepencil::grease_pencil_snap_to_cursor_exec(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::ed::greasepencil::grease_pencil_stroke_smooth_exec(), blender::ed::greasepencil::grease_pencil_texture_gradient_exec(), blender::draw::grease_pencil_weight_batch_ensure(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::hard_eraser(), blender::draw::index_buf_add_nurbs_lines(), blender::draw::index_buf_add_points(), blender::ed::sculpt_paint::greasepencil::GreasePencilStrokeOperationCommon::init_auto_masking(), blender::ed::sculpt_paint::CurvesConstraintSolver::initialize(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::nodes::node_geo_interpolate_curves_cc::interpolate_curve_attributes(), blender::nodes::node_geo_interpolate_curves_cc::interpolate_curve_shapes(), blender::geometry::interpolate_curves(), blender::geometry::interpolate_curves_with_samples(), blender::ed::sculpt_paint::greasepencil::PaintOperation::interpolate_stroke_depth(), blender::geometry::join_curves_ranges(), blender::bke::greasepencil::convert::legacy_gpencil_frame_to_grease_pencil_drawing(), blender::geometry::mesh_faces_to_curves_convert(), blender::modify_curves(), blender::modify_curves(), blender::modify_drawing(), blender::modify_drawing(), blender::modify_fill_color(), blender::modify_fill_color(), blender::modify_opacity(), blender::modify_stroke_by_index(), blender::modify_stroke_by_layer(), blender::modify_stroke_by_material(), blender::modify_stroke_color(), blender::modify_stroke_color(), blender::modify_stroke_color(), blender::modify_stroke_random(), blender::ed::sculpt_paint::greasepencil::CloneOperation::on_stroke_begin(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done(), blender::ed::sculpt_paint::greasepencil::SmoothOperation::on_stroke_extended(), blender::nodes::node_geo_interpolate_curves_cc::parameterize_guide_curves(), blender::ed::curves::convert_from_particle_system::particles_to_curves(), blender::ed::sculpt_paint::PinchOperationExecutor::pinch_projected(), blender::ed::sculpt_paint::PinchOperationExecutor::pinch_spherical(), blender::point_counts_to_keep_concurrent(), blender::points_info_sequential(), blender::io::usd::populate_curve_props_for_nurbs(), blender::io::usd::populate_curve_verts(), blender::io::usd::populate_curve_verts_for_bezier(), blender::ed::curves::primitive_random_sphere(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_start_sample(), blender::ed::sculpt_paint::greasepencil::process_stroke_weights(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::projected_snake_hook(), blender::ed::sculpt_paint::PuffOperationExecutor::puff(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::geometry::remove_points_and_split(), blender::reorder_cyclic_curve_points(), blender::reorder_strokes(), blender::geometry::resample_to_count(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_length(), blender::geometry::resample_to_uniform(), blender::geometry::resample_to_uniform(), blender::ed::curves::resize_curves(), blender::ed::greasepencil::resize_single_curve(), blender::bke::curves::bezier::retrieve_all_positions(), blender::ed::curves::retrieve_selected_curves(), blender::bke::reverse_curve_point_data(), blender::bke::reverse_swap_curve_point_data(), blender::geometry::sample_curve_attribute(), blender::geometry::sample_curve_padded(), blender::ed::curves::select_adjacent(), blender::ed::curves::select_adjacent_mask(), blender::ed::curves::select_alternate(), blender::nodes::node_geo_curve_handle_type_selection_cc::select_by_handle_type(), blender::ed::sculpt_paint::select_grow::select_grow_update(), blender::ed::curves::select_linked(), blender::ed::curves::select_linked_pick(), blender::ed::curves::select_mask_from_predicates(), blender::ed::sculpt_paint::select_random::select_random_exec(), blender::ed::curves::separate_points(), blender::ed::greasepencil::set_start_point(), blender::bke::greasepencil::Drawing::set_texture_matrices(), blender::io::grease_pencil::shape_attributes_to_curves(), blender::simplify_drawing(), blender::ed::greasepencil::simplify_fixed(), blender::ed::sculpt_paint::simplify_fixed(), blender::simplify_fixed(), blender::ed::sculpt_paint::greasepencil::simplify_stroke(), blender::ed::sculpt_paint::SlideOperationExecutor::slide(), blender::ed::sculpt_paint::SmoothOperationExecutor::smooth(), blender::geometry::smooth_curve_positions(), blender::ed::sculpt_paint::smooth_fill_strokes(), blender::ed::sculpt_paint::greasepencil::smooth_stroke(), blender::ed::curves::snap_curves_to_surface::snap_curves_to_surface_exec_object(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::soft_eraser(), blender::ed::sculpt_paint::CurvesConstraintSolver::solve_step(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::spherical_snake_hook(), blender::ed::curves::split_points(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_curves(), blender::subdivide_drawing(), blender::ed::greasepencil::subdivide_last_segement(), blender::bke::greasepencil::Drawing::tag_positions_changed(), blender::bke::greasepencil::Drawing::tag_topology_changed(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::bke::greasepencil::Drawing::texture_matrices(), blender::geometry::trim_attribute_linear(), blender::geometry::trim_bezier_curves(), blender::geometry::trim_catmull_rom_curves(), blender::ed::greasepencil::trim::trim_curve_segments(), blender::geometry::trim_curves(), blender::ed::sculpt_paint::greasepencil::trim_end_points(), blender::geometry::trim_evaluated_curves(), blender::geometry::trim_polygonal_curves(), blender::ed::sculpt_paint::greasepencil::trim_stroke_ends(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), blender::ed::object::vgroup_grease_pencil_select_verts(), blender::ed::greasepencil::weight_sample_invoke(), blender::bke::curves::bezier::write_all_positions(), blender::io::hydra::CurvesData::write_curves(), blender::write_fill_transforms(), blender::bke::write_sharp_bezier_edges(), blender::write_stroke_transforms(), and blender::write_weights_for_drawing().

◆ points_num()

int CurvesGeometry::points_num ( ) const
inline

The total number of control points in all curves.

Definition at line 964 of file BKE_curves.hh.

References CurvesGeometry::point_num.

Referenced by blender::ed::curves::add_curves(), blender::geometry::add_curves_on_mesh(), blender::ed::greasepencil::add_single_curve(), blender::ed::curves::append_primitive_curve(), blender::ed::greasepencil::apply_mask_as_segment_selection(), BKE_grease_pencil_stroke_point_count(), blender::ed::greasepencil::boundary_to_curves(), blender::bke::build_mesh_positions(), blender::nodes::node_geo_curve_spline_parameter_cc::calculate_point_lengths(), blender::bke::compare_geometry::compare_curves(), blender::bke::curves::create_attribute_providers_for_curve(), blender::ed::curves::create_Bezier(), blender::create_envelope_strokes(), blender::ed::curves::create_NURBS(), blender::ed::transform::curves::createTransCurvesVerts(), blender::ed::curves::curve_mask_from_points(), blender::bke::curve_normal_point_domain(), blender::nodes::node_geo_input_tangent_cc::curve_tangent_point_domain(), blender::nodes::node_geo_curve_to_mesh_cc::curve_to_mesh(), blender::bke::curves_convert_customdata_to_storage(), blender::ed::curves::curves_draw_exec(), blender::draw::curves_ensure_procedural_data(), blender::ed::greasepencil::curves_geometry_is_equal(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::curves_intersections_and_points_sides(), blender::ed::greasepencil::curves_merge_by_distance(), blender::bke::curves_normals_point_domain_calc(), blender::nodes::node_geo_curve_to_points_cc::curves_to_points(), blender::ed::object::data_xform_create_ex(), blender::deform_drawing(), blender::io::alembic::ABCCurveWriter::do_write(), blender::bke::domain_num(), blender::bke::greasepencil::domain_num(), blender::ed::curves::duplicate_curves(), blender::ed::curves::duplicate_points(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_CurvesGeometry(), blender::duplicate_strokes(), blender::ed::curves::end_points(), blender::draw::ensure_control_point_attribute(), blender::bke::evaluate_attribute(), blender::ed::curves::clear_tilt::exec(), blender::ed::curves::subdivide::exec(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::execute(), blender::ed::sculpt_paint::SmoothOperationExecutor::execute(), blender::geometry::execute_realize_curve_task(), blender::ed::greasepencil::execute_trim_on_drawing(), blender::geometry::extend_curves(), blender::io::grease_pencil::extend_curves_geometry(), blender::ed::curves::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::nodes::node_geo_curve_fillet_cc::fillet_curve(), blender::geometry::fillet_curves(), blender::geometry::fillet_curves_bezier(), blender::ed::greasepencil::find_curve_segments(), blender::ed::greasepencil::fit_poly_curves(), blender::geometry::fit_poly_to_bezier_curves(), blender::bke::curves::get_curves_accessor_functions(), blender::bke::crazyspace::get_evaluated_curves_deformation(), blender::get_factor_from_draw_speed(), blender::bke::curves::CurvesVertexGroupsAttributeProvider::get_for_vertex_group_index(), blender::ed::greasepencil::get_points_to_dissolve(), blender::ed::greasepencil::get_stroke_colors(), blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput::get_varray_for_context(), blender::nodes::node_geo_curve_topology_points_of_curve_cc::PointsOfCurveInput::get_varray_for_context(), blender::nodes::node_geo_offset_point_in_curve_cc::ControlPointNeighborFieldInput::get_varray_for_context(), blender::ed::greasepencil::gpencil_stroke_subdivide_exec(), blender::ed::greasepencil::grease_pencil_copy_strokes_exec(), blender::draw::grease_pencil_edit_batch_ensure(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_update(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::draw::grease_pencil_weight_batch_ensure(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::hard_eraser(), blender::draw::index_buf_add_points(), blender::ed::sculpt_paint::CurvesConstraintSolver::initialize(), blender::geometry::interpolate_curves(), blender::geometry::interpolate_curves_with_samples(), blender::geometry::join_curves_ranges(), blender::modify_curves(), blender::modify_drawing(), blender::ed::object::object_origin_set_exec(), blender::ed::sculpt_paint::greasepencil::TintOperation::on_stroke_begin(), blender::ed::sculpt_paint::greasepencil::SmoothOperation::on_stroke_extended(), blender::ed::sculpt_paint::greasepencil::ThicknessOperation::on_stroke_extended(), blender::ed::curves::point_normals_array_create(), points_range(), blender::bke::remember_deformed_curve_positions_if_necessary(), blender::bke::remember_deformed_grease_pencil_if_necessary(), blender::geometry::remove_points_and_split(), blender::geometry::reorder_curves_geometry(), blender::reorder_cyclic_curve_points(), blender::geometry::resample_to_uniform(), blender::ed::greasepencil::resize_single_curve(), blender::ed::curves::select_adjacent_mask(), blender::ed::sculpt_paint::select_grow::select_grow_update(), blender::nodes::node_geo_curve_set_handle_type_cc::set_handle_type(), blender::nodes::node_geo_set_curve_handles_cc::set_position_in_component(), blender::ed::greasepencil::set_start_point(), blender::simplify_drawing(), blender::ed::sculpt_paint::greasepencil::simplify_opacities(), blender::ed::sculpt_paint::greasepencil::simplify_stroke(), blender::geometry::smooth_curve_positions(), blender::ed::sculpt_paint::smooth_fill_strokes(), blender::ed::sculpt_paint::greasepencil::smooth_stroke(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::soft_eraser(), stats_object(), stats_object_edit(), stats_object_sculpt(), blender::geometry::subdivide_curves(), blender::nodes::node_geo_curve_subdivide_cc::subdivide_curves(), blender::subdivide_drawing(), blender::nodes::node_geo_curve_subdivide_cc::subdivide_grease_pencil_curves(), blender::ed::greasepencil::subdivide_last_segement(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::ed::greasepencil::trim::trim_curve_segments(), blender::ed::sculpt_paint::greasepencil::trim_end_points(), blender::ed::object::vgroup_parray_alloc(), and blender::io::hydra::CurvesData::write_curves().

◆ points_range()

IndexRange CurvesGeometry::points_range ( ) const
inline

Definition at line 982 of file BKE_curves.hh.

References points_num().

Referenced by blender::ed::curves::add_curves(), blender::geometry::add_curves_on_mesh(), BKE_grease_pencil_point_coords_apply(), BKE_grease_pencil_point_coords_apply_with_mat4(), BKE_grease_pencil_point_coords_get(), blender::ed::greasepencil::boundary_to_curves(), blender::ed::object::convert_grease_pencil_to_mesh(), blender::bke::tests::create_basic_curves(), blender::create_envelope_strokes(), blender::ed::transform::curves::createTransCurvesVerts(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::curves_intersections_and_points_sides(), blender::io::alembic::ABCCurveWriter::do_write(), blender::ed::curves::set_handle_type::exec(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::execute(), blender::ed::greasepencil::execute_trim_on_drawing(), blender::ed::curves::foreach_selectable_point_range(), blender::nodes::node_geo_offset_point_in_curve_cc::OffsetValidFieldInput::get_varray_for_context(), blender::ed::greasepencil::grease_pencil_copy_strokes_exec(), blender::draw::grease_pencil_edit_batch_ensure(), blender::draw::grease_pencil_get_visible_nurbs_points(), blender::draw::grease_pencil_weight_batch_ensure(), blender::ed::sculpt_paint::greasepencil::GreasePencilStrokeOperationCommon::init_auto_masking(), blender::ed::object::object_origin_set_exec(), blender::ed::sculpt_paint::greasepencil::TintOperation::on_stroke_begin(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_point_selection_projected(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::io::usd::USDBasisCurvesReader::read_curve_sample(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::ed::sculpt_paint::greasepencil::remove_points_with_low_opacity(), blender::ed::greasepencil::retrieve_editable_points(), blender::ed::greasepencil::retrieve_visible_bezier_handle_points(), blender::ed::greasepencil::retrieve_visible_points(), blender::ed::sculpt_paint::select_grow::select_grow_invoke_per_curve(), blender::ed::curves::select_mask_from_predicates(), blender::simplify_drawing(), blender::ed::greasepencil::simplify_fixed(), blender::ed::sculpt_paint::simplify_fixed(), blender::simplify_fixed(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::soft_eraser(), blender::ed::object::vgroup_grease_pencil_select_verts(), and blender::io::hydra::CurvesData::write_curves().

◆ positions()

Span< float3 > CurvesGeometry::positions ( ) const

Definition at line 384 of file curves_geometry.cc.

References ATTR_POSITION, and get_span_attribute().

Referenced by blender::geometry::add_curves_on_mesh(), BKE_grease_pencil_point_coords_get(), blender::nodes::node_geo_interpolate_curves_cc::build_kdtrees_for_root_positions(), blender::ed::transform::curves::calculate_aligned_handles(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::ed::greasepencil::convert_to_catmull_rom(), blender::geometry::copy_or_defaults_for_unselected_curves(), blender::ed::greasepencil::create_curves_outline(), blender::draw::create_points_position_time_vbo(), blender::bke::curve_normal_point_domain(), blender::bke::greasepencil::Drawing::curve_plane_normals(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::nodes::node_geo_input_tangent_cc::curve_tangent_point_domain(), blender::ed::greasepencil::curves_merge_endpoints_by_distance(), blender::ed::object::data_xform_create_ex(), blender::io::alembic::ABCCurveWriter::do_write(), blender::ed::greasepencil::image_render::draw_grease_pencil_strokes(), blender::ed::sculpt_paint::AddOperationExecutor::ensure_curve_roots_kdtree(), blender::ed::sculpt_paint::AddOperationExecutor::execute(), blender::ed::sculpt_paint::SlideOperationExecutor::execute(), blender::geometry::execute_realize_curve_task(), export_hair_curves(), export_hair_curves_motion(), blender::geometry::fillet_curves(), blender::geometry::fit_poly_to_bezier_curves(), blender::io::grease_pencil::GreasePencilExporter::foreach_stroke_in_layer(), blender::ed::curves::get_curves_positions(), blender::bke::crazyspace::get_evaluated_curves_deformation(), blender::bke::crazyspace::get_evaluated_grease_pencil_drawing_deformation(), blender::nodes::node_geo_string_to_curves_cc::get_pivot_point(), blender::nodes::node_geo_input_curve_handles_cc::HandlePositionFieldInput::get_varray_for_context(), blender::draw::grease_pencil_cache_add_nurbs(), blender::draw::grease_pencil_edit_batch_ensure(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::sculpt_paint::grease_pencil_fill_get_extension_data(), blender::ed::greasepencil::grease_pencil_snap_compute_centroid(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::ed::greasepencil::grease_pencil_texture_gradient_exec(), blender::draw::grease_pencil_weight_batch_ensure(), blender::ed::sculpt_paint::CurvesConstraintSolver::initialize(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::nodes::node_geo_interpolate_curves_cc::interpolate_curve_shapes(), blender::modify_drawing(), blender::modify_fill_color(), blender::modify_stroke_color(), blender::ed::object::object_origin_set_exec(), blender::ed::sculpt_paint::greasepencil::CloneOperation::on_stroke_begin(), blender::ed::sculpt_paint::greasepencil::outline_stroke(), blender::io::usd::populate_curve_props(), blender::io::usd::populate_curve_props_for_bezier(), blender::io::usd::populate_curve_props_for_nurbs(), blender::ed::sculpt_paint::DensityAddOperationExecutor::prepare_curve_roots_kdtrees(), blender::reorder_strokes(), blender::bke::curves::bezier::retrieve_all_positions(), blender::geometry::sample_curve_padded(), blender::ed::sculpt_paint::select_grow::select_grow_invoke_per_curve(), blender::nodes::node_geo_set_curve_handles_cc::set_position_in_component(), blender::bke::greasepencil::Drawing::set_texture_matrices(), blender::simplify_drawing(), blender::ed::sculpt_paint::greasepencil::simplify_opacities(), blender::ed::sculpt_paint::greasepencil::simplify_stroke(), blender::ed::sculpt_paint::CurvesConstraintSolver::solve_step(), blender::geometry::subdivide_curves(), blender::subdivide_drawing(), blender::ed::greasepencil::subdivide_last_segement(), blender::bke::greasepencil::Drawing::tag_positions_changed(), blender::bke::greasepencil::Drawing::tag_topology_changed(), blender::bke::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::ed::curves::tests::TEST(), blender::bke::greasepencil::Drawing::texture_matrices(), blender::geometry::trim_bezier_curves(), blender::geometry::trim_catmull_rom_curves(), blender::geometry::trim_polygonal_curves(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), blender::io::hydra::CurvesData::write_curves(), blender::write_fill_transforms(), and blender::write_weights_for_drawing().

◆ positions_for_write()

MutableSpan< float3 > CurvesGeometry::positions_for_write ( )

Definition at line 388 of file curves_geometry.cc.

References ATTR_POSITION, and get_mutable_attribute().

Referenced by BKE_grease_pencil_point_coords_apply(), BKE_grease_pencil_point_coords_apply_with_mat4(), blender::ed::greasepencil::boundary_to_curves(), blender::geometry::calc_position_with_interpolation(), blender::geometry::calc_position_without_interpolation(), blender::geometry::calc_radius_with_interpolation(), blender::ed::sculpt_paint::CombOperationExecutor::comb_projected(), blender::ed::sculpt_paint::CombOperationExecutor::comb_spherical(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::ed::object::convert_grease_pencil_to_mesh(), blender::geometry::copy_or_defaults_for_unselected_curves(), blender::nodes::node_geo_curve_primitive_arc_cc::create_arc_curve_from_points(), blender::nodes::node_geo_curve_primitive_arc_cc::create_arc_curve_from_radius(), blender::bke::tests::create_basic_curves(), blender::ed::curves::create_Bezier(), blender::nodes::node_geo_curve_primitive_bezier_segment_cc::create_bezier_segment_curve(), blender::ed::curves::tests::create_curves(), blender::nodes::node_geo_curve_primitive_line_cc::create_direction_line_curve(), blender::ed::curves::create_NURBS(), blender::nodes::node_geo_curve_primitive_circle_cc::create_point_circle_curve(), blender::nodes::node_geo_curve_primitive_line_cc::create_point_line_curve(), blender::nodes::node_geo_curve_primitive_quadratic_bezier_cc::create_quadratic_bezier_curve(), blender::nodes::node_geo_curve_primitive_circle_cc::create_radius_circle_curve(), blender::nodes::node_geo_curve_primitive_spiral_cc::create_spiral_curve(), blender::nodes::node_geo_curve_primitive_star_cc::create_star_curve(), blender::bke::tests::GreasePencilInterpolate::create_test_curves(), blender::bke::curve_legacy_to_curves(), blender::ed::curves::curves_draw_exec(), blender::ed::object::data_xform_by_mat4(), blender::ed::object::data_xform_restore(), blender::deform_drawing(), blender::deform_drawing(), blender::deform_drawing_as_envelope(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::execute(), blender::geometry::execute_realize_curve_task(), blender::geometry::extend_curves(), blender::geometry::fillet_curves(), blender::generate_curves(), blender::bke::get_curve_single_vert(), blender::ed::curves::get_curves_positions_for_write(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_update(), blender::ed::greasepencil::grease_pencil_primitive_update_curves(), blender::ed::greasepencil::grease_pencil_reproject_exec(), blender::ed::greasepencil::grease_pencil_snap_to_cursor_exec(), blender::ed::greasepencil::grease_pencil_snap_to_grid_exec(), blender::nodes::node_geo_interpolate_curves_cc::interpolate_curve_shapes(), blender::geometry::interpolate_curves_with_samples(), blender::ed::sculpt_paint::greasepencil::PaintOperation::interpolate_stroke_depth(), blender::bke::greasepencil::convert::legacy_gpencil_frame_to_grease_pencil_drawing(), blender::ed::object::mesh_data_to_grease_pencil(), MOD_lineart_gpencil_generate_v3(), blender::modify_curves(), blender::modify_curves(), blender::modify_drawing(), blender::modify_stroke_by_index(), blender::modify_stroke_by_layer(), blender::modify_stroke_by_material(), blender::modify_stroke_random(), blender::ed::space_node::node_draw_zones_and_frames(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_geo_exec(), blender::nodes::node_geo_deform_curves_on_surface_cc::node_geo_exec(), blender::ed::sculpt_paint::greasepencil::CloneOperation::on_stroke_begin(), blender::ed::sculpt_paint::greasepencil::GrabOperation::on_stroke_extended(), blender::ed::sculpt_paint::greasepencil::PinchOperation::on_stroke_extended(), blender::ed::sculpt_paint::greasepencil::PushOperation::on_stroke_extended(), blender::ed::sculpt_paint::greasepencil::RandomizeOperation::on_stroke_extended(), blender::ed::sculpt_paint::greasepencil::TwistOperation::on_stroke_extended(), blender::ed::sculpt_paint::greasepencil::outline_stroke(), blender::ed::curves::convert_from_particle_system::particles_to_curves(), blender::ed::sculpt_paint::PinchOperationExecutor::pinch_projected(), blender::ed::sculpt_paint::PinchOperationExecutor::pinch_spherical(), blender::ed::curves::primitive_random_sphere(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_start_sample(), blender::ed::sculpt_paint::greasepencil::process_stroke_weights(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::projected_snake_hook(), blender::ed::sculpt_paint::PuffOperationExecutor::puff(), blender::io::usd::USDBasisCurvesReader::read_curve_sample(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_uniform(), blender::io::grease_pencil::shape_attributes_to_curves(), blender::ed::sculpt_paint::SlideOperationExecutor::slide(), blender::ed::sculpt_paint::SmoothOperationExecutor::smooth(), blender::ed::curves::snap_curves_to_surface::snap_curves_to_surface_exec_object(), blender::ed::sculpt_paint::CurvesConstraintSolver::solve_step(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::spherical_snake_hook(), blender::geometry::subdivide_curves(), blender::subdivide_drawing(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::geometry::trim_bezier_curves(), blender::geometry::trim_catmull_rom_curves(), blender::geometry::trim_evaluated_curves(), blender::geometry::trim_polygonal_curves(), and blender::bke::curves::bezier::write_all_positions().

◆ radius()

◆ radius_for_write()

◆ remove_attributes_based_on_types()

◆ remove_curves()

◆ remove_points()

◆ resize()

void CurvesGeometry::resize ( int points_num,
int curves_num )

Change the number of curves and/or points.

Warning
To avoid redundant writes, newly created attribute values are not initialized. They must be initialized by the caller afterwards.

Definition at line 1171 of file curves_geometry.cc.

References BLI_assert, blender::bke::CurvesGeometryRuntime::curve_offsets_sharing_info, CustomData_realloc(), blender::implicit_sharing::resize_trivial_array(), and this.

Referenced by blender::ed::curves::add_curves(), blender::geometry::add_curves_on_mesh(), blender::ed::greasepencil::add_single_curve(), blender::ed::greasepencil::compute_topology_change(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::ed::curves::create_Bezier(), blender::geometry::create_curves_for_faces(), blender::ed::curves::create_NURBS(), blender::geometry::tests::create_test_curves(), blender::bke::curve_legacy_to_curves(), blender::bke::curves_copy_curve_selection(), blender::ed::curves::curves_draw_exec(), blender::bke::curves_new_nomain(), blender::ed::curves::duplicate_curves(), blender::ed::curves::duplicate_points(), blender::geometry::extend_curves(), blender::io::grease_pencil::extend_curves_geometry(), blender::geometry::extract_greasepencil_layer_curves(), blender::geometry::extract_greasepencil_layer_points(), blender::ed::curves::extrude_curves(), blender::geometry::fillet_curves(), blender::nodes::node_geo_interpolate_curves_cc::generate_interpolated_curves(), blender::bke::greasepencil::convert::legacy_gpencil_frame_to_grease_pencil_drawing(), blender::ed::object::mesh_data_to_grease_pencil(), blender::io::usd::USDBasisCurvesReader::read_curve_sample(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::geometry::resample_to_count(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_length(), blender::geometry::resample_to_uniform(), blender::ed::curves::resize_curves(), blender::ed::greasepencil::resize_single_curve(), blender::geometry::subdivide_curves(), blender::bke::tests::TEST(), blender::ed::greasepencil::tests::TEST(), blender::geometry::trim_curves(), and blender::ed::sculpt_paint::greasepencil::trim_end_points().

◆ resolution()

VArray< int > CurvesGeometry::resolution ( ) const

◆ resolution_for_write()

◆ reverse_curves()

◆ surface_uv_coords()

◆ surface_uv_coords_for_write()

◆ tag_material_index_changed()

void CurvesGeometry::tag_material_index_changed ( )

◆ tag_normals_changed()

◆ tag_positions_changed()

void CurvesGeometry::tag_positions_changed ( )

Call after deforming the position attribute.

Definition at line 1194 of file curves_geometry.cc.

References blender::bke::CurvesGeometryRuntime::bounds_cache, blender::bke::CurvesGeometryRuntime::bounds_with_radius_cache, blender::bke::CurvesGeometryRuntime::evaluated_length_cache, blender::bke::CurvesGeometryRuntime::evaluated_normal_cache, blender::bke::CurvesGeometryRuntime::evaluated_position_cache, and blender::bke::CurvesGeometryRuntime::evaluated_tangent_cache.

Referenced by blender::ed::object::data_xform_tag_update(), ED_transverts_update_obedit(), blender::ed::sculpt_paint::CombOperationExecutor::execute(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::execute(), blender::ed::sculpt_paint::PinchOperationExecutor::execute(), blender::ed::sculpt_paint::PuffOperationExecutor::execute(), blender::ed::sculpt_paint::SlideOperationExecutor::execute(), blender::ed::sculpt_paint::SmoothOperationExecutor::execute(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::execute(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_update(), blender::nodes::node_geo_deform_curves_on_surface_cc::node_geo_exec(), blender::ed::transform::curves::recalcData_curves(), blender::ed::transform::greasepencil::recalcData_grease_pencil(), blender::io::grease_pencil::shape_attributes_to_curves(), blender::ed::sculpt_paint::smooth_fill_strokes(), blender::ed::sculpt_paint::CurvesConstraintSolver::solve_step(), blender::bke::curves::tag_component_positions_changed(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), and v3d_editvertex_buts().

◆ tag_radii_changed()

◆ tag_topology_changed()

void CurvesGeometry::tag_topology_changed ( )

Call after any operation that changes the topology (number of points, evaluated points, or the total count).

Definition at line 1203 of file curves_geometry.cc.

References blender::bke::CurvesGeometryRuntime::check_type_counts, blender::bke::CurvesGeometryRuntime::custom_knot_offsets_cache, blender::bke::CurvesGeometryRuntime::evaluated_offsets_cache, blender::bke::CurvesGeometryRuntime::max_material_index_cache, blender::bke::CurvesGeometryRuntime::nurbs_basis_cache, and blender::SharedCache< T >::tag_dirty().

Referenced by blender::ed::curves::append_primitive_curve(), blender::geometry::copy_and_reorder_curves(), blender::ed::curves::tests::create_curves(), blender::ed::transform::curves::createTransCurvesVerts(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), blender::geometry::debug_randomize_curve_order(), blender::ed::curves::duplicate_curves(), blender::ed::curves::duplicate_points(), blender::io::grease_pencil::extend_curves_geometry(), fill_curve_types(), fill_curve_types(), blender::ed::sculpt_paint::grease_pencil_apply_fill(), blender::ed::greasepencil::grease_pencil_cyclical_set_exec(), blender::ed::greasepencil::grease_pencil_set_curve_type_exec(), blender::ed::greasepencil::grease_pencil_set_handle_type_exec(), blender::ed::greasepencil::grease_pencil_stroke_reorder_exec(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::geometry::join_curves_ranges(), blender::geometry::reorder_and_flip_curves(), blender::ed::curves::resize_curves(), blender::nodes::node_geo_curve_set_handle_type_cc::set_handle_type(), blender::bke::curves::tag_component_curve_types_changed(), blender::bke::curves::tag_component_topology_changed(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), and blender::geometry::trim_curves().

◆ tilt()

VArray< float > CurvesGeometry::tilt ( ) const

The angle used to rotate evaluated normals around the tangents after their calculation. Call tag_normals_changed after changes.

Definition at line 446 of file curves_geometry.cc.

References blender::bke::ATTR_TILT, and get_varray_attribute().

◆ tilt_for_write()

MutableSpan< float > CurvesGeometry::tilt_for_write ( )

◆ transform()

◆ translate()

◆ update_curve_types()


The documentation for this class was generated from the following files: