Blender
V3.3
|
#include <cmath>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_endian_switch.h"
#include "BLI_ghash.h"
#include "BLI_index_range.hh"
#include "BLI_math.h"
#include "BLI_math_vec_types.hh"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_anim_types.h"
#include "DNA_curve_types.h"
#include "DNA_defaults.h"
#include "DNA_material_types.h"
#include "DNA_key_types.h"
#include "DNA_object_types.h"
#include "DNA_vfont_types.h"
#include "BKE_anim_data.h"
#include "BKE_curve.h"
#include "BKE_curveprofile.h"
#include "BKE_displist.h"
#include "BKE_idtype.h"
#include "BKE_key.h"
#include "BKE_lib_id.h"
#include "BKE_lib_query.h"
#include "BKE_main.h"
#include "BKE_object.h"
#include "BKE_vfont.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "CLG_log.h"
#include "BLO_read_write.h"
Go to the source code of this file.
Classes | |
struct | BevelSort |
Macros | |
#define | DNA_DEPRECATED_ALLOW |
#define | p2_h1 ((p2)-3) |
#define | p2_h2 ((p2) + 3) |
#define | SEL_F1 (1 << 0) |
#define | SEL_F2 (1 << 1) |
#define | SEL_F3 (1 << 2) |
#define | MAT_NR_REMAP(n) |
Enumerations | |
enum class | NURBSValidationStatus { Valid , AtLeastTwoPointsRequired , MorePointsThanOrderRequired , MoreRowsForBezierRequired , MorePointsForBezierRequired } |
Variables | |
IDTypeInfo | IDType_ID_CU_LEGACY |
void(* | BKE_curve_batch_cache_dirty_tag_cb )(Curve *cu, int mode) = nullptr |
void(* | BKE_curve_batch_cache_free_cb )(Curve *cu) = nullptr |
#define MAT_NR_REMAP | ( | n | ) |
#define p2_h1 ((p2)-3) |
#define p2_h2 ((p2) + 3) |
#define SEL_F1 (1 << 0) |
#define SEL_F2 (1 << 1) |
#define SEL_F3 (1 << 2) |
|
strong |
|
static |
A utility function for allocating a number of arrays of the same length with easy error checking and de-allocation, and an easy way to add or remove arrays that are processed in this way when changing code.
floats, chars: null-terminated arrays of pointers to array pointers that need to be allocated.
Returns: pointer to the buffer that contains all of the arrays.
Definition at line 3391 of file curve.cc.
References buffer, count, and MEM_malloc_arrayN.
Referenced by bezier_handle_calc_smooth_fcurve(), and tridiagonal_solve_with_limits().
|
static |
Definition at line 1244 of file curve.cc.
References e, i1, order, and t.
Referenced by BKE_nurb_makeCurve(), and BKE_nurb_makeFaces().
Definition at line 2145 of file curve.cc.
References axis_angle_to_quat(), BevList::bevpoints, BevelSort::bl, BevPoint::dir, mul_qt_qtqt(), normalize_qt(), BevList::nr, BevPoint::quat, and BevPoint::tilt.
Referenced by make_bevel_list_3D().
Utility for make_bevel_list_3D_*
functions.
Definition at line 2062 of file curve.cc.
References BevList::bevpoints, bisect_v3_v3v3v3(), BevelSort::bl, copy_v3_v3(), BevPoint::dir, is_cyclic(), is_zero_v3(), normalize_v3(), BevList::nr, BevList::poly, sub_v3_v3v3(), UNLIKELY, and BevPoint::vec.
Referenced by make_bevel_list_3D_minimum_twist(), make_bevel_list_3D_tangent(), and make_bevel_list_3D_zup().
Definition at line 2124 of file curve.cc.
References angle_normalized_v3v3(), BevList::bevpoints, BevelSort::bl, DEG2RADF, negate_v3(), BevList::nr, and BevPoint::tan.
Referenced by make_bevel_list_3D_tangent().
Definition at line 2165 of file curve.cc.
References Freestyle::a, angle_normalized_v3v3(), axis_angle_to_quat(), BevList::bevpoints, BevelSort::bl, copy_qt_qt(), blender::math::cross(), cross_v3_v3v3(), BevPoint::dir, interp_qt_qtqt(), mul_qt_qtqt(), mul_qt_v3(), normalize_qt(), BevList::nr, BevList::poly, BevPoint::quat, and smooth_iter().
Referenced by make_bevel_list_3D().
Definition at line 1839 of file curve.cc.
References BevList::bevpoints, copy_v3_v3(), cu_isectLL(), max, min, BevList::nr, and BevPoint::vec.
Referenced by BKE_curve_bevelList_make().
Definition at line 2534 of file curve.cc.
References BevList::bevpoints, BevelSort::bl, Nurb::bp, BevPoint::dir, normalize_v3(), BevList::nr, Nurb::pntsu, sub_v3_v3v3(), and BPoint::vec.
Referenced by BKE_curve_bevelList_make().
Definition at line 3733 of file curve.cc.
References mul_v2_fl().
Referenced by bezier_handle_calc_smooth_fcurve().
Definition at line 3727 of file curve.cc.
References BezTriple::auto_handle_type, ELEM, HD_AUTO, HD_AUTO_ANIM, HD_AUTOTYPE_NORMAL, and HD_VECT.
Referenced by bezier_handle_calc_smooth_fcurve().
|
static |
Definition at line 3658 of file curve.cc.
References max_ff(), and min_ff().
Referenced by bezier_handle_calc_smooth_fcurve().
|
static |
Definition at line 3630 of file curve.cc.
References Freestyle::a, usdtokens::b(), Freestyle::c, and l.
Referenced by bezier_handle_calc_smooth_fcurve().
|
static |
Definition at line 3648 of file curve.cc.
References Freestyle::a, usdtokens::b(), Freestyle::c, and l.
Referenced by bezier_handle_calc_smooth_fcurve().
|
static |
Definition at line 3639 of file curve.cc.
References Freestyle::a, usdtokens::b(), Freestyle::c, and l.
Referenced by bezier_handle_calc_smooth_fcurve().
|
static |
Definition at line 3743 of file curve.cc.
References Freestyle::a, allocate_arrays(), blender::arrays, usdtokens::b(), bezier_calc_handle_adj(), bezier_check_solve_end_handle(), bezier_clamp(), bezier_eq_continuous(), bezier_eq_noaccel_left(), bezier_eq_noaccel_right(), bezier_lock_unknown(), bezier_output_handle(), BLI_assert, Freestyle::c, count, ELEM, free_arrays(), BezTriple::h1, BezTriple::h2, HD_AUTO_ANIM, l, max_ff(), min_ff(), NAN_FLT, sub_v2_v2v2(), tridiagonal_solve_with_limits(), and BezTriple::vec.
Referenced by BKE_nurb_handle_smooth_fcurve().
|
static |
Definition at line 3445 of file curve.cc.
References Freestyle::a, usdtokens::b(), and Freestyle::c.
Referenced by bezier_handle_calc_smooth_fcurve(), and tridiagonal_solve_with_limits().
Definition at line 3716 of file curve.cc.
References bezier_output_handle_inner(), copy_v3_v3(), right, and BezTriple::vec.
Referenced by bezier_handle_calc_smooth_fcurve().
|
static |
Definition at line 3683 of file curve.cc.
References add_v3_v3v3(), copy_v3_v3(), ELEM, BezTriple::h1, BezTriple::h2, HD_ALIGN, HD_ALIGN_DOUBLESIDE, HD_AUTO, HD_AUTO_ANIM, HD_VECT, len_v3v3(), madd_v3_v3v3fl(), right, sub_v3_v3v3(), and BezTriple::vec.
Referenced by bezier_output_handle().
|
static |
Definition at line 3430 of file curve.cc.
References Freestyle::a, usdtokens::b(), Freestyle::c, count, and state.
Referenced by tridiagonal_solve_with_limits().
|
static |
Definition at line 3452 of file curve.cc.
References Freestyle::a, usdtokens::b(), and Freestyle::c.
Referenced by tridiagonal_solve_with_limits().
Definition at line 414 of file curve.cc.
References BKE_curve_init(), BKE_libblock_alloc(), ID_CU_LEGACY, and type.
Referenced by BKE_mesh_to_curve(), BKE_object_obdata_add_from_type(), blender::io::obj::CurveFromGeometry::create_curve(), blender::io::usd::USDCurvesReader::create_object(), blender::io::usd::USDNurbsReader::create_object(), gpencil_layer_to_curve(), blender::io::alembic::AbcCurveReader::readObjectData(), and blender::io::alembic::AbcNurbsReader::readObjectData().
Definition at line 5524 of file curve.cc.
References Curve::batch_cache, and BKE_curve_batch_cache_dirty_tag_cb.
Referenced by BKE_object_data_batch_cache_dirty_tag(), and BKE_object_data_select_update().
Definition at line 5530 of file curve.cc.
References Curve::batch_cache, and BKE_curve_batch_cache_free_cb.
Referenced by curve_free_data().
Definition at line 2551 of file curve.cc.
References BevList::bevpoints, BevelSort::bl, BLI_listbase_clear(), LISTBASE_FOREACH_MUTABLE, MEM_freeN, BevList::segbevcount, and BevList::seglen.
Referenced by BKE_curve_bevelList_make(), BKE_object_free_curve_cache(), and object_free_data().
Definition at line 2569 of file curve.cc.
References Freestyle::a, usdtokens::b(), CurveCache::bev, bevelinside(), Curve::bevfac1_mapping, Curve::bevfac2_mapping, bevlist_firstlast_direction_calc_from_bpoint(), Curve::bevobj, BevList::bevpoints, BKE_curve_bevelList_free(), BKE_curve_forward_diff_bezier(), BKE_nurb_check_valid_u(), BKE_nurb_makeCurve(), BevelSort::bl, BLI_addtail(), BLI_assert, BLI_insertlinkbefore(), BLI_remlink(), BevList::charidx, compare_v3v3(), copy_v3_v3(), CU_3D, CU_BACK, CU_BEVFAC_MAP_SEGMENT, CU_BEVFAC_MAP_SPLINE, CU_BEZIER, CU_DO_RADIUS, CU_FRONT, CU_IS_2D, CU_NURB_CYCLIC, CU_NURBS, CU_POLY, CU_TWIST_TANGENT, Object_Runtime::curve_cache, Object::data, BevPoint::dir, BevList::dupe_nr, BevPoint::dupe_tag, Curve::editnurb, ELEM, fabsf, Curve::flag, forward_diff_bezier_cotangent(), BezTriple::h1, HD_VECT, BevList::hole, is_cyclic(), len, len_v3v3(), LISTBASE_FOREACH, LISTBASE_FOREACH_MUTABLE, make_bevel_list_2D(), make_bevel_list_3D(), make_bevel_list_segment_2D(), make_bevel_list_segment_3D(), MEM_calloc_arrayN, MEM_callocN, MEM_freeN, MEM_malloc_arrayN, MEM_mallocN, min, BevList::next, normalize_v3(), BevList::nr, OB_FONT, BevPoint::offset, BevList::poly, BevPoint::quat, BevPoint::radius, Curve::resolu_ren, Object::runtime, BevList::segbevcount, BevList::seglen, SEGMENTSU, sub_v3_v3v3(), SWAP, BevPoint::tan, Curve::taperobj, threshold, BevPoint::tilt, tilt_bezpart(), Curve::twist_mode, Curve::twist_smooth, Object::type, unit_qt(), BevPoint::vec, BezTriple::vec, vergxcobev(), and BevPoint::weight.
Definition at line 494 of file curve.cc.
References Object_Runtime::bb, BKE_boundbox_init_from_minmax(), BKE_curve_minmax(), BOUNDBOX_DIRTY, copy_v3_fl(), Object::data, BoundBox::flag, INIT_MINMAX, max, MEM_mallocN, min, and Object::runtime.
Referenced by BKE_object_boundbox_get(), BKE_object_minmax(), and snapCurve().
void BKE_curve_calc_coords_axis | ( | const BezTriple * | bezt_array, |
const unsigned int | bezt_array_len, | ||
const unsigned int | resolu, | ||
const bool | is_cyclic, | ||
const bool | use_cyclic_duplicate_endpoint, | ||
const unsigned int | axis, | ||
const unsigned int | stride, | ||
float * | r_points | ||
) |
Definition at line 1661 of file curve.cc.
References BKE_curve_calc_coords_axis_len(), BKE_curve_forward_diff_bezier(), BLI_assert, is_cyclic(), POINTER_OFFSET, stride, UNUSED_VARS_NDEBUG, and BezTriple::vec.
unsigned int BKE_curve_calc_coords_axis_len | ( | unsigned int | bezt_array_len, |
unsigned int | resolu, | ||
bool | is_cyclic, | ||
bool | use_cyclic_duplicate_endpoint | ||
) |
Calculate the length for arrays filled in by BKE_curve_calc_coords_axis.
Definition at line 1650 of file curve.cc.
References is_cyclic().
Referenced by BKE_curve_calc_coords_axis(), BKE_curve_decimate_bezt_array(), and gpencil_stroke_points_from_editcurve_fixed_resolu().
Definition at line 5163 of file curve.cc.
References BKE_curve_minmax(), INIT_MINMAX, max, mid_v3_v3v3(), and min.
Referenced by object_origin_set_exec().
Definition at line 5126 of file curve.cc.
References add_v3_v3(), BKE_curve_nurbs_get(), CU_BEZIER, LISTBASE_FOREACH, mul_v3_fl(), BezTriple::vec, BPoint::vec, and zero_v3().
Referenced by object_origin_set_exec().
This function is almost the same as BKE_fcurve_correct_bezpart, but doesn't allow as large a tangent.
Definition at line 5465 of file curve.cc.
References fabsf, len, v1, and v2.
Referenced by curvemap_make_table().
Definition at line 465 of file curve.cc.
References BKE_curve_nurbs_get(), BKE_nurb_handles_calc(), BKE_nurb_project_2d(), CU_BEZIER, CU_IS_2D, and LISTBASE_FOREACH.
Referenced by BKE_curve_type_test(), curve_from_font_object(), ED_curve_join_objects_exec(), object_convert_exec(), and recalcData_curve().
Frees edit-curve entirely.
Definition at line 336 of file curve.cc.
References Curve::editfont, MEM_freeN, EditFont::selboxes, EditFont::textbuf, and EditFont::textbufinfo.
Referenced by curve_free_data(), and ED_curve_editfont_free().
Definition at line 378 of file curve.cc.
References BKE_curve_editNurb_keyIndex_free(), BKE_nurbList_free(), Curve::editnurb, EditNurb::keyindex, MEM_freeN, and EditNurb::nurbs.
Referenced by curve_free_data(), and ED_curve_editnurb_free().
Definition at line 363 of file curve.cc.
References BLI_assert, BLI_ghash_remove(), and curve_editNurb_keyIndex_cv_free_cb().
Referenced by delete_bezt_from_nurb(), delete_bp_from_nurb(), keyIndex_delBezt(), keyIndex_delBP(), and keyIndex_delNurb().
Definition at line 369 of file curve.cc.
References BLI_ghash_free(), and curve_editNurb_keyIndex_cv_free_cb().
Referenced by BKE_curve_editNurb_free(), ED_curve_editnurb_make(), separate_exec(), undocurve_free_data(), and undocurve_to_editcurve().
Get list of nurbs from edit-nurbs structure.
Definition at line 426 of file curve.cc.
References Curve::editnurb, and EditNurb::nurbs.
Referenced by BKE_curve_material_remap(), BKE_curve_nurb_active_get(), BKE_curve_nurb_active_set(), BKE_curve_nurb_vert_active_get(), BKE_curve_nurbs_get(), BKE_where_on_path(), createTransCurveVerts(), delete_point_under_mouse(), do_lasso_select_curve(), do_nurbs_box_select(), ED_transform_calc_gizmo_stats(), ED_transverts_create_from_obedit(), ED_transverts_update_obedit(), editcurve_object_from_context(), extrude_points_from_selected_vertices(), getTransformOrientation_ex(), insert_point_to_segment(), is_spline_nearby(), material_slot_assign_exec(), material_slot_de_select(), nurbs_foreachScreenVert(), nurbscurve_circle_select(), recalcData_curve(), stats_object_edit(), undocurve_from_editcurve(), undocurve_to_editcurve(), and v3d_editvertex_buts().
Definition at line 435 of file curve.cc.
References Curve::editnurb, and EditNurb::nurbs.
Referenced by BKE_curve_nurbs_get_for_read().
Definition at line 5506 of file curve.cc.
References BKE_curve_texspace_calc(), copy_v3_v3(), CU_AUTOSPACE_EVALUATED, curve, DEG_debug_print_eval(), DEG_get_original_id(), DEG_is_active(), depsgraph, Curve::id, Curve::loc, ID::name, Curve::size, and Curve::texflag.
Referenced by blender::deg::DepsgraphNodeBuilder::build_object_data_geometry_datablock().
void BKE_curve_forward_diff_bezier | ( | float | q0, |
float | q1, | ||
float | q2, | ||
float | q3, | ||
float * | p, | ||
int | it, | ||
int | stride | ||
) |
Forward differencing method for bezier curve.
Definition at line 1717 of file curve.cc.
References Freestyle::a, float(), POINTER_OFFSET, q1, and stride.
Referenced by BKE_curve_bevelList_make(), BKE_curve_calc_coords_axis(), BKE_mask_point_segment_diff(), BKE_mask_spline_differentiate_with_resolution(), BKE_nurb_calc_length(), bm_edgering_pair_interpolate(), create_samples(), curve_to_displist(), curvemap_make_table(), draw_fcurve_curve_bezts(), ed_dissolve_bez_segment(), equalize_cubic_bezier(), gpencil_calculate_stroke_points_curve_segment(), gpencil_convert_spline(), M_Geometry_interpolate_bezier(), mask_spline_feather_differentiated_points_with_resolution__double(), blender::ed::space_node::node_link_bezier_points(), normalization_factor_get(), paint_draw_curve_cursor(), paint_stroke_curve_end(), blender::ed::space_node::pick_input_link_by_link_intersect(), and update_cut_data_for_nurb().
void BKE_curve_forward_diff_tangent_bezier | ( | float | q0, |
float | q1, | ||
float | q2, | ||
float | q3, | ||
float * | p, | ||
int | it, | ||
int | stride | ||
) |
Forward differencing method for first derivative of cubic bezier curve.
Definition at line 1745 of file curve.cc.
References Freestyle::a, float(), POINTER_OFFSET, q1, and stride.
Referenced by paint_stroke_curve_end().
Definition at line 388 of file curve.cc.
References Curve::actbox, Curve::bevel_profile, BKE_vfont_builtin_get(), BLI_strncpy(), CU_3D, CU_BACK, CU_FRONT, curve_init_data(), Curve::flag, TextBox::h, Curve::id, VFont::id, Curve::len, Curve::len_char32, MAXTEXTBOX, MEM_calloc_arrayN, MEM_malloc_arrayN, OB_FONT, OB_SURF, Curve::pos, Curve::resolu, Curve::resolv, Curve::str, Curve::strinfo, Curve::tb, Curve::totbox, Curve::type, ID::us, Curve::vfont, Curve::vfontb, Curve::vfontbi, Curve::vfonti, and TextBox::w.
Referenced by BKE_curve_add().
Definition at line 5343 of file curve.cc.
References BKE_curve_type_get(), Curve::len_char32, LISTBASE_FOREACH, CharInfo::mat_nr, Curve::nurb, OB_FONT, and Curve::strinfo.
Referenced by material_data_index_clear_id().
Definition at line 5299 of file curve.cc.
References BKE_curve_type_get(), Curve::len_char32, LISTBASE_FOREACH, CharInfo::mat_nr, Curve::nurb, OB_FONT, and Curve::strinfo.
Referenced by material_data_index_remove_id().
Definition at line 5320 of file curve.cc.
References BKE_curve_type_get(), Curve::len_char32, LISTBASE_FOREACH, CharInfo::mat_nr, Curve::nurb, OB_FONT, and Curve::strinfo.
Definition at line 5360 of file curve.cc.
References BKE_curve_type_get(), DEG_id_tag_update(), Curve::id, ID_RECALC_GEOMETRY, is_valid, Curve::len_char32, LISTBASE_FOREACH, CharInfo::mat_nr, max_ii(), Curve::nurb, OB_FONT, Curve::strinfo, and Curve::totcol.
Definition at line 5393 of file curve.cc.
References BKE_curve_editNurbs_get(), BKE_curve_type_get(), Curve::editfont, EditFont::len, Curve::len_char32, LISTBASE_FOREACH, CharInfo::mat_nr, MAT_NR_REMAP, OB_FONT, Curve::strinfo, and EditFont::textbufinfo.
Referenced by BKE_object_material_remap().
Definition at line 5101 of file curve.cc.
References BKE_curve_nurbs_get(), BKE_nurb_minmax(), BKE_nurbList_free(), BKE_vfont_to_curve_ex(), BLI_listbase_is_empty(), FO_EDIT, Curve::len, LISTBASE_FOREACH, max, min, and result.
Referenced by BKE_curve_boundbox_get(), BKE_curve_center_bounds(), and BKE_curve_texspace_calc().
Definition at line 5006 of file curve.cc.
References Curve::actnu, BKE_curve_editNurbs_get(), and BLI_findlink().
Referenced by ED_curve_editnurb_select_pick(), ed_editcurve_addvert(), and edcu_shortest_path_pick_invoke().
Definition at line 4994 of file curve.cc.
References Curve::actnu, BKE_curve_editNurbs_get(), BLI_assert, BLI_findindex(), CU_ACT_NONE, and Nurb::hide.
Referenced by BKE_curve_nurb_vert_active_set().
Get points to the active nurb and active vert for curve.
Definition at line 5049 of file curve.cc.
References Curve::actnu, Curve::actvert, Nurb::bezt, BKE_curve_editNurbs_get(), BLI_assert, BLI_findlink(), Nurb::bp, CU_ACT_NONE, CU_BEZIER, Nurb::pntsu, Nurb::pntsv, and Nurb::type.
Referenced by BKE_curve_nurb_vert_active_validate(), BKE_curve_vert_active_get(), ED_curve_active_center(), ed_curve_select_nth(), ed_editcurve_extrude(), getTransformOrientation_ex(), and select_row_exec().
Definition at line 5032 of file curve.cc.
References Curve::actnu, Curve::actvert, BKE_curve_nurb_active_set(), BKE_curve_nurb_vert_index_get(), and CU_ACT_NONE.
Definition at line 5076 of file curve.cc.
References Curve::actnu, Curve::actvert, BEZT_ISSEL_ANY, BKE_curve_nurb_vert_active_get(), CU_ACT_NONE, CU_BEZIER, BPoint::f1, Nurb::hide, SELECT, and Nurb::type.
Referenced by curve_select_random_exec(), de_select_all_exec(), de_select_first_exec(), de_select_last_exec(), do_lasso_select_curve(), do_nurbs_box_select(), extrude_vertices_from_selected_endpoints(), hide_exec(), nurbscurve_circle_select(), and select_linked_pick_invoke().
Definition at line 5021 of file curve.cc.
References ARRAY_HAS_ITEM, Nurb::bezt, BLI_assert, Nurb::bp, CU_BEZIER, Nurb::pntsu, Nurb::pntsv, and Nurb::type.
Referenced by BKE_curve_nurb_vert_active_set().
Definition at line 4976 of file curve.cc.
References BKE_curve_editNurbs_get(), Curve::editnurb, and Curve::nurb.
Referenced by BKE_curve_center_median(), BKE_curve_dimension_update(), BKE_curve_minmax(), BKE_curve_translate(), BKE_object_shapekey_remove(), blo_do_versions_290(), blender::io::obj::CurveFromGeometry::create_curve(), curve_from_curve_object(), blender::io::alembic::ABCNurbsWriter::do_write(), give_parvert(), insert_curvekey(), blender::io::alembic::AbcCurveReader::read_curve_sample(), blender::io::usd::USDCurvesReader::read_curve_sample(), blender::io::usd::USDNurbsReader::read_curve_sample(), and blender::io::alembic::AbcNurbsReader::readObjectData().
Definition at line 4985 of file curve.cc.
References BKE_curve_editNurbs_get_for_read(), Curve::editnurb, and Curve::nurb.
float(* BKE_curve_nurbs_key_vert_coords_alloc | ( | const ListBase * | lb, |
float * | key, | ||
int * | r_vert_len | ||
) | )[3] |
Definition at line 4653 of file curve.cc.
References BKE_nurbList_verts_count(), copy_v3_v3(), KDL::cos(), CU_BEZIER, float(), KEYELEM_FLOAT_LEN_BEZTRIPLE, KEYELEM_FLOAT_LEN_BPOINT, LISTBASE_FOREACH, and MEM_malloc_arrayN.
Definition at line 4687 of file curve.cc.
References CU_BEZIER, KEYELEM_FLOAT_LEN_BEZTRIPLE, KEYELEM_FLOAT_LEN_BPOINT, LISTBASE_FOREACH, BezTriple::radius, BPoint::radius, BezTriple::tilt, and BPoint::tilt.
Referenced by BKE_curve_calc_modifiers_pre().
Definition at line 4570 of file curve.cc.
References BKE_curve_nurbs_vert_coords_get(), BKE_nurbList_verts_count(), float(), and MEM_malloc_arrayN.
void BKE_curve_nurbs_vert_coords_apply | ( | ListBase * | lb, |
const float(*) | vert_coords[3], | ||
const bool | constrain_2d | ||
) |
Definition at line 4617 of file curve.cc.
References BKE_nurb_project_2d(), calchandlesNurb_intern(), copy_v3_v3(), CU_BEZIER, LISTBASE_FOREACH, SELECT, BezTriple::vec, and BPoint::vec.
Referenced by BKE_curve_calc_modifiers_pre(), ED_object_data_xform_restore(), and modifier_apply_obdata().
void BKE_curve_nurbs_vert_coords_apply_with_mat4 | ( | ListBase * | lb, |
const float(*) | vert_coords[3], | ||
const float | mat[4][4], | ||
const bool | constrain_2d | ||
) |
Definition at line 4580 of file curve.cc.
References BKE_nurb_project_2d(), calchandlesNurb_intern(), CU_BEZIER, LISTBASE_FOREACH, mul_v3_m4v3(), SELECT, BezTriple::vec, and BPoint::vec.
Referenced by ED_object_data_xform_by_mat4().
Definition at line 4543 of file curve.cc.
References BLI_assert, copy_v3_v3(), CU_BEZIER, LISTBASE_FOREACH, UNUSED_VARS_NDEBUG, BezTriple::vec, and BPoint::vec.
Referenced by BKE_curve_nurbs_vert_coords_alloc().
void BKE_curve_rect_from_textbox | ( | const struct Curve * | cu, |
const struct TextBox * | tb, | ||
struct rctf * | r_rect | ||
) |
Definition at line 5454 of file curve.cc.
References Curve::fsize, TextBox::h, TextBox::w, TextBox::x, rctf::xmax, rctf::xmin, Curve::xof, TextBox::y, rctf::ymax, rctf::ymin, and Curve::yof.
Referenced by ED_curve_editfont_select_pick().
Definition at line 5440 of file curve.cc.
References CU_SMOOTH, LISTBASE_FOREACH, and Curve::nurb.
Referenced by shade_smooth_exec().
Definition at line 518 of file curve.cc.
References Freestyle::a, BKE_curve_minmax(), copy_v3_v3(), CU_AUTOSPACE, CU_AUTOSPACE_EVALUATED, INIT_MINMAX, Curve::loc, max, mid_v3_v3v3(), min, size(), Curve::size, and Curve::texflag.
Referenced by BKE_curve_eval_geometry(), BKE_curve_texspace_ensure(), and object_for_curve_to_mesh_create().
Definition at line 555 of file curve.cc.
References BKE_curve_texspace_calc(), CU_AUTOSPACE, CU_AUTOSPACE_EVALUATED, and Curve::texflag.
Referenced by BKE_object_obdata_texspace_get(), drw_call_calc_orco(), and OVERLAY_texture_space().
void BKE_curve_transform | ( | Curve * | cu, |
const float | mat[4][4], | ||
const bool | do_keys, | ||
const bool | do_props | ||
) |
Definition at line 5247 of file curve.cc.
References BKE_curve_transform_ex(), and mat4_to_scale().
void BKE_curve_transform_ex | ( | Curve * | cu, |
const float | mat[4][4], | ||
const bool | do_keys, | ||
const bool | do_props, | ||
const float | unit_scale | ||
) |
Definition at line 5175 of file curve.cc.
References BKE_nurb_handles_calc(), Key::block, CU_BEZIER, ELEM, BezTriple::h1, BezTriple::h2, HD_ALIGN, HD_AUTO, HD_AUTO_ANIM, is_uniform_scaled_m4(), Curve::key, KEYELEM_ELEM_LEN_BEZTRIPLE, KEYELEM_ELEM_LEN_BPOINT, KEYELEM_FLOAT_LEN_BEZTRIPLE, KEYELEM_FLOAT_LEN_BPOINT, LISTBASE_FOREACH, mul_m4_v3(), Curve::nurb, BezTriple::radius, BPoint::radius, BezTriple::vec, and BPoint::vec.
Referenced by apply_objects_internal(), and BKE_curve_transform().
Definition at line 5253 of file curve.cc.
References add_v3_v3(), BKE_curve_nurbs_get(), Key::block, CU_BEZIER, Curve::key, KEYELEM_ELEM_LEN_BEZTRIPLE, KEYELEM_ELEM_LEN_BPOINT, KEYELEM_FLOAT_LEN_BEZTRIPLE, KEYELEM_FLOAT_LEN_BPOINT, LISTBASE_FOREACH, Curve::nurb, and offset.
Referenced by object_origin_set_exec().
short BKE_curve_type_get | ( | const Curve * | cu | ) |
Definition at line 444 of file curve.cc.
References LISTBASE_FOREACH, Curve::nurb, OB_CURVES_LEGACY, OB_FONT, OB_SURF, type, Curve::type, and Curve::vfont.
Referenced by BKE_curve_material_index_clear(), BKE_curve_material_index_remove(), BKE_curve_material_index_used(), BKE_curve_material_index_validate(), BKE_curve_material_remap(), and BKE_curve_type_test().
Definition at line 482 of file curve.cc.
References BKE_curve_dimension_update(), BKE_curve_type_get(), CU_IS_2D, Object::data, if(), OB_CURVES_LEGACY, and Object::type.
Referenced by libblock_remap_data_postprocess_obdata_relink().
Get active vert for curve.
Definition at line 5012 of file curve.cc.
References BKE_curve_nurb_vert_active_get().
Referenced by ED_curve_editnurb_select_pick().
Definition at line 928 of file curve.cc.
References Nurb::bezt, MEM_recallocN, Nurb::pntsu, and BezTriple::radius.
Referenced by ed_editcurve_addvert(), and gpencil_stroke_to_bezier().
Definition at line 1059 of file curve.cc.
References add_v3_v3v3(), normalize_v3(), sub_v3_v3v3(), and BezTriple::vec.
Definition at line 1074 of file curve.cc.
References add_v3_v3v3(), BKE_nurb_bezt_get_next(), BKE_nurb_bezt_get_prev(), copy_v3_v3(), cross_v3_v3v3(), normalize_v3(), sub_v3_v3v3(), and BezTriple::vec.
Referenced by createTransCurveVerts(), ED_transverts_create_from_obedit(), and getTransformOrientation_ex().
Definition at line 973 of file curve.cc.
References ARRAY_HAS_ITEM, Nurb::bezt, BLI_assert, CU_NURB_CYCLIC, Nurb::flagu, and Nurb::pntsu.
Referenced by BKE_nurb_bezt_calc_plane(), BKE_nurb_handle_calc_simple(), curve_pen_modal(), delete_point_under_mouse(), move_adjacent_handle(), move_segment(), and subdividenurb().
Definition at line 1015 of file curve.cc.
References ARRAY_HAS_ITEM, Nurb::bezt, BLI_assert, CU_NURB_CYCLIC, Nurb::flagu, Nurb::pntsu, and Nurb::pntsv.
Referenced by BKE_nurb_bezt_calc_plane(), BKE_nurb_handle_calc_simple(), delete_point_under_mouse(), and move_adjacent_handle().
void BKE_nurb_bezt_handle_test | ( | struct BezTriple * | bezt, |
eBezTriple_Flag__Alias | sel_flag, | ||
bool | use_handle, | ||
bool | use_around_local | ||
) |
Update selected handle types to ensure valid state, e.g. deduce "Auto" types to concrete ones. Thereby sel_flag defines what qualifies as selected. Use when something has changed handle positions.
The caller needs to recalculate handles.
sel_flag | The flag (bezt.f1/2/3) value to use to determine selection. Usually SELECT , but may want to use a different one at times (if caller does not operate on * selection). |
use_handle | Check selection state of individual handles, otherwise always update both handles if the key is selected. |
Definition at line 4049 of file curve.cc.
References ELEM, BezTriple::f1, BezTriple::f2, BezTriple::f3, BezTriple::h1, BezTriple::h2, HD_ALIGN, HD_AUTO, HD_AUTO_ANIM, HD_FREE, HD_VECT, SEL_F1, SEL_F2, and SEL_F3.
Referenced by BKE_nurb_handles_test(), createTransGPencil_curves(), graphedit_activekey_handles_cb(), and testhandles_fcurve().
Definition at line 1111 of file curve.cc.
References add_v3_v3(), BKE_nurb_bpoint_get_next(), BKE_nurb_bpoint_get_prev(), normalize_v3(), sub_v3_v3v3(), BPoint::vec, and zero_v3().
Referenced by createTransCurveVerts(), getTransformOrientation_ex(), and nurb_bpoint_direction_worldspace_get().
Definition at line 1134 of file curve.cc.
References add_v3_v3v3(), BKE_nurb_bpoint_get_next(), BKE_nurb_bpoint_get_prev(), copy_v3_v3(), cross_v3_v3v3(), normalize_v3(), sub_v3_v3v3(), and BPoint::vec.
Referenced by createTransCurveVerts(), and getTransformOrientation_ex().
Definition at line 994 of file curve.cc.
References ARRAY_HAS_ITEM, BLI_assert, Nurb::bp, CU_NURB_CYCLIC, Nurb::flagu, and Nurb::pntsu.
Referenced by BKE_nurb_bpoint_calc_normal(), BKE_nurb_bpoint_calc_plane(), getTransformOrientation_ex(), and subdividenurb().
Definition at line 1037 of file curve.cc.
References ARRAY_HAS_ITEM, BLI_assert, Nurb::bp, CU_NURB_CYCLIC, Nurb::flagu, Nurb::pntsu, and Nurb::pntsv.
Referenced by BKE_nurb_bpoint_calc_normal(), BKE_nurb_bpoint_calc_plane(), and getTransformOrientation_ex().
Definition at line 814 of file curve.cc.
References Freestyle::a, usdtokens::b(), Nurb::bezt, BKE_curve_forward_diff_bezier(), BKE_nurb_makeCurve(), Nurb::bp, CU_BEZIER, CU_NURB_CYCLIC, CU_NURBS, CU_POLY, Nurb::flagu, BezTriple::h1, BezTriple::h2, HD_VECT, len_v3v3(), blender::math::length(), MEM_callocN, MEM_freeN, MEM_mallocN, Nurb::pntsu, Nurb::pntsv, Nurb::resolu, Nurb::type, BezTriple::vec, and BPoint::vec.
Definition at line 4785 of file curve.cc.
References Nurb::flagu, nurb_check_valid(), Nurb::orderu, Nurb::pntsu, Nurb::pntsv, Nurb::type, and Valid.
Referenced by BKE_curve_bevelList_make(), BKE_nurb_check_valid_uv(), and makeknots().
Definition at line 4801 of file curve.cc.
References BKE_nurb_check_valid_u(), BKE_nurb_check_valid_v(), and Nurb::pntsv.
Definition at line 4793 of file curve.cc.
References Nurb::flagv, nurb_check_valid(), Nurb::orderv, Nurb::pntsv, Nurb::type, and Valid.
Referenced by BKE_nurb_check_valid_uv(), and makeknots().
Copy the nurb but allow for different number of points (to be copied after this).
Definition at line 701 of file curve.cc.
References Nurb::bezt, Nurb::bp, Nurb::knotsu, Nurb::knotsv, MEM_malloc_arrayN, MEM_mallocN, Nurb::pntsu, Nurb::pntsv, src, and SWAP.
Referenced by adduplicateflagNurb(), curve_delete_segments(), and ed_editcurve_addvert().
Definition at line 4420 of file curve.cc.
References Freestyle::a, usdtokens::b(), Nurb::bezt, Nurb::bp, CU_BEZIER, CU_NURBS, BezTriple::f1, BezTriple::f3, fabsf, BezTriple::h1, BezTriple::h2, KNOTSU, Nurb::knotsu, MEM_freeN, MEM_malloc_arrayN, Nurb::pntsu, Nurb::pntsv, SWAP, swap_v3_v3(), BezTriple::tilt, BPoint::tilt, Nurb::type, and BezTriple::vec.
Referenced by make_segment_exec(), and switch_direction_exec().
Definition at line 661 of file curve.cc.
References Nurb::bezt, Nurb::bp, KNOTSU, Nurb::knotsu, KNOTSV, Nurb::knotsv, len, MEM_malloc_arrayN, MEM_mallocN, Nurb::pntsu, and Nurb::pntsv.
Referenced by BKE_nurbList_duplicate().
Definition at line 622 of file curve.cc.
References Nurb::bezt, Nurb::bp, Nurb::knotsu, Nurb::knotsv, and MEM_freeN.
Referenced by BKE_nurbList_free(), delete_nurb(), ed_curve_delete_selected(), ed_surf_delete_selected(), make_segment_exec(), and merge_2_nurb().
void BKE_nurb_handle_calc | ( | struct BezTriple * | bezt, |
struct BezTriple * | prev, | ||
struct BezTriple * | next, | ||
bool | is_fcurve, | ||
char | smoothing | ||
) |
Recalculate the handles of a nurb bezier-triple. Acts based on handle selection with SELECT
flag. To use a different flag, use BKE_nurb_handle_calc_ex().
Definition at line 3978 of file curve.cc.
References calchandleNurb_intern(), next, blender::meshintersect::prev(), and SELECT.
Referenced by BKE_gpencil_editcurve_recalculate_handles(), BKE_nurb_handle_calc_simple(), calc_keyHandles(), mask_calc_point_handle(), and points_to_bezier().
void BKE_nurb_handle_calc_ex | ( | struct BezTriple * | bezt, |
struct BezTriple * | prev, | ||
struct BezTriple * | next, | ||
eBezTriple_Flag__Alias | handle_sel_flag, | ||
bool | is_fcurve, | ||
char | smoothing | ||
) |
Variant of BKE_nurb_handle_calc() that allows calculating based on a different select flag.
handle_sel_flag | The flag (bezt.f1/2/3) value to use to determine selection. Usually SELECT, but may want to use a different one at times (if caller does not operate on selection). |
Definition at line 3984 of file curve.cc.
References calchandleNurb_intern(), next, and blender::meshintersect::prev().
Referenced by BKE_fcurve_handles_recalc_ex().
Similar to BKE_nurb_handle_calc but for curves and figures out the previous and next for us.
Definition at line 4025 of file curve.cc.
References BKE_nurb_bezt_get_next(), BKE_nurb_bezt_get_prev(), BKE_nurb_handle_calc(), next, Nurb::pntsu, and blender::meshintersect::prev().
Referenced by adduplicateflagNurb(), and BKE_nurb_handle_calc_simple_auto().
Definition at line 4034 of file curve.cc.
References BKE_nurb_handle_calc_simple(), BezTriple::h1, BezTriple::h2, HD_AUTO, and Nurb::pntsu.
Referenced by BKE_nurbList_handles_recalculate(), and ed_editcurve_addvert().
Definition at line 3929 of file curve.cc.
References bezier_handle_calc_smooth_fcurve(), count, and is_free_auto_point().
Referenced by BKE_fcurve_handles_recalc_ex().
Definition at line 4124 of file curve.cc.
References Nurb::bezt, BKE_nurb_handles_calc(), dist_squared_to_line_v3(), eps, BezTriple::f1, BezTriple::f3, BezTriple::h1, BezTriple::h2, HD_ALIGN, HD_FREE, HD_VECT, len_squared_v3v3(), Nurb::pntsu, and BezTriple::vec.
Referenced by BKE_nurbList_handles_autocalc().
Definition at line 3995 of file curve.cc.
References calchandlesNurb_intern(), and SELECT.
Referenced by BKE_curve_dimension_update(), BKE_curve_transform_ex(), BKE_nurb_handles_autocalc(), BKE_nurb_handles_test(), BKE_nurb_type_convert(), BKE_nurbList_handles_recalculate(), curve_delete_segments(), curve_draw_exec(), curve_pen_modal(), curve_toggle_cyclic(), delete_point_under_mouse(), ed_curve_delete_selected(), ED_curve_join_objects_exec(), ed_editcurve_addvert(), gpencil_stroke_to_bezier(), insert_bezt_to_nurb(), make_segment_exec(), move_adjacent_handle(), move_all_selected_points(), nurb_handles_calc__align_selected(), recalcData_curve(), smooth_exec(), and subdividenurb().
Definition at line 4105 of file curve.cc.
References Freestyle::a, Nurb::bezt, BKE_nurb_bezt_handle_test(), BKE_nurb_handles_calc(), CU_BEZIER, Nurb::pntsu, SELECT, and Nurb::type.
Referenced by createTransCurveVerts(), ED_transverts_update_obedit(), and v3d_editvertex_buts().
int BKE_nurb_index_from_uv | ( | Nurb * | nu, |
int | u, | ||
int | v | ||
) |
Definition at line 942 of file curve.cc.
References CU_NURB_CYCLIC, Nurb::flagu, Nurb::flagv, mod_i(), Nurb::pntsu, Nurb::pntsv, and v.
Referenced by curve_select_shortest_path_surf().
Definition at line 964 of file curve.cc.
References BLI_assert, Nurb::pntsu, and Nurb::pntsv.
Referenced by curve_select_shortest_path_surf().
Definition at line 1234 of file curve.cc.
References makeknots().
Referenced by adduplicateflagNurb(), BKE_nurb_type_convert(), blo_do_versions_300(), curve_delete_segments(), curve_draw_exec(), curve_toggle_cyclic(), ed_curve_delete_selected(), ed_editcurve_addvert(), ed_editcurve_extrude(), ed_editnurb_extrude_flag(), ed_surf_delete_selected(), extrude_vertices_from_selected_endpoints(), gpencil_stroke_to_path(), insert_bp_to_nurb(), make_segment_exec(), merge_2_nurb(), blender::io::alembic::AbcCurveReader::read_curve_sample(), blender::io::usd::USDCurvesReader::read_curve_sample(), blender::io::usd::USDNurbsReader::read_curve_sample(), blender::io::alembic::AbcNurbsReader::readObjectData(), and subdividenurb().
Definition at line 1239 of file curve.cc.
References makeknots().
Referenced by adduplicateflagNurb(), blo_do_versions_300(), curve_delete_segments(), curve_toggle_cyclic(), ed_editnurb_extrude_flag(), ed_editnurb_spin(), ed_surf_delete_selected(), merge_2_nurb(), blender::io::usd::USDCurvesReader::read_curve_sample(), blender::io::alembic::AbcNurbsReader::readObjectData(), and subdividenurb().
void BKE_nurb_makeCurve | ( | const Nurb * | nu, |
float * | coord_array, | ||
float * | tilt_array, | ||
float * | radius_array, | ||
float * | weight_array, | ||
int | resolu, | ||
int | stride | ||
) |
Definition at line 1514 of file curve.cc.
References basisNurb(), Nurb::bp, CU_NURB_CYCLIC, eps, Nurb::flagu, float(), KNOTSU, Nurb::knotsu, len, madd_v3_v3fl(), MEM_calloc_arrayN, MEM_freeN, MEM_malloc_arrayN, Nurb::orderu, Nurb::pntsu, POINTER_OFFSET, BPoint::radius, SEGMENTSU, stride, sum(), BPoint::tilt, BPoint::vec, BPoint::weight, and zero_v3().
Referenced by BKE_curve_bevelList_make(), and BKE_nurb_calc_length().
void BKE_nurb_makeFaces | ( | const Nurb * | nu, |
float * | coord_array, | ||
int | rowstride, | ||
int | resolu, | ||
int | resolv | ||
) |
Definition at line 1322 of file curve.cc.
References basisNurb(), Nurb::bp, CU_NURB_CYCLIC, Nurb::flagu, Nurb::flagv, float(), KNOTSU, Nurb::knotsu, KNOTSV, Nurb::knotsv, len, madd_v3_v3fl(), MEM_calloc_arrayN, MEM_freeN, MEM_malloc_arrayN, Nurb::orderu, Nurb::orderv, Nurb::pntsu, Nurb::pntsv, sum(), v, BPoint::vec, and zero_v3().
Definition at line 762 of file curve.cc.
References Freestyle::a, add_v3_v3v3(), Nurb::bezt, Nurb::bp, CU_BEZIER, max, min, minmax_v3v3_v3(), Nurb::pntsu, Nurb::pntsv, point, BezTriple::radius, BPoint::radius, sub_v3_v3v3(), Nurb::type, BezTriple::vec, and BPoint::vec.
Referenced by BKE_curve_minmax().
Definition at line 4813 of file curve.cc.
References max_ii(), Nurb::orderu, and Nurb::pntsu.
Referenced by adduplicateflagNurb(), curve_delete_segments(), ed_curve_delete_selected(), ED_curve_editnurb_load(), and ed_surf_delete_selected().
Definition at line 4823 of file curve.cc.
References max_ii(), Nurb::orderv, and Nurb::pntsv.
Referenced by adduplicateflagNurb(), curve_delete_segments(), and ed_surf_delete_selected().
Be sure to call BKE_nurb_knot_calc_u / BKE_nurb_knot_calc_v after this.
Definition at line 915 of file curve.cc.
References Nurb::bp, MEM_recallocN, Nurb::pntsu, and BPoint::radius.
Referenced by gpencil_stroke_to_path().
Definition at line 736 of file curve.cc.
References Freestyle::a, Nurb::bezt, Nurb::bp, CU_BEZIER, Nurb::pntsu, Nurb::pntsv, Nurb::type, BezTriple::vec, and BPoint::vec.
Referenced by BKE_curve_dimension_update(), BKE_curve_nurbs_vert_coords_apply(), BKE_curve_nurbs_vert_coords_apply_with_mat4(), ed_editnurb_translate_flag(), ED_transverts_update_obedit(), and v3d_editvertex_buts().
bool BKE_nurb_type_convert | ( | struct Nurb * | nu, |
short | type, | ||
bool | use_handles, | ||
const char ** | r_err_msg | ||
) |
Definition at line 4833 of file curve.cc.
References Freestyle::a, Nurb::bezt, BKE_nurb_handles_calc(), BKE_nurb_knot_calc_u(), Nurb::bp, Freestyle::c, copy_v3_v3(), CU_BEZIER, CU_NURB_BEZIER, CU_NURB_CYCLIC, CU_NURBS, CU_POLY, ELEM, BezTriple::f1, BPoint::f1, BezTriple::f2, BezTriple::f3, Nurb::flagu, BezTriple::h1, BezTriple::h2, HD_VECT, Nurb::knotsu, Nurb::knotsv, MEM_calloc_arrayN, MEM_freeN, MEM_SAFE_FREE, Nurb::orderu, Nurb::orderv, Nurb::pntsu, Nurb::pntsv, BezTriple::radius, BPoint::radius, type, Nurb::type, BezTriple::vec, BPoint::vec, BezTriple::weight, and BPoint::weight.
Referenced by gpencil_layer_to_curve(), and set_spline_type_exec().
bool BKE_nurb_valid_message | ( | const int | pnts, |
const short | order, | ||
const short | flag, | ||
const short | type, | ||
const bool | is_surf, | ||
const int | dir, | ||
char * | message_dst, | ||
const size_t | maxncpy | ||
) |
Definition at line 4744 of file curve.cc.
References AtLeastTwoPointsRequired, BLI_snprintf(), BevelSort::dir, MorePointsForBezierRequired, MorePointsThanOrderRequired, MoreRowsForBezierRequired, nurb_check_valid(), order, TIP_, type, and Valid.
Definition at line 726 of file curve.cc.
References BKE_nurb_duplicate(), BKE_nurbList_free(), BLI_addtail(), and LISTBASE_FOREACH.
Referenced by curve_copy_data().
Definition at line 4354 of file curve.cc.
References Freestyle::a, CU_BEZIER, BezTriple::f1, BPoint::f1, BezTriple::f2, BezTriple::f3, LISTBASE_FOREACH, and SET_FLAG_FROM_TEST.
Referenced by do_lasso_select_curve(), do_nurbs_box_select(), ED_curve_editnurb_select_pick(), nurbscurve_circle_select(), and select_row_exec().
Set flag for every point that already has from_flag set.
Definition at line 4389 of file curve.cc.
References CU_BEZIER, BezTriple::f1, BPoint::f1, BezTriple::f2, BezTriple::f3, LISTBASE_FOREACH, and SET_FLAG_FROM_TEST.
Referenced by do_lasso_select_curve(), do_nurbs_box_select(), and nurbscurve_circle_select().
Definition at line 649 of file curve.cc.
References BKE_nurb_free(), BLI_listbase_clear(), and LISTBASE_FOREACH_MUTABLE.
Referenced by BKE_curve_editNurb_free(), BKE_curve_minmax(), BKE_nurbList_duplicate(), BKE_object_free_curve_cache(), blender::nodes::node_geo_string_to_curves_cc::create_curve_instances(), curve_delete_segments(), curve_free_data(), ED_curve_editnurb_load(), ED_curve_editnurb_make(), knifeproject_poly_from_object(), blender::io::alembic::AbcCurveReader::read_mesh(), blender::io::usd::USDCurvesReader::read_mesh(), blender::io::usd::USDNurbsReader::read_mesh(), separate_exec(), undocurve_free_data(), undocurve_to_editcurve(), and vfont_to_curve().
Definition at line 4205 of file curve.cc.
References BKE_nurb_handles_autocalc(), and LISTBASE_FOREACH.
void BKE_nurbList_handles_recalculate | ( | ListBase * | editnurb, |
const bool | calc_length, | ||
const uint8_t | flag | ||
) |
Definition at line 4297 of file curve.cc.
References Freestyle::a, BKE_nurb_handle_calc_simple_auto(), BKE_nurb_handles_calc(), copy_v3_v3(), CU_BEZIER, dist_ensure_v3_v3fl(), BezTriple::f1, BezTriple::f3, len_v3v3(), LISTBASE_FOREACH, and BezTriple::vec.
Referenced by curve_normals_make_consistent_exec().
code |
Definition at line 4212 of file curve.cc.
References Freestyle::a, CU_BEZIER, ELEM, BezTriple::f1, BezTriple::f3, BezTriple::h1, BezTriple::h2, HD_ALIGN, HD_AUTO, HD_FREE, HD_VECT, LISTBASE_FOREACH, nurb_handles_calc__align_selected(), and SELECT.
Referenced by set_handle_type_exec().
Definition at line 562 of file curve.cc.
References copy_v3_v3(), CU_BEZIER, and LISTBASE_FOREACH.
Referenced by give_parvert().
int BKE_nurbList_verts_count | ( | const ListBase * | nurb | ) |
Definition at line 588 of file curve.cc.
References LISTBASE_FOREACH.
Referenced by BKE_curve_nurbs_key_vert_coords_alloc(), and BKE_curve_nurbs_vert_coords_alloc().
int BKE_nurbList_verts_count_without_handles | ( | const ListBase * | nurb | ) |
Definition at line 604 of file curve.cc.
References LISTBASE_FOREACH.
|
static |
Definition at line 3097 of file curve.cc.
References BezTriple::auto_handle_type, BLI_assert, e, ELEM, eps, BezTriple::f1, FCURVE_SMOOTH_NONE, BezTriple::h1, BezTriple::h2, HD_ALIGN, HD_ALIGN_DOUBLESIDE, HD_AUTO, HD_AUTO_ANIM, HD_AUTOTYPE_LOCKED_FINAL, HD_AUTOTYPE_NORMAL, HD_FREE, HD_VECT, len, len_v3(), len_v3v3(), madd_v3_v3v3fl(), next, p2_h1, p2_h2, blender::meshintersect::prev(), sub_v3_v3v3(), and BezTriple::vec.
Referenced by BKE_nurb_handle_calc(), BKE_nurb_handle_calc_ex(), and calchandlesNurb_intern().
|
static |
Definition at line 3340 of file curve.cc.
References Freestyle::a, Nurb::bezt, calchandleNurb_intern(), CU_BEZIER, CU_NURB_CYCLIC, Nurb::flagu, next, Nurb::pntsu, blender::meshintersect::prev(), and Nurb::type.
Referenced by BKE_curve_nurbs_vert_coords_apply(), BKE_curve_nurbs_vert_coords_apply_with_mat4(), and BKE_nurb_handles_calc().
Definition at line 1164 of file curve.cc.
References CU_NURB_BEZIER, CU_NURB_CYCLIC, CU_NURB_ENDPOINT, is_cyclic(), min_ii(), offset, order, and r.
Referenced by makeknots().
|
static |
Definition at line 206 of file curve.cc.
References Curve::actbox, Curve::adt, Curve::batch_cache, Curve::bevel_profile, BKE_animdata_blend_read_data(), BKE_curveprofile_blend_read(), BLO_read_data_address, BLO_read_list(), BLO_read_pointer_array(), BLO_read_requires_endian_switch(), CLAMP, CU_AUTOSPACE_EVALUATED, Curve::editfont, Curve::editnurb, ListBase::first, ListBase::last, Curve::len_char32, Curve::linewidth, LISTBASE_FOREACH, Curve::mat, MAXTEXTBOX, MEM_calloc_arrayN, MEM_freeN, Curve::nurb, Curve::str, Curve::strinfo, switch_endian_knots(), Curve::tb, Curve::texflag, Curve::totbox, Curve::vfont, TextBox::w, and Curve::wordspace.
|
static |
Definition at line 288 of file curve.cc.
References Freestyle::a, Curve::bevobj, BLO_expand, Curve::key, Curve::mat, Curve::taperobj, Curve::textoncurve, Curve::totcol, Curve::vfont, Curve::vfontb, Curve::vfontbi, and Curve::vfonti.
|
static |
Definition at line 269 of file curve.cc.
References Freestyle::a, Curve::bevobj, BLO_read_id_address, Curve::id, Curve::key, ID::lib, Curve::mat, Curve::taperobj, Curve::textoncurve, Curve::totcol, Curve::vfont, Curve::vfontb, Curve::vfontbi, and Curve::vfonti.
|
static |
Definition at line 146 of file curve.cc.
References Curve::adt, Curve::batch_cache, Curve::bevel_profile, BKE_animdata_blend_write(), BKE_curveprofile_blend_write(), BKE_id_blend_write(), BLO_write_float_array(), BLO_write_id_struct, BLO_write_pointer_array(), BLO_write_raw(), BLO_write_struct, BLO_write_struct_array, CU_BEZIER, Curve::editfont, Curve::editnurb, Curve::id, KNOTSU, KNOTSV, Curve::len, Curve::len_char32, LISTBASE_FOREACH, Curve::mat, Curve::nurb, Curve::str, Curve::strinfo, Curve::tb, Curve::totbox, Curve::totcol, and Curve::vfont.
Definition at line 81 of file curve.cc.
References Curve::batch_cache, Curve::bevel_profile, BKE_curveprofile_copy(), BKE_id_copy_ex(), BKE_nurbList_duplicate(), BLI_listbase_clear(), Curve::editfont, Curve::editnurb, Key::from, Curve::id, Key::id, Curve::key, LIB_ID_COPY_SHAPEKEY, Curve::mat, MEM_dupallocN, Curve::nurb, Curve::str, Curve::strinfo, and Curve::tb.
Definition at line 356 of file curve.cc.
References MEM_freeN, and CVKeyIndex::orig_cv.
Referenced by BKE_curve_editNurb_keyIndex_delCV(), and BKE_curve_editNurb_keyIndex_free().
|
static |
Definition at line 130 of file curve.cc.
References Curve::bevobj, BKE_LIB_FOREACHID_PROCESS_IDSUPER, curve, data, IDWALK_CB_NOP, IDWALK_CB_USER, Curve::key, Curve::mat, Curve::taperobj, Curve::textoncurve, Curve::totcol, Curve::vfont, Curve::vfontb, Curve::vfontbi, and Curve::vfonti.
Definition at line 108 of file curve.cc.
References Curve::bevel_profile, BKE_curve_batch_cache_free(), BKE_curve_editfont_free(), BKE_curve_editNurb_free(), BKE_curveprofile_free(), BKE_nurbList_free(), curve, Curve::edit_data_from_original, Curve::mat, MEM_SAFE_FREE, Curve::nurb, Curve::str, Curve::strinfo, and Curve::tb.
Definition at line 72 of file curve.cc.
References BLI_assert, curve, DNA_struct_default_get, MEMCMP_STRUCT_AFTER_IS_ZERO, and MEMCPY_STRUCT_AFTER.
Referenced by BKE_curve_init().
|
static |
Definition at line 1769 of file curve.cc.
References Freestyle::a, float(), normalize_v3(), POINTER_OFFSET, stride, and t.
Referenced by BKE_curve_bevelList_make().
Definition at line 3424 of file curve.cc.
References buffer, and MEM_freeN.
Referenced by bezier_handle_calc_smooth_fcurve(), and tridiagonal_solve_with_limits().
Definition at line 3924 of file curve.cc.
References BezTriple::auto_handle_type, BEZT_IS_AUTOH, and HD_AUTOTYPE_NORMAL.
Referenced by BKE_nurb_handle_smooth_fcurve().
Definition at line 2471 of file curve.cc.
References angle(), atan2f, BevList::bevpoints, bisect_v3_v3v3v3(), BevelSort::bl, calc_bevel_sin_cos(), BevPoint::cosa, cosf, BevPoint::dir, float(), M_PI_2, BevList::nr, BevList::poly, BevPoint::quat, BevPoint::sina, sinf, BevPoint::vec, vec_to_quat(), x2, and y1.
Referenced by BKE_curve_bevelList_make().
Definition at line 2409 of file curve.cc.
References bevel_list_apply_tilt(), bevel_list_smooth(), BevelSort::bl, CU_TWIST_MINIMUM, CU_TWIST_TANGENT, make_bevel_list_3D_minimum_twist(), make_bevel_list_3D_tangent(), make_bevel_list_3D_zup(), and smooth_iter().
Referenced by BKE_curve_bevelList_make().
Definition at line 2248 of file curve.cc.
References angle(), angle_normalized_v3v3(), axis_angle_to_quat(), bevel_list_calc_bisect(), BevList::bevpoints, BevelSort::bl, cross_v3_v3v3(), DEG2RADF, BevPoint::dir, float(), minimum_twist_between_two_points(), mul_qt_qtqt(), mul_qt_v3(), normalize_v3(), BevList::nr, BevList::poly, BevPoint::quat, and vec_to_quat().
Referenced by make_bevel_list_3D().
Definition at line 2359 of file curve.cc.
References bevel_list_calc_bisect(), bevel_list_flip_tangents(), BevList::bevpoints, BevelSort::bl, copy_v3_v3(), cross_v3_v3v3(), BevPoint::dir, normalize_v3(), BevList::nr, BevPoint::quat, BevPoint::tan, and tri_to_quat().
Referenced by make_bevel_list_3D().
Definition at line 2219 of file curve.cc.
References bevel_list_calc_bisect(), BevList::bevpoints, BevelSort::bl, BevPoint::dir, BevList::nr, BevPoint::quat, and vec_to_quat().
Referenced by make_bevel_list_3D().
Definition at line 2455 of file curve.cc.
References BevList::bevpoints, BevelSort::bl, calc_bevel_sin_cos(), BevPoint::cosa, make_bevel_list_segment_3D(), BevPoint::sina, BevPoint::vec, and y1.
Referenced by BKE_curve_bevelList_make().
Definition at line 2431 of file curve.cc.
References axis_angle_to_quat(), BevList::bevpoints, BevelSort::bl, copy_v3_v3(), BevPoint::dir, mul_qt_qtqt(), normalize_qt(), normalize_v3(), BevPoint::quat, sub_v3_v3v3(), BevPoint::tilt, BevPoint::vec, and vec_to_quat().
Referenced by BKE_curve_bevelList_make(), and make_bevel_list_segment_2D().
Definition at line 1204 of file curve.cc.
References BKE_nurb_check_valid_u(), BKE_nurb_check_valid_v(), calcknots(), CU_NURBS, Nurb::flagu, Nurb::flagv, float(), KNOTSU, Nurb::knotsu, KNOTSV, Nurb::knotsv, MEM_calloc_arrayN, MEM_freeN, Nurb::orderu, Nurb::orderv, Nurb::pntsu, Nurb::pntsv, and Nurb::type.
Referenced by BKE_nurb_knot_calc_u(), and BKE_nurb_knot_calc_v().
|
static |
Definition at line 2232 of file curve.cc.
References angle(), angle_normalized_v3v3(), axis_angle_to_quat(), copy_qt_qt(), cross_v3_v3v3(), BevPoint::dir, mul_qt_qtqt(), and BevPoint::quat.
Referenced by make_bevel_list_3D_minimum_twist().
|
static |
Definition at line 4711 of file curve.cc.
References AtLeastTwoPointsRequired, CU_NURB_BEZIER, CU_NURB_CYCLIC, CU_NURB_ENDPOINT, CU_NURBS, MorePointsForBezierRequired, MorePointsThanOrderRequired, MoreRowsForBezierRequired, order, type, and Valid.
Referenced by BKE_nurb_check_valid_u(), BKE_nurb_check_valid_v(), and BKE_nurb_valid_message().
Definition at line 4018 of file curve.cc.
References BKE_nurb_handles_calc(), and nurbList_handles_swap_select().
Referenced by BKE_nurbList_handles_set().
Workaround BKE_nurb_handles_calc logic that makes unselected align to the selected handle.
Definition at line 4004 of file curve.cc.
References Nurb::bezt, BezTriple::f1, BezTriple::f3, Nurb::pntsu, and SELECT.
Referenced by nurb_handles_calc__align_selected().
Definition at line 196 of file curve.cc.
References BLI_endian_switch_float_array(), KNOTSU, Nurb::knotsu, KNOTSV, and Nurb::knotsv.
Referenced by curve_blend_read_data().
|
static |
Definition at line 1963 of file curve.cc.
References Freestyle::a, Nurb::bezt, CU_NURB_CYCLIC, Nurb::flagu, float(), KEY_CU_EASE, key_curve_position_weights(), next, Nurb::pntsu, POINTER_OFFSET, BezTriple::radius, Nurb::radius_interp, stride, t, BezTriple::tilt, Nurb::tilt_interp, and BezTriple::weight.
Referenced by BKE_curve_bevelList_make().
|
static |
Definition at line 3468 of file curve.cc.
References Freestyle::a, all(), allocate_arrays(), blender::arrays, usdtokens::b(), bezier_lock_unknown(), bezier_relax_direction(), bezier_restore_equation(), BLI_tridiagonal_solve_cyclic(), Freestyle::c, and free_arrays().
Referenced by bezier_handle_calc_smooth_fcurve().
Definition at line 1900 of file curve.cc.
References BevelSort::left, and x2.
Referenced by BKE_curve_bevelList_make().
Definition at line 5521 of file curve.cc.
Referenced by BKE_curve_batch_cache_dirty_tag(), and DRW_engines_register().
Definition at line 5522 of file curve.cc.
Referenced by BKE_curve_batch_cache_free(), and DRW_engines_register().
IDTypeInfo IDType_ID_CU_LEGACY |