the make ngon function's overlap test needed some work, the API function
[blender.git] / source / blender / bmesh / bmesh_queries.h
1 #ifndef BMESH_QUERIES_H
2 #define BMESH_QUERIES_H
3 #include <stdio.h>
4
5 /*Queries*/
6 int BM_Count_Element(struct BMesh *bm, int type);
7 int BM_Vert_In_Edge(struct BMEdge *e, struct BMVert *v);
8 int BM_Vert_In_Face(struct BMFace *f, struct BMVert *v);
9 // int BM_Verts_In_Face(struct BMFace *f, struct BMVert **varr, int len);
10 int BM_Verts_In_Face(struct BMesh *bm, struct BMFace *f, struct BMVert **varr, int len);
11 int BM_Edge_In_Face(struct BMFace *f, struct BMEdge *e);
12 int BM_Verts_In_Edge(struct BMVert *v1, struct BMVert *v2, BMEdge *e);
13
14 struct BMVert *BM_OtherEdgeVert(struct BMEdge *e, struct BMVert *v);
15
16 /*finds other loop that shares v with e's loop in f.*/
17 struct BMLoop *BM_OtherFaceLoop(BMEdge *e, BMFace *f, BMVert *v);
18
19 //#define BM_OtherEdgeVert(e, v) (v==e->v1?e->v2:e->v1)
20
21 struct BMEdge *BM_Edge_Exist(struct BMVert *v1, struct BMVert *v2);
22 int BM_Vert_EdgeCount(struct BMVert *v);
23 int BM_Edge_FaceCount(struct BMEdge *e);
24 int BM_Vert_FaceCount(struct BMVert *v);
25 int BM_Wire_Vert(struct BMesh *bm, struct BMVert *v);
26 int BM_Wire_Edge(struct BMesh *bm, struct BMEdge *e);
27 int BM_Nonmanifold_Vert(struct BMesh *bm, struct BMVert *v);
28 int BM_Nonmanifold_Edge(struct BMesh *bm, struct BMEdge *e);
29 int BM_Boundary_Edge(struct BMEdge *e);
30 int BM_Face_Sharededges(struct BMFace *f1, struct BMFace *f2);
31 float BM_Face_Angle(struct BMesh *bm, struct BMEdge *e);
32 int BM_Exist_Face_Overlaps(struct BMesh *bm, struct BMVert **varr, int len, struct BMFace **existface);
33 int BM_Face_Exists(BMesh *bm, BMVert **varr, int len, BMFace **existface);
34 int BM_Edge_Share_Faces(struct BMEdge *e1, struct BMEdge *e2);
35 int BM_Validate_Face(BMesh *bm, BMFace *face, FILE *err);
36 int BM_FacesAroundEdge(BMEdge *e);
37 int BM_EdgesAroundVert(BMVert *v);
38 #endif