Spelling Cleanup
[blender.git] / source / blender / bmesh / intern / bmesh_structure.h
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  * The Original Code is Copyright (C) 2004 Blender Foundation.
19  * All rights reserved.
20  *
21  * The Original Code is: all of this file.
22  *
23  * Contributor(s): Geoffrey Bantle.
24  *
25  * ***** END GPL LICENSE BLOCK *****
26  */
27
28 #ifndef __BMESH_STRUCTURE_H__
29 #define __BMESH_STRUCTURE_H__
30
31 /** \file blender/bmesh/intern/bmesh_structure.h
32  *  \ingroup bmesh
33  *
34  * The lowest level of functionality for manipulating bmesh structures.
35  * None of these functions should ever be exported to the rest of Blender.
36  *
37  * in the vast majority of cases thes should not be used directly.
38  * if absolutely necessary, see function definitions in code for
39  * descriptive comments.  but seriously, don't use this stuff.
40  */
41
42 struct ListBase;
43
44 /* LOOP CYCLE MANAGEMENT */
45 int bmesh_loop_validate(BMFace *f);
46
47 /* DISK CYCLE MANAGMENT */
48 int     bmesh_disk_edge_append(BMEdge *e, BMVert *v);
49 void    bmesh_disk_edge_remove(BMEdge *e, BMVert *v);
50 BMEdge *bmesh_disk_edge_next(BMEdge *e, BMVert *v);
51 BMEdge *bmesh_disk_edge_prev(BMEdge *e, BMVert *v);
52 int     bmesh_disk_facevert_count(BMVert *v);
53 BMEdge *bmesh_disk_faceedge_find_first(BMEdge *e, BMVert *v);
54 BMEdge *bmesh_disk_faceedge_find_next(BMEdge *e, BMVert *v);
55
56 /* RADIAL CYCLE MANAGMENT */
57 void    bmesh_radial_append(BMEdge *e, BMLoop *l);
58 void    bmesh_radial_loop_remove(BMLoop *l, BMEdge *e);
59 BMLoop *bmesh_radial_loop_next(BMLoop *l);
60 int     bmesh_radial_face_find(BMEdge *e, BMFace *f);
61 int     bmesh_radial_facevert_count(BMLoop *l, BMVert *v);
62 BMLoop *bmesh_radial_faceloop_find_first(BMLoop *l, BMVert *v);
63 BMLoop *bmesh_radial_faceloop_find_next(BMLoop *l, BMVert *v);
64 int     bmesh_radial_validate(int radlen, BMLoop *l);
65
66 /* EDGE UTILITIES */
67 int     bmesh_vert_in_edge(BMEdge *e, BMVert *v);
68 int     bmesh_verts_in_edge(BMVert *v1, BMVert *v2, BMEdge *e);
69 int     bmesh_edge_swapverts(BMEdge *e, BMVert *orig, BMVert *newv); /*relink edge*/
70 BMVert *bmesh_edge_other_vert_get(BMEdge *e, BMVert *v);
71 BMEdge *bmesh_disk_edge_exists(BMVert *v1, BMVert *v2);
72 int     bmesh_disk_validate(int len, BMEdge *e, BMVert *v);
73
74 #endif /* __BMESH_STRUCTURE_H__ */