9e25550ce04410b173216bd36ae7a20c4b314101
[blender.git] / source / blender / include / BDR_editcurve.h
1 /**
2  * $Id$
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  *
20  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
21  * All rights reserved.
22  *
23  * The Original Code is: all of this file.
24  *
25  * Contributor(s): none yet.
26  *
27  * ***** END GPL LICENSE BLOCK *****
28  */
29
30 #ifndef BDR_EDITCURVE_H
31 #define BDR_EDITCURVE_H
32
33 struct Object;
34 struct Curve;
35 struct Nurb;
36 struct BezTriple;
37 struct BPoint;
38 struct BezTripleNurb;
39
40 short isNurbsel(struct Nurb *nu);
41 int isNurbsel_count(struct Nurb *nu);
42 void printknots(void);
43 void load_editNurb(void);
44 void make_editNurb(void);
45 void remake_editNurb(void);
46 void separate_nurb(void);
47 short isNurbselUV(struct Nurb *nu, int *u, int *v, int flag);
48 void setflagsNurb(short flag);
49 void rotateflagNurb(short flag, float *cent, float rotmat[][3]);
50 void translateflagNurb(short flag, float *vec);
51 void weightflagNurb(short flag, float w, int mode);
52 void deleteflagNurb(short flag);
53 short extrudeflagNurb(int flag);
54 void adduplicateflagNurb(short flag);
55 void switchdirectionNurb2(void);
56 void switchdirection_knots(float *base, int tot);
57 void deselectall_nurb(void);
58 void hideNurb(int swap);
59 void revealNurb(void);
60 void selectswapNurb(void);
61 void subdivideNurb(void);
62
63 int convertspline(short type, struct Nurb *nu);
64 void setsplinetype(short type);
65 void rotate_direction_nurb(struct Nurb *nu);
66 int is_u_selected(struct Nurb *nu, int u);
67 void make_selection_list_nurb(void);
68 void merge_2_nurb(struct Nurb *nu1, struct Nurb *nu2);
69 void merge_nurb(void);
70 void addsegment_nurb(void);
71 void mouse_nurb(void);
72 void spinNurb(float *dvec, short mode);
73 void addvert_Nurb(int mode);
74 void extrude_nurb(void);
75 void makecyclicNurb(void);
76 void selectconnected_nurb(void);
77 void selectrow_nurb(void);
78 void selectend_nurb(short selfirst, short doswap, short selstatus);
79 void select_more_nurb(void);
80 void select_less_nurb(void);
81 void select_next_nurb(void);
82 void select_prev_nurb(void);
83 void select_random_nurb(void);
84 void select_every_nth_nurb(void);
85 void adduplicate_nurb(void);
86 void delNurb(void);
87 void nurb_set_smooth(short event);
88 int join_curve(int type);
89 struct Nurb *addNurbprim(int type, int stype, int newname);
90 void default_curve_ipo(struct Curve *cu);
91 void add_primitiveCurve(int stype);
92 void add_primitiveNurb(int type);
93 void clear_tilt(void);
94 void clever_numbuts_curve(void);         
95 int bezt_compare (const void *e1, const void *e2);
96 void setweightNurb( void );
97 void setradiusNurb( void );
98 void smoothradiusNurb( void );
99
100 extern void undo_push_curve(char *name);
101
102 #endif  /*  BDR_EDITCURVE_H */