Blender V5.0
curve_intern.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2008 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "BLI_sys_types.h"
12
13/* internal exports only */
14struct BPoint;
15struct Base;
16struct BezTriple;
17struct Curve;
18struct EditNurb;
19struct GHash;
20struct ListBase;
21struct Nurb;
22struct Object;
23struct View3D;
24struct ViewContext;
25struct wmKeyConfig;
26struct wmKeyMap;
27struct wmOperatorType;
28
29/* `editfont.cc` */
30
31enum {
39};
41enum {
54};
55
57 HIDDEN = true,
58 VISIBLE = false,
59};
60
62 FIRST = true,
63 LAST = false,
64};
65
70
71/* internal select utils */
75bool select_beztriple(BezTriple *bezt, bool selstatus, uint8_t flag, eVisible_Types hidden);
79bool select_bpoint(BPoint *bp, bool selstatus, uint8_t flag, bool hidden);
80
83
88
90
96
99
103
106
109
112
113/* `editcurve.cc` */
114
117
123
133
138
146
148
149/* exported for editcurve_undo.cc */
150
152void ED_curve_keyindex_update_nurb(EditNurb *editnurb, Nurb *nu, Nurb *newnu);
153
154/* exported for `editcurve_pen.cc` */
155
156int ed_editcurve_addvert(Curve *cu, EditNurb *editnurb, View3D *v3d, const float location_init[3]);
157bool curve_toggle_cyclic(View3D *v3d, ListBase *editnurb, int direction);
158void ed_dissolve_bez_segment(BezTriple *bezt_prev,
159 BezTriple *bezt_next,
160 const Nurb *nu,
161 const Curve *cu,
162 const uint span_len,
163 const uint span_step[2]);
164
165/* helper functions */
166void ed_editnurb_translate_flag(ListBase *editnurb, uint8_t flag, const float vec[3], bool is_2d);
170bool ed_editnurb_extrude_flag(EditNurb *editnurb, uint8_t flag);
176 float viewmat[4][4], View3D *v3d, Object *obedit, const float axis[3], const float cent[3]);
177
178/* `editcurve_select.cc` */
179
194
195/* `editcurve_add.cc` */
196
202
209
210/* `editcurve_query.cc` */
211
213 short sel,
214 Nurb **r_nurb,
215 BezTriple **r_bezt,
216 BPoint **r_bp,
217 short *r_handle,
218 Base **r_base);
226 bool select,
227 int dist_px,
228 Nurb **r_nurb,
229 BezTriple **r_bezt,
230 BPoint **r_bp,
231 short *r_handle,
232 Base **r_base);
234 Curve *cu, View3D *v3d, Nurb **r_nu, BezTriple **r_bezt, BPoint **r_bp);
235
236/* `editcurve_paint.cc` */
237
239
240/* `editcurve_pen.cc` */
241
unsigned int uint
#define NEXT_CHAR(fmt)
void CURVE_OT_select_random(wmOperatorType *ot)
bool select_bpoint(BPoint *bp, bool selstatus, uint8_t flag, bool hidden)
bool select_beztriple(BezTriple *bezt, bool selstatus, uint8_t flag, eVisible_Types hidden)
void FONT_OT_textbox_add(wmOperatorType *ot)
Definition editfont.cc:2169
void FONT_OT_style_toggle(wmOperatorType *ot)
Definition editfont.cc:1029
void CURVE_OT_select_less(wmOperatorType *ot)
void CURVE_OT_select_similar(wmOperatorType *ot)
@ CASE_LOWER
@ CASE_UPPER
void CURVE_OT_dissolve_verts(wmOperatorType *ot)
void FONT_OT_text_copy(wmOperatorType *ot)
Definition editfont.cc:1129
void CURVE_OT_select_previous(wmOperatorType *ot)
void CURVE_OT_match_texture_space(wmOperatorType *ot)
void CURVE_OT_switch_direction(wmOperatorType *ot)
void FONT_OT_line_break(wmOperatorType *ot)
Definition editfont.cc:1685
void FONT_OT_select_word(wmOperatorType *ot)
Definition editfont.cc:2131
void FONT_OT_unlink(wmOperatorType *ot)
Definition editfont.cc:2559
void CURVE_OT_shortest_path_pick(wmOperatorType *ot)
void CURVE_OT_primitive_nurbs_path_add(wmOperatorType *ot)
void CURVE_OT_spline_weight_set(wmOperatorType *ot)
void SURFACE_OT_primitive_nurbs_surface_sphere_add(wmOperatorType *ot)
void CURVE_OT_select_linked(wmOperatorType *ot)
void CURVE_OT_extrude(wmOperatorType *ot)
void CURVE_OT_make_segment(wmOperatorType *ot)
void FONT_OT_select_all(wmOperatorType *ot)
Definition editfont.cc:1073
void CURVE_OT_primitive_bezier_curve_add(wmOperatorType *ot)
void ED_curve_keyindex_update_nurb(EditNurb *editnurb, Nurb *nu, Nurb *newnu)
Definition editcurve.cc:358
void CURVE_OT_hide(wmOperatorType *ot)
void CURVE_OT_normals_make_consistent(wmOperatorType *ot)
void FONT_OT_move(wmOperatorType *ot)
Definition editfont.cc:1485
void CURVE_OT_select_next(wmOperatorType *ot)
void CURVE_OT_shade_smooth(wmOperatorType *ot)
void ed_editnurb_translate_flag(ListBase *editnurb, uint8_t flag, const float vec[3], bool is_2d)
@ DEL_SELECTION
@ DEL_PREV_WORD
@ DEL_PREV_SEL
@ DEL_PREV_CHAR
@ DEL_NEXT_WORD
@ DEL_NEXT_CHAR
@ DEL_NEXT_SEL
void CURVE_OT_primitive_bezier_circle_add(wmOperatorType *ot)
void SURFACE_OT_primitive_nurbs_surface_torus_add(wmOperatorType *ot)
void CURVE_OT_delete(wmOperatorType *ot)
void ED_curve_nurb_vert_selected_find(Curve *cu, View3D *v3d, Nurb **r_nu, BezTriple **r_bezt, BPoint **r_bp)
void FONT_OT_text_cut(wmOperatorType *ot)
Definition editfont.cc:1165
void CURVE_OT_primitive_nurbs_circle_add(wmOperatorType *ot)
void CURVE_OT_spin(wmOperatorType *ot)
void FONT_OT_change_spacing(wmOperatorType *ot)
Definition editfont.cc:1580
void CURVE_OT_spline_type_set(wmOperatorType *ot)
eEndPoint_Types
@ FIRST
@ LAST
eCurveElem_Types
@ CURVE_VERTEX
@ CURVE_SEGMENT
void CURVE_OT_shade_flat(wmOperatorType *ot)
void FONT_OT_text_insert_unicode(wmOperatorType *ot)
Definition editfont.cc:793
void SURFACE_OT_primitive_nurbs_surface_surface_add(wmOperatorType *ot)
void FONT_OT_change_character(wmOperatorType *ot)
Definition editfont.cc:1638
void CURVE_OT_vertex_add(wmOperatorType *ot)
void FONT_OT_delete(wmOperatorType *ot)
Definition editfont.cc:1831
void FONT_OT_textbox_remove(wmOperatorType *ot)
Definition editfont.cc:2213
@ NEXT_LINE
@ TEXT_BEGIN
@ TEXT_END
@ LINE_BEGIN
@ PREV_WORD
@ PREV_LINE
@ PREV_CHAR
@ LINE_END
@ PREV_PAGE
@ NEXT_PAGE
@ NEXT_WORD
void CURVE_OT_select_all(wmOperatorType *ot)
void CURVE_OT_draw(wmOperatorType *ot)
void ed_dissolve_bez_segment(BezTriple *bezt_prev, BezTriple *bezt_next, const Nurb *nu, const Curve *cu, const uint span_len, const uint span_step[2])
void CURVE_OT_primitive_nurbs_curve_add(wmOperatorType *ot)
void FONT_OT_open(wmOperatorType *ot)
Definition editfont.cc:2506
bool ed_editnurb_extrude_flag(EditNurb *editnurb, uint8_t flag)
void CURVE_OT_select_nth(wmOperatorType *ot)
void FONT_OT_text_paste_from_file(wmOperatorType *ot)
Definition editfont.cc:637
void SURFACE_OT_primitive_nurbs_surface_cylinder_add(wmOperatorType *ot)
void CURVE_OT_pen(wmOperatorType *ot)
void FONT_OT_move_select(wmOperatorType *ot)
Definition editfont.cc:1516
bool ED_curve_pick_vert(ViewContext *vc, short sel, Nurb **r_nurb, BezTriple **r_bezt, BPoint **r_bp, short *r_handle, Base **r_base)
wmKeyMap * curve_pen_modal_keymap(wmKeyConfig *keyconf)
void CURVE_OT_de_select_first(wmOperatorType *ot)
bool ED_curve_pick_vert_ex(ViewContext *vc, bool select, int dist_px, Nurb **r_nurb, BezTriple **r_bezt, BPoint **r_bp, short *r_handle, Base **r_base)
void CURVE_OT_select_more(wmOperatorType *ot)
bool curve_toggle_cyclic(View3D *v3d, ListBase *editnurb, int direction)
void CURVE_OT_separate(wmOperatorType *ot)
void CURVE_OT_smooth_tilt(wmOperatorType *ot)
void CURVE_OT_reveal(wmOperatorType *ot)
eVisible_Types
@ HIDDEN
@ VISIBLE
void CURVE_OT_cyclic_toggle(wmOperatorType *ot)
void FONT_OT_case_set(wmOperatorType *ot)
Definition editfont.cc:2350
void CURVE_OT_duplicate(wmOperatorType *ot)
void FONT_OT_case_toggle(wmOperatorType *ot)
Definition editfont.cc:2397
void CURVE_OT_select_row(wmOperatorType *ot)
void CURVE_OT_de_select_last(wmOperatorType *ot)
void CURVE_OT_smooth_radius(wmOperatorType *ot)
void FONT_OT_selection_set(wmOperatorType *ot)
Definition editfont.cc:2094
void FONT_OT_text_paste(wmOperatorType *ot)
Definition editfont.cc:1271
GHash * ED_curve_keyindex_hash_duplicate(GHash *keyindex)
Definition editcurve.cc:547
void CURVE_OT_select_linked_pick(wmOperatorType *ot)
void CURVE_OT_smooth(wmOperatorType *ot)
void SURFACE_OT_primitive_nurbs_surface_curve_add(wmOperatorType *ot)
bool ed_editnurb_spin(float viewmat[4][4], View3D *v3d, Object *obedit, const float axis[3], const float cent[3])
void CURVE_OT_split(wmOperatorType *ot)
void FONT_OT_text_insert(wmOperatorType *ot)
Definition editfont.cc:1971
int ed_editcurve_addvert(Curve *cu, EditNurb *editnurb, View3D *v3d, const float location_init[3])
void CURVE_OT_smooth_weight(wmOperatorType *ot)
void CURVE_OT_radius_set(wmOperatorType *ot)
void CURVE_OT_decimate(wmOperatorType *ot)
void CURVE_OT_handle_type_set(wmOperatorType *ot)
void CURVE_OT_subdivide(wmOperatorType *ot)
void FONT_OT_style_set(wmOperatorType *ot)
Definition editfont.cc:988
void CURVE_OT_tilt_clear(wmOperatorType *ot)
void SURFACE_OT_primitive_nurbs_surface_circle_add(wmOperatorType *ot)
#define select(A, B, C)
wmOperatorType * ot
Definition wm_files.cc:4237
uint8_t flag
Definition wm_window.cc:145