svn merge -r39890:39889 source/blender/editors/object/object_relations.c source...
[blender.git] / source / blender / bmesh / bmesh_marking.h
1 #ifndef BM_MARKING_H
2 #define BM_MARKING_H
3
4 typedef struct BMEditSelection
5 {
6         struct BMEditSelection *next, *prev;
7         short type;
8         void *data;
9 } BMEditSelection;
10
11 /* pinning code */
12 void BM_Pin(BMesh *bm, void *element, int pin);
13 void BM_Pin_Vert(BMesh *bm, BMVert *v, int pin);
14 void BM_Pin_Edge(BMesh *bm, BMEdge *e, int pin);
15 void BM_Pin_Face(BMesh *bm, BMFace *f, int pin);
16
17 /*geometry hiding code*/
18 void BM_Hide(BMesh *bm, void *element, int hide);
19 void BM_Hide_Vert(BMesh *bm, BMVert *v, int hide);
20 void BM_Hide_Edge(BMesh *bm, BMEdge *e, int hide);
21 void BM_Hide_Face(BMesh *bm, BMFace *f, int hide);
22
23 /*Selection code*/
24 void BM_Select(struct BMesh *bm, void *element, int select);
25 /*I don't use this function anywhere, been using BM_TestHFlag instead.
26   Need to decide either to keep it and convert everything over, or
27   chuck it.*/
28 int BM_Selected(BMesh *bm, void *element);
29
30 void BM_clear_flag_all(BMesh *bm, int flag);
31
32 /*individual element select functions, BM_Select is a shortcut for these
33   that automatically detects which one to use*/
34 void BM_Select_Vert(struct BMesh *bm, struct BMVert *v, int select);
35 void BM_Select_Edge(struct BMesh *bm, struct BMEdge *e, int select);
36 void BM_Select_Face(struct BMesh *bm, struct BMFace *f, int select);
37
38 void BM_Selectmode_Set(struct BMesh *bm, int selectmode);
39
40 /*counts number of elements with flag set*/
41 int BM_CountFlag(struct BMesh *bm, int type, int flag, int respectflag);
42
43 /*edit selection stuff*/
44 void BM_editselection_center(BMesh *bm, float *center, BMEditSelection *ese);
45 void BM_editselection_normal(float *normal, BMEditSelection *ese);
46 void BM_editselection_plane(BMesh *bm, float *plane, BMEditSelection *ese);
47 void BM_remove_selection(BMesh *bm, void *data);
48 void BM_store_selection(BMesh *bm, void *data);
49 void BM_validate_selections(BMesh *bm);
50 void BM_clear_selection_history(BMesh *em);
51
52 #endif