Blender V4.3
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::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_num_and_order (int points_num, int8_t order, bool cyclic, KnotsMode knots_mode)
 
int blender::bke::curves::nurbs::calculate_evaluated_num (int points_num, int8_t order, bool cyclic, int resolution, KnotsMode knots_mode)
 
int blender::bke::curves::nurbs::knots_num (int points_num, int8_t order, bool cyclic)
 
void blender::bke::curves::nurbs::calculate_knots (int points_num, KnotsMode mode, int8_t order, bool cyclic, MutableSpan< float > knots)
 
void blender::bke::curves::nurbs::calculate_basis_cache (int points_num, int evaluated_num, int8_t order, bool cyclic, 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)
 
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.