Blender  V3.3
Classes | Namespaces | Functions
geometry_component_curve.cc File Reference
#include "BLI_task.hh"
#include "DNA_ID_enums.h"
#include "DNA_curve_types.h"
#include "BKE_attribute_math.hh"
#include "BKE_curve.h"
#include "BKE_geometry_set.hh"
#include "BKE_lib_id.h"
#include "BKE_spline.hh"
#include "attribute_access_intern.hh"

Go to the source code of this file.

Classes

class  blender::bke::VArray_For_SplineToPoint< T >
 
class  blender::bke::BuiltinSplineAttributeProvider
 
class  blender::bke::VArrayImpl_For_SplinePoints< T >
 
class  blender::bke::VArrayImpl_For_SplinePosition
 
class  blender::bke::VArrayImpl_For_BezierHandles
 
class  blender::bke::BuiltinPointAttributeProvider< T >
 
class  blender::bke::PositionAttributeProvider
 
class  blender::bke::BezierHandleAttributeProvider
 
class  blender::bke::DynamicPointAttributeProvider
 

Namespaces

 blender
 
 blender::bke
 

Functions

static PointIndices blender::bke::lookup_point_indices (Span< int > offsets, const int index)
 
template<typename T >
static void blender::bke::adapt_curve_domain_point_to_spline_impl (const CurveEval &curve, const VArray< T > &old_values, MutableSpan< T > r_values)
 
template<>
void blender::bke::adapt_curve_domain_point_to_spline_impl (const CurveEval &curve, const VArray< bool > &old_values, MutableSpan< bool > r_values)
 
static GVArray blender::bke::adapt_curve_domain_point_to_spline (const CurveEval &curve, GVArray varray)
 
static GVArray blender::bke::adapt_curve_domain_spline_to_point (const CurveEval &curve, GVArray varray)
 
static AttributeAccessorFunctions blender::bke::get_curve_accessor_functions ()
 
static const AttributeAccessorFunctions & blender::bke::get_curve_accessor_functions_ref ()
 
Attribute Access Helper Functions
static GVArray adapt_curve_attribute_domain (const CurveEval &curve, const GVArray &varray, const eAttrDomain from_domain, const eAttrDomain to_domain)
 
Builtin Spline Attributes

Attributes with a value for every spline, stored contiguously or in every spline separately.

static int blender::bke::get_spline_resolution (const SplinePtr &spline)
 
static void blender::bke::set_spline_resolution (SplinePtr &spline, const int resolution)
 
static GVArray blender::bke::make_resolution_read_attribute (const CurveEval &curve)
 
static GVMutableArray blender::bke::make_resolution_write_attribute (CurveEval &curve)
 
static bool blender::bke::get_cyclic_value (const SplinePtr &spline)
 
static void blender::bke::set_cyclic_value (SplinePtr &spline, const bool value)
 
static GVArray blender::bke::make_cyclic_read_attribute (const CurveEval &curve)
 
static GVMutableArray blender::bke::make_cyclic_write_attribute (CurveEval &curve)
 
Builtin Control Point Attributes

Attributes with a value for every control point. Most of the complexity here is due to the fact that we must provide access to the attribute data as if it was a contiguous array when it is really stored separately on each spline. That will be inherently rather slow, but these virtual array implementations try to make it workable in common situations.

template<typename T >
static void blender::bke::point_attribute_materialize (Span< Span< T >> data, Span< int > offsets, const IndexMask mask, MutableSpan< T > r_span)
 
template<typename T >
static void blender::bke::point_attribute_materialize_to_uninitialized (Span< Span< T >> data, Span< int > offsets, const IndexMask mask, MutableSpan< T > r_span)
 
static GVArray blender::bke::varray_from_initializer (const AttributeInit &initializer, const eCustomDataType data_type, const Span< SplinePtr > splines)
 
static bool blender::bke::create_point_attribute (CurveEval *curve, const AttributeIDRef &attribute_id, const AttributeInit &initializer, const eCustomDataType data_type)
 
static bool blender::bke::remove_point_attribute (CurveEval *curve, const AttributeIDRef &attribute_id)
 
template<typename T >
VArray< Tblender::bke::point_data_varray (Array< MutableSpan< T >> spans, Array< int > offsets)
 
template<typename T >
VMutableArray< Tblender::bke::point_data_varray_mutable (Array< MutableSpan< T >> spans, Array< int > offsets)
 
Attribute Provider Declaration
static ComponentAttributeProviders blender::bke::create_attribute_providers_for_curve ()
 

Function Documentation

◆ adapt_curve_attribute_domain()

static GVArray adapt_curve_attribute_domain ( const CurveEval curve,
const GVArray varray,
const eAttrDomain  from_domain,
const eAttrDomain  to_domain 
)
static

Variable Documentation

◆ point_index

int point_index

Definition at line 121 of file geometry_component_curve.cc.

Referenced by blender::bke::adapt_mesh_domain_corner_to_point_impl(), blender::bke::adapt_mesh_domain_face_to_point_impl(), add_stroke(), add_stroke_cyclic(), add_stroke_simple(), add_vertex_extrude(), add_vertex_new(), add_vertex_subdivide(), adjacent_grid_corner_point_index_on_edge(), BKE_brush_weight_get(), BKE_curve_decimate_bezt_array(), BKE_gpencil_stroke_editcurve_sync_selection(), BKE_gpencil_stroke_smooth_point(), BKE_gpencil_stroke_smooth_strength(), BKE_gpencil_stroke_smooth_thickness(), BKE_gpencil_stroke_smooth_uv(), BKE_mask_layer_copy(), BKE_ptcache_mem_pointers_seek(), brush_comb(), brush_length(), brush_puff(), brush_smooth_do(), calculate_autoscale_factor(), NURBSpline::calculate_basis_cache(), create_samples(), blender::io::usd::USDHairWriter::do_write(), ensure_edit_inner_points_count(), ensure_edit_tip_points_count(), export_hair_curves_motion(), generate_geometry(), gpencil_stroke_points_from_editcurve_adaptive_resolu(), blender::bke::curves::nurbs::interpolate_to_evaluated(), interpolate_to_evaluated_impl(), blender::bke::curves::nurbs::interpolate_to_evaluated_rational(), mask_spline_add_point_at_index(), nearest_key_fn(), neighbor_coords_edge_get(), next_adjacent_edge_point_index(), particle_batch_cache_ensure_edit_inner_pos(), particle_batch_cache_ensure_edit_tip_pos(), prev_adjacent_edge_point_index(), select_key(), select_key_op(), select_keys(), select_less_keys(), select_more_keys(), select_root(), select_tip(), setup_vertex_point(), and track_to_path_segment().

◆ spline_index

int spline_index