Initial revision
[blender.git] / source / blender / include / BDR_editcurve.h
1 /**
2  * $Id$
3  *
4  * ***** BEGIN GPL/BL DUAL 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. The Blender
10  * Foundation also sells licenses for use in proprietary software under
11  * the Blender License.  See http://www.blender.org/BL/ for information
12  * about this.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22  *
23  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
24  * All rights reserved.
25  *
26  * The Original Code is: all of this file.
27  *
28  * Contributor(s): none yet.
29  *
30  * ***** END GPL/BL DUAL LICENSE BLOCK *****
31  */
32
33 #ifndef BDR_EDITCURVE_H
34 #define BDR_EDITCURVE_H
35
36 struct Curve;
37 struct Nurb;
38 struct BezTriple;
39 struct BPoint;
40 struct BezTripleNurb;
41
42 short isNurbsel(struct Nurb *nu);
43 int isNurbsel_count(struct Nurb *nu);
44 void printknots(void);
45 void load_editNurb(void);
46 void make_editNurb(void);
47 void remake_editNurb(void);
48 void separate_nurb(void);
49 short isNurbselUV(struct Nurb *nu, int *u, int *v, int flag);
50 void setflagsNurb(short flag);
51 void rotateflagNurb(short flag, float *cent, float rotmat[][3]);
52 void translateflagNurb(short flag, float *vec);
53 void weightflagNurb(short flag, float w, int mode);
54 void deleteflagNurb(short flag);
55 short extrudeflagNurb(int flag);
56 void adduplicateflagNurb(short flag);
57 void switchdirectionNurb2(void);
58 void switchdirection_knots(float *base, int tot);
59 void deselectall_nurb(void);
60 void hideNurb(int swap);
61 void revealNurb(void);
62 void selectswapNurb(void);
63 void subdivideNurb(void);
64 short findnearestNurbvert(short sel, struct Nurb **nurb, 
65                                                   struct BezTriple **bezt, struct BPoint **bp);
66 void findselectedNurbvert(struct Nurb **nu, struct BezTriple **bezt, 
67                                                   struct BPoint **bp);
68 void setsplinetype(short type);
69 void rotate_direction_nurb(struct Nurb *nu);
70 int is_u_selected(struct Nurb *nu, int u);
71 void make_selection_list_nurb(void);
72 void merge_2_nurb(struct Nurb *nu1, struct Nurb *nu2);
73 void merge_nurb(void);
74 void addsegment_nurb(void);
75 void mouse_nurb(void);
76 void spinNurb(float *dvec, short mode);
77 void addvert_Nurb(int mode);
78 void extrude_nurb(void);
79 void makecyclicNurb(void);
80 void selectconnected_nurb(void);
81 void selectrow_nurb(void);
82 void adduplicate_nurb(void);
83 void delNurb(void);
84 void join_curve(int type);
85 struct Nurb *addNurbprim(int type, int stype, int newname);
86 void default_curve_ipo(struct Curve *cu);
87 void add_primitiveCurve(int stype);
88 void add_primitiveNurb(int type);
89 void clear_tilt(void);
90 void clever_numbuts_curve(void);         
91 int bezt_compare (const void *e1, const void *e2);
92
93 #endif  /*  BDR_EDITCURVE_H */