30
int BM_face_calc_tessellation(BMFace *f, BMLoop **r_loops, int (*r_index)[3])
32
__attribute__((warn_unused_result))
33
__attribute__((nonnull))
36
void BM_face_calc_normal(BMFace *f, float r_no[3]);
37
float BM_face_calc_area(BMFace *f);
38
float BM_face_calc_perimeter(BMFace *f);
39
void BM_face_calc_plane(BMFace *f, float r_plane[3]);
40
void BM_face_calc_center_bounds(BMFace *f, float center[3]);
41
void BM_face_calc_center_mean(BMFace *f, float center[3]);
42
void BM_face_calc_center_mean_weighted(BMFace *f, float center[3]);
44
void BM_face_normal_update(BMFace *f);
45
void BM_face_normal_update_vcos(BMesh *bm, BMFace *f, float no[3],
46
float const (*vertexCos)[3]);
48
void BM_edge_normals_update(BMEdge *e);
50
void BM_vert_normal_update(BMVert *v);
51
void BM_vert_normal_update_all(BMVert *v);
53
void BM_face_normal_flip(BMesh *bm, BMFace *f);
54
bool BM_face_point_inside_test(BMFace *f, const float co[3]);
30
#include "BLI_compiler_attrs.h"
32
int BM_face_calc_tessellation(const BMFace *f, BMLoop **r_loops, int (*r_index)[3]) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
33
void BM_face_calc_normal(const BMFace *f, float r_no[3]) ATTR_NONNULL();
34
void BM_face_calc_normal_vcos(BMesh *bm, BMFace *f, float r_no[3],
35
float const (*vertexCos)[3]) ATTR_NONNULL();
36
float BM_face_calc_area(BMFace *f) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
37
float BM_face_calc_perimeter(BMFace *f) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
38
void BM_face_calc_plane(BMFace *f, float r_plane[3]) ATTR_NONNULL();
39
void BM_face_calc_center_bounds(BMFace *f, float center[3]) ATTR_NONNULL();
40
void BM_face_calc_center_mean(BMFace *f, float center[3]) ATTR_NONNULL();
41
void BM_face_calc_center_mean_vcos(BMesh *bm, BMFace *f, float r_cent[3],
42
float const (*vertexCos)[3]) ATTR_NONNULL();
43
void BM_face_calc_center_mean_weighted(BMFace *f, float center[3]) ATTR_NONNULL();
45
void BM_face_normal_update(BMFace *f) ATTR_NONNULL();
47
void BM_edge_normals_update(BMEdge *e) ATTR_NONNULL();
49
void BM_vert_normal_update(BMVert *v) ATTR_NONNULL();
50
void BM_vert_normal_update_all(BMVert *v) ATTR_NONNULL();
52
void BM_face_normal_flip(BMesh *bm, BMFace *f) ATTR_NONNULL();
53
bool BM_face_point_inside_test(BMFace *f, const float co[3]) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
56
55
void BM_face_triangulate(BMesh *bm, BMFace *f, BMFace **newfaces,
57
const bool use_beauty, const bool use_tag);
59
void BM_face_legal_splits(BMFace *f, BMLoop *(*loops)[2], int len);
61
void BM_face_as_array_vert_tri(BMFace *f, BMVert *r_verts[3]);
62
void BM_face_as_array_vert_quad(BMFace *f, BMVert *r_verts[4]);
56
const bool use_beauty, const bool use_tag) ATTR_NONNULL(1, 2);
58
void BM_face_legal_splits(BMFace *f, BMLoop *(*loops)[2], int len) ATTR_NONNULL();
60
void BM_face_as_array_vert_tri(BMFace *f, BMVert *r_verts[3]) ATTR_NONNULL();
61
void BM_face_as_array_vert_quad(BMFace *f, BMVert *r_verts[4]) ATTR_NONNULL();
63
void BM_face_as_array_loop_tri(BMFace *f, BMLoop *r_loops[3]) ATTR_NONNULL();
64
void BM_face_as_array_loop_quad(BMFace *f, BMLoop *r_loops[4]) ATTR_NONNULL();
64
66
#endif /* __BMESH_POLYGON_H__ */