bmesh api cleanup
[blender-staging.git] / source / blender / bmesh / intern / bmesh_inline.c
1 /*
2  * ***** BEGIN GPL LICENSE BLOCK *****
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * Contributor(s): Joseph Eagar, Geoffrey Bantle, Campbell Barton
19  *
20  * ***** END GPL LICENSE BLOCK *****
21  */
22
23 /** \file blender/bmesh/intern/bmesh_inline.c
24  *  \ingroup bmesh
25  *
26  * BM Inline functions.
27  */
28
29 #ifndef __BMESH_INLINE_C__
30 #define __BMESH_INLINE_C__
31
32 #include "bmesh.h"
33
34 BM_INLINE char _bm_elem_flag_test(const BMHeader *ele, const char hflag)
35 {
36         return ele->hflag & hflag;
37 }
38
39 BM_INLINE void _bm_elem_flag_enable(BMHeader *ele, const char hflag)
40 {
41         ele->hflag |= hflag;
42 }
43
44 BM_INLINE void _bm_elem_flag_disable(BMHeader *ele, const char hflag)
45 {
46         ele->hflag &= ~hflag;
47 }
48
49 BM_INLINE void _bm_elem_flag_set(BMHeader *ele, const char hflag, const int val)
50 {
51         if (val)  _bm_elem_flag_enable(ele,  hflag);
52         else      _bm_elem_flag_disable(ele, hflag);
53 }
54
55 BM_INLINE void _bm_elem_flag_toggle(BMHeader *ele, const char hflag)
56 {
57         ele->hflag ^= hflag;
58 }
59
60 BM_INLINE void _bm_elem_flag_merge(BMHeader *ele_a, BMHeader *ele_b)
61 {
62         ele_a->hflag = ele_b->hflag = ele_a->hflag | ele_b->hflag;
63 }
64
65
66 BM_INLINE void _bm_elem_index_set(BMHeader *ele, const int index)
67 {
68         ele->index = index;
69 }
70
71 BM_INLINE int _bm_elem_index_get(const BMHeader *ele)
72 {
73         return ele->index;
74 }
75
76 #endif /* __BMESH_INLINE_C__ */