Blender  V3.3
Classes | Namespaces | Functions
BKE_curves.hh File Reference

Low-level operations for curves. More...

#include "BKE_curves.h"
#include <mutex>
#include "BLI_float3x3.hh"
#include "BLI_float4x4.hh"
#include "BLI_generic_virtual_array.hh"
#include "BLI_index_mask.hh"
#include "BLI_math_vec_types.hh"
#include "BLI_span.hh"
#include "BLI_task.hh"
#include "BLI_vector.hh"
#include "BLI_virtual_array.hh"
#include "BKE_attribute.hh"

Go to the source code of this file.

Classes

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

Namespaces

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

Functions

template<typename T , BLI_ENABLE_IF(std::is_integral_v< T >) >
constexpr IndexRange blender::bke::offsets_to_range (Span< T > offsets, int64_t index)
 
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::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)
 
void blender::bke::curves::bezier::evaluate_segment (const float3 &point_0, const float3 &point_1, const float3 &point_2, const float3 &point_3, MutableSpan< float3 > result)
 
void blender::bke::curves::bezier::calculate_evaluated_positions (Span< float3 > positions, Span< float3 > handles_left, Span< float3 > handles_right, Span< int > evaluated_offsets, MutableSpan< float3 > evaluated_positions)
 
void blender::bke::curves::bezier::interpolate_to_evaluated (GSpan src, Span< 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 Span< int > evaluated_offsets, GMutableSpan dst)
 
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)
 
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.