diff options
Diffstat (limited to 'source/blender/bmesh/bmesh_marking.h')
-rw-r--r-- | source/blender/bmesh/bmesh_marking.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/source/blender/bmesh/bmesh_marking.h b/source/blender/bmesh/bmesh_marking.h new file mode 100644 index 00000000000..22c1887d794 --- /dev/null +++ b/source/blender/bmesh/bmesh_marking.h @@ -0,0 +1,54 @@ +#ifndef BM_MARKING_H +#define BM_MARKING_H + +typedef struct BMEditSelection +{ + struct BMEditSelection *next, *prev; + void *data; + char htype; +} BMEditSelection; + +/* pinning code */ +void BM_Pin(BMesh *bm, void *element, int pin); +void BM_Pin_Vert(BMesh *bm, BMVert *v, int pin); +void BM_Pin_Edge(BMesh *bm, BMEdge *e, int pin); +void BM_Pin_Face(BMesh *bm, BMFace *f, int pin); + +/*geometry hiding code*/ +void BM_Hide(BMesh *bm, void *element, int hide); +void BM_Hide_Vert(BMesh *bm, BMVert *v, int hide); +void BM_Hide_Edge(BMesh *bm, BMEdge *e, int hide); +void BM_Hide_Face(BMesh *bm, BMFace *f, int hide); + +/*Selection code*/ +void BM_Select(struct BMesh *bm, void *element, int select); +/*I don't use this function anywhere, been using BM_TestHFlag instead. + Need to decide either to keep it and convert everything over, or + chuck it.*/ +int BM_Selected(BMesh *bm, const void *element); + +void BM_clear_flag_all(BMesh *bm, const char hflag); + +/*individual element select functions, BM_Select is a shortcut for these + that automatically detects which one to use*/ +void BM_Select_Vert(struct BMesh *bm, struct BMVert *v, int select); +void BM_Select_Edge(struct BMesh *bm, struct BMEdge *e, int select); +void BM_Select_Face(struct BMesh *bm, struct BMFace *f, int select); + +void BM_Selectmode_Set(struct BMesh *bm, int selectmode); + +/*counts number of elements with flag set*/ +int BM_CountFlag(struct BMesh *bm, const char htype, const char hflag, int respecthide); + +/*edit selection stuff*/ +void BM_set_actFace(BMesh *em, BMFace *f); +BMFace *BM_get_actFace(BMesh *bm, int sloppy); +void BM_editselection_center(BMesh *bm, float *center, BMEditSelection *ese); +void BM_editselection_normal(float *normal, BMEditSelection *ese); +void BM_editselection_plane(BMesh *bm, float *plane, BMEditSelection *ese); +void BM_remove_selection(BMesh *bm, void *data); +void BM_store_selection(BMesh *bm, void *data); +void BM_validate_selections(BMesh *bm); +void BM_clear_selection_history(BMesh *em); + +#endif |