Blender V5.0
BKE_curves.hh File Reference

Low-level operations for curves. More...

Go to the source code of this file.

Classes

struct  blender::bke::curves::nurbs::BasisCache
class  blender::bke::CurvesGeometryRuntime
struct  blender::bke::CurvesGeometryRuntime::EvaluatedOffsets
class  blender::bke::CurvesGeometry
struct  blender::bke::CurvesGeometry::BlendWriteData
class  blender::bke::CurvesEditHints
struct  blender::bke::curves::bezier::Insertion
struct  blender::bke::CurvesSurfaceTransforms

Namespaces

namespace  blender
namespace  blender::bke
namespace  blender::bke::bake
namespace  blender::bke::curves
namespace  blender::bke::curves::nurbs
namespace  blender::bke::curves::poly
namespace  blender::bke::curves::bezier
namespace  blender::bke::curves::catmull_rom

Functions

void blender::bke::curves_normals_point_domain_calc (const CurvesGeometry &curves, MutableSpan< float3 > normals)
void blender::bke::curves::poly::calculate_tangents (Span< float3 > positions, bool is_cyclic, MutableSpan< float3 > tangents)
void blender::bke::curves::poly::calculate_normals_minimum (Span< float3 > tangents, bool cyclic, MutableSpan< float3 > normals)
void blender::bke::curves::poly::calculate_normals_z_up (Span< float3 > tangents, MutableSpan< float3 > normals)
bool blender::bke::curves::bezier::segment_is_vector (const HandleType left, const HandleType right)
bool blender::bke::curves::bezier::segment_is_vector (const int8_t left, const int8_t right)
bool blender::bke::curves::bezier::segment_is_vector (Span< int8_t > handle_types_left, Span< int8_t > handle_types_right, int segment_index)
bool blender::bke::curves::bezier::has_vector_handles (int num_curve_points, int64_t evaluated_size, bool cyclic, int resolution)
bool blender::bke::curves::bezier::last_cyclic_segment_is_vector (Span< int8_t > handle_types_left, Span< int8_t > handle_types_right)
bool blender::bke::curves::bezier::point_is_sharp (Span< int8_t > handle_types_left, Span< int8_t > handle_types_right, int index)
void blender::bke::curves::bezier::calculate_evaluated_offsets (Span< int8_t > handle_types_left, Span< int8_t > handle_types_right, bool cyclic, int resolution, MutableSpan< int > evaluated_offsets)
Insertion blender::bke::curves::bezier::insert (const float3 &point_prev, const float3 &handle_prev, const float3 &handle_next, const float3 &point_next, float parameter)
float3 blender::bke::curves::bezier::calculate_vector_handle (const float3 &point, const float3 &next_point)
void blender::bke::curves::bezier::calculate_auto_handles (bool cyclic, Span< int8_t > types_left, Span< int8_t > types_right, Span< float3 > positions, MutableSpan< float3 > positions_left, MutableSpan< float3 > positions_right)
void blender::bke::curves::bezier::calculate_aligned_handles (const IndexMask &selection, Span< float3 > positions, Span< float3 > align_by, MutableSpan< float3 > align)
void blender::bke::curves::bezier::set_handle_position (const float3 &position, HandleType type, HandleType type_other, const float3 &new_handle, float3 &handle, float3 &handle_other)
template<typename T>
void blender::bke::curves::bezier::evaluate_segment (const T &point_0, const T &point_1, const T &point_2, const T &point_3, MutableSpan< T > result)
void blender::bke::curves::bezier::calculate_evaluated_positions (Span< float3 > positions, Span< float3 > handles_left, Span< float3 > handles_right, OffsetIndices< int > evaluated_offsets, MutableSpan< float3 > evaluated_positions)
void blender::bke::curves::bezier::interpolate_to_evaluated (GSpan src, OffsetIndices< int > evaluated_offsets, GMutableSpan dst)
int blender::bke::curves::catmull_rom::calculate_evaluated_num (int points_num, bool cyclic, int resolution)
void blender::bke::curves::catmull_rom::interpolate_to_evaluated (GSpan src, bool cyclic, int resolution, GMutableSpan dst)
void blender::bke::curves::catmull_rom::interpolate_to_evaluated (const GSpan src, const bool cyclic, const OffsetIndices< int > evaluated_offsets, GMutableSpan dst)
float4 blender::bke::curves::catmull_rom::calculate_basis (const float parameter)
template<typename T>
T blender::bke::curves::catmull_rom::interpolate (const T &a, const T &b, const T &c, const T &d, const float parameter)
bool blender::bke::curves::nurbs::check_valid_eval_params (int points_num, int8_t order, bool cyclic, KnotsMode knots_mode, int resolution)
int blender::bke::curves::nurbs::calculate_evaluated_num (int points_num, int8_t order, bool cyclic, int resolution, KnotsMode knots_mode, Span< float > knots)
int blender::bke::curves::nurbs::knots_num (int points_num, int8_t order, bool cyclic)
int blender::bke::curves::nurbs::control_points_num (int num_control_points, int8_t order, bool cyclic)
void blender::bke::curves::nurbs::load_curve_knots (KnotsMode mode, int points_num, int8_t order, bool cyclic, IndexRange curve_knots, Span< float > custom_knots, MutableSpan< float > knots)
void blender::bke::curves::nurbs::calculate_knots (int points_num, KnotsMode mode, int8_t order, bool cyclic, MutableSpan< float > knots)
Vector< int > blender::bke::curves::nurbs::calculate_multiplicity_sequence (Span< float > knots)
void blender::bke::curves::nurbs::calculate_basis_cache (int points_num, int evaluated_num, int8_t order, int resolution, bool cyclic, KnotsMode knots_mode, Span< float > knots, BasisCache &basis_cache)
void blender::bke::curves::nurbs::interpolate_to_evaluated (const BasisCache &basis_cache, int8_t order, Span< float > control_weights, GSpan src, GMutableSpan dst)
Curvesblender::bke::curves_new_nomain (int points_num, int curves_num)
Curvesblender::bke::curves_new_nomain (CurvesGeometry curves)
Curvesblender::bke::curves_new_nomain_single (int points_num, CurveType type)
void blender::bke::curves_copy_parameters (const Curves &src, Curves &dst)
const AttributeAccessorFunctionsblender::bke::curves::get_attribute_accessor_functions ()
Inline Curve Methods
int blender::bke::curves::segments_num (const int points_num, const bool cyclic)
float2 blender::bke::curves::encode_surface_bary_coord (const float3 &v)
float3 blender::bke::curves::decode_surface_bary_coord (const float2 &v)
IndexRange blender::bke::curves::per_curve_point_offsets_range (const IndexRange points, const int curve_index)
Operations
CurvesGeometry blender::bke::curves_copy_point_selection (const CurvesGeometry &curves, const IndexMask &points_to_copy, const AttributeFilter &attribute_filter)
CurvesGeometry blender::bke::curves_copy_curve_selection (const CurvesGeometry &curves, const IndexMask &curves_to_copy, const AttributeFilter &attribute_filter)
CurvesGeometry blender::bke::curves_new_no_attributes (int point_num, int curve_num)
Accessors
std::array< int, CURVE_TYPES_NUMblender::bke::calculate_type_counts (const VArray< int8_t > &types)

Detailed Description

Low-level operations for curves.

Definition in file BKE_curves.hh.