skip assigning vars for inline bmesh flag funcs, just cast.
[blender.git] / source / blender / bmesh / bmesh_operators.h
1 #ifndef _BMESH_OPERATORS_H
2 #define _BMESH_OPERATORS_H
3
4 /*see comments in intern/bmesh_opdefines.c for documentation of specific operators*/
5
6 /*--------defines/enumerations for specific operators-------*/
7
8 /*del operator "context" slot values*/
9 enum {
10         DEL_VERTS = 1,
11         DEL_EDGES,
12         DEL_ONLYFACES,
13         DEL_EDGESFACES,
14         DEL_FACES,
15         DEL_ALL ,
16         DEL_ONLYTAGGED
17 };
18
19 /*quad innervert values*/
20 enum {
21         SUBD_INNERVERT,
22         SUBD_PATH,
23         SUBD_FAN,
24         SUBD_STRAIGHT_CUT
25 };
26
27 /* similar face selection slot values */
28 enum {
29         SIMFACE_MATERIAL = 201,
30         SIMFACE_IMAGE,
31         SIMFACE_AREA,
32         SIMFACE_PERIMETER,
33         SIMFACE_NORMAL,
34         SIMFACE_COPLANAR
35 };
36
37 /* similar edge selection slot values */
38 enum {
39         SIMEDGE_LENGTH = 101,
40         SIMEDGE_DIR,
41         SIMEDGE_FACE,
42         SIMEDGE_FACE_ANGLE,
43         SIMEDGE_CREASE,
44         SIMEDGE_SEAM,
45         SIMEDGE_SHARP
46 };
47
48 /* similar vertex selection slot values */
49 enum {
50         SIMVERT_NORMAL = 0,
51         SIMVERT_FACE,
52         SIMVERT_VGROUP
53 };
54
55 enum {
56         OPUVC_AXIS_X = 1,
57         OPUVC_AXIS_Y
58 };
59
60 enum {
61         DIRECTION_CW = 1,
62         DIRECTION_CCW
63 };
64
65 /* vertex path selection values */
66 enum {
67         VPATH_SELECT_EDGE_LENGTH = 0,
68         VPATH_SELECT_TOPOLOGICAL
69 };
70
71 extern BMOpDefine *opdefines[];
72 extern int bmesh_total_ops;
73
74 /*------specific operator helper functions-------*/
75
76 /*executes the duplicate operation, feeding elements of 
77   type flag etypeflag and header flag flag to it.  note,
78   to get more useful information (such as the mapping from
79   original to new elements) you should run the dupe op manually.*/
80 struct Object;
81 struct EditMesh;
82
83 void BMOP_DupeFromFlag(struct BMesh *bm, int etypeflag, int flag);
84 void BM_esubdivideflag(struct Object *obedit, BMesh *bm, int flag, float smooth, 
85                float fractal, int beauty, int numcuts, int seltype,
86                int cornertype, int singleedge, int gridfill, int seed);
87 void BM_extrudefaceflag(BMesh *bm, int flag);
88
89 /*this next one return 1 if they did anything, or zero otherwise.
90   they're kindof a hackish way to integrate with fkey, until
91   such time as fkey is completely bmeshafied.*/
92 /*this doesn't display errors to the user, btw*/
93 int BM_ConnectVerts(struct EditMesh *em, int flag);
94
95 #endif