the last selected nurbs curve lastnu could become an invalid pointer in places, acces...
[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 void set_actNurb(struct Nurb *nu);
41 struct Nurb * get_actNurb( void );
42
43 short isNurbsel(struct Nurb *nu);
44 int isNurbsel_count(struct Nurb *nu);
45 void printknots(void);
46 void load_editNurb(void);
47 void make_editNurb(void);
48 void remake_editNurb(void);
49 void separate_nurb(void);
50 short isNurbselUV(struct Nurb *nu, int *u, int *v, int flag);
51 void setflagsNurb(short flag);
52 void rotateflagNurb(short flag, float *cent, float rotmat[][3]);
53 void translateflagNurb(short flag, float *vec);
54 void weightflagNurb(short flag, float w, int mode);
55 void deleteflagNurb(short flag);
56 short extrudeflagNurb(int flag);
57 void adduplicateflagNurb(short flag);
58 void switchdirectionNurb2(void);
59 void switchdirection_knots(float *base, int tot);
60 void deselectall_nurb(void);
61 void hideNurb(int swap);
62 void revealNurb(void);
63 void selectswapNurb(void);
64 void subdivideNurb(void);
65
66 int convertspline(short type, struct Nurb *nu);
67 void setsplinetype(short type);
68 void rotate_direction_nurb(struct Nurb *nu);
69 int is_u_selected(struct Nurb *nu, int u);
70 void make_selection_list_nurb(void);
71 void merge_2_nurb(struct Nurb *nu1, struct Nurb *nu2);
72 void merge_nurb(void);
73 void addsegment_nurb(void);
74 void mouse_nurb(void);
75 void spinNurb(float *dvec, short mode);
76 void addvert_Nurb(int mode);
77 void extrude_nurb(void);
78 void makecyclicNurb(void);
79 void selectconnected_nurb(void);
80 void selectrow_nurb(void);
81 void selectend_nurb(short selfirst, short doswap, short selstatus);
82 void select_more_nurb(void);
83 void select_less_nurb(void);
84 void select_next_nurb(void);
85 void select_prev_nurb(void);
86 void select_random_nurb(void);
87 void select_every_nth_nurb(void);
88 void adduplicate_nurb(void);
89 void delNurb(void);
90 void nurb_set_smooth(short event);
91 int join_curve(int type);
92 struct Nurb *addNurbprim(int type, int stype, int newname);
93 void default_curve_ipo(struct Curve *cu);
94 void add_primitiveCurve(int stype);
95 void add_primitiveNurb(int type);
96 void clear_tilt(void);
97 void clever_numbuts_curve(void);         
98 int bezt_compare (const void *e1, const void *e2);
99 void setweightNurb( void );
100 void setradiusNurb( void );
101 void smoothradiusNurb( void );
102
103 extern void undo_push_curve(char *name);
104
105 #endif  /*  BDR_EDITCURVE_H */