Blender  V3.3
bmesh_mods.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
35 
40 
54 BMFace *BM_faces_join_pair(BMesh *bm, BMLoop *l_a, BMLoop *l_b, bool do_del);
55 
77  BMesh *bm, BMFace *f, BMLoop *l_a, BMLoop *l_b, BMLoop **r_l, BMEdge *example, bool no_double);
78 
98  BMFace *f,
99  BMLoop *l_a,
100  BMLoop *l_b,
101  float cos[][3],
102  int n,
103  BMLoop **r_l,
104  BMEdge *example);
105 
130  BMEdge *e_kill,
131  BMVert *v_kill,
132  float fac,
133  bool do_del,
134  bool join_faces,
135  bool kill_degenerate_faces,
136  bool kill_duplicate_faces);
145  BMEdge *e_kill,
146  BMVert *v_kill,
147  bool do_del,
148  bool kill_degenerate_faces,
149  bool kill_duplicate_faces);
150 
155  BMesh *bm, BMEdge *e_kill, BMVert *v_kill, bool do_del, bool kill_degenerate_faces);
156 
176 BMVert *BM_edge_split(BMesh *bm, BMEdge *e, BMVert *v, BMEdge **r_e, float fac);
177 
183 BMVert *BM_edge_split_n(BMesh *bm, BMEdge *e, int numcuts, BMVert **r_varr);
184 
191 
192 bool BM_face_validate(BMFace *face, FILE *err);
193 
208 void BM_edge_calc_rotate(BMEdge *e, bool ccw, BMLoop **r_l1, BMLoop **r_l2);
243 BMEdge *BM_edge_rotate(BMesh *bm, BMEdge *e, bool ccw, short check_flag);
244 
246 enum {
255 };
256 
262 BMVert *BM_face_loop_separate_multi(BMesh *bm, BMLoop **larr, int larr_len);
ATTR_WARN_UNUSED_RESULT BMesh * bm
@ BM_EDGEROT_CHECK_EXISTS
Definition: bmesh_mods.h:248
@ BM_EDGEROT_CHECK_BEAUTY
Definition: bmesh_mods.h:254
@ BM_EDGEROT_CHECK_SPLICE
Definition: bmesh_mods.h:250
@ BM_EDGEROT_CHECK_DEGENERATE
Definition: bmesh_mods.h:252
BMEdge * BM_vert_collapse_edge(BMesh *bm, BMEdge *e_kill, BMVert *v_kill, bool do_del, bool kill_degenerate_faces, bool kill_duplicate_faces)
Vert Collapse Faces.
Definition: bmesh_mods.c:402
BMEdge * BM_vert_collapse_faces(BMesh *bm, BMEdge *e_kill, BMVert *v_kill, float fac, bool do_del, bool join_faces, bool kill_degenerate_faces, bool kill_duplicate_faces)
Vert Collapse Faces.
Definition: bmesh_mods.c:316
BMVert * BM_edge_split(BMesh *bm, BMEdge *e, BMVert *v, BMEdge **r_e, float fac)
Edge Split.
Definition: bmesh_mods.c:448
bool BM_face_validate(BMFace *face, FILE *err)
BMVert * BM_face_loop_separate_multi_isolated(BMesh *bm, BMLoop *l_sep)
Definition: bmesh_mods.c:901
bool BM_disk_dissolve(BMesh *bm, BMVert *v)
Definition: bmesh_mods.c:51
BMFace * BM_faces_join_pair(BMesh *bm, BMLoop *l_a, BMLoop *l_b, bool do_del)
Faces Join Pair.
Definition: bmesh_mods.c:166
BMEdge * BM_edge_rotate(BMesh *bm, BMEdge *e, bool ccw, short check_flag)
Rotate Edge.
Definition: bmesh_mods.c:785
void BM_edge_calc_rotate(BMEdge *e, bool ccw, BMLoop **r_l1, BMLoop **r_l2)
Definition: bmesh_mods.c:635
BMFace * BM_face_split(BMesh *bm, BMFace *f, BMLoop *l_a, BMLoop *l_b, BMLoop **r_l, BMEdge *example, bool no_double)
Face Split.
Definition: bmesh_mods.c:179
bool BM_edge_rotate_check_degenerate(BMEdge *e, BMLoop *l1, BMLoop *l2)
Check if Edge Rotate Gives Degenerate Faces.
Definition: bmesh_mods.c:690
bool BM_vert_dissolve(BMesh *bm, BMVert *v)
Dissolve Vert.
Definition: bmesh_mods.c:20
BMVert * BM_face_loop_separate(BMesh *bm, BMLoop *l_sep)
Rip a single face from a vertex fan.
Definition: bmesh_mods.c:896
bool BM_edge_rotate_check_beauty(BMEdge *e, BMLoop *l1, BMLoop *l2)
Definition: bmesh_mods.c:777
BMVert * BM_edge_split_n(BMesh *bm, BMEdge *e, int numcuts, BMVert **r_varr)
Split an edge multiple times evenly.
Definition: bmesh_mods.c:563
bool BM_edge_rotate_check(BMEdge *e)
Check if Rotate Edge is OK.
Definition: bmesh_mods.c:661
BMVert * BM_edge_collapse(BMesh *bm, BMEdge *e_kill, BMVert *v_kill, bool do_del, bool kill_degenerate_faces)
Definition: bmesh_mods.c:442
void BM_edge_verts_swap(BMEdge *e)
Definition: bmesh_mods.c:580
BMFace * BM_face_split_n(BMesh *bm, BMFace *f, BMLoop *l_a, BMLoop *l_b, float cos[][3], int n, BMLoop **r_l, BMEdge *example)
Face Split with intermediate points.
Definition: bmesh_mods.c:243
BMVert * BM_face_loop_separate_multi(BMesh *bm, BMLoop **larr, int larr_len)
Definition: bmesh_mods.c:906
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMLoop * l_b
ATTR_WARN_UNUSED_RESULT const BMVert * v
INLINE Rall1d< T, V, S > cos(const Rall1d< T, V, S > &arg)
Definition: rall1d.h:319
static FT_Error err