Blender  V2.93
bmesh_mods.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
17 #pragma once
18 
24 
26 
27 BMFace *BM_faces_join_pair(BMesh *bm, BMLoop *l_a, BMLoop *l_b, const bool do_del);
28 
32  BMFace *f,
33  BMLoop *l_a,
34  BMLoop *l_b,
35  BMLoop **r_l,
36  BMEdge *example,
37  const bool no_double);
38 
40  BMFace *f,
41  BMLoop *l_a,
42  BMLoop *l_b,
43  float cos[][3],
44  int n,
45  BMLoop **r_l,
46  BMEdge *example);
47 
49  BMEdge *e_kill,
50  BMVert *v_kill,
51  float fac,
52  const bool do_del,
53  const bool join_faces,
54  const bool kill_degenerate_faces,
55  const bool kill_duplicate_faces);
57  BMEdge *e_kill,
58  BMVert *v_kill,
59  const bool do_del,
60  const bool kill_degenerate_faces,
61  const bool kill_duplicate_faces);
62 
64  BMEdge *e_kill,
65  BMVert *v_kill,
66  const bool do_del,
67  const bool kill_degenerate_faces);
68 
69 BMVert *BM_edge_split(BMesh *bm, BMEdge *e, BMVert *v, BMEdge **r_e, float fac);
70 
71 BMVert *BM_edge_split_n(BMesh *bm, BMEdge *e, int numcuts, BMVert **r_varr);
72 
74 
75 bool BM_face_validate(BMFace *face, FILE *err);
76 
77 void BM_edge_calc_rotate(BMEdge *e, const bool ccw, BMLoop **r_l1, BMLoop **r_l2);
81 BMEdge *BM_edge_rotate(BMesh *bm, BMEdge *e, const bool ccw, const short check_flag);
82 
84 enum {
93 };
94 
97 BMVert *BM_face_loop_separate_multi(BMesh *bm, BMLoop **larr, int larr_len);
ATTR_WARN_UNUSED_RESULT BMesh * bm
BMFace * BM_faces_join_pair(BMesh *bm, BMLoop *l_a, BMLoop *l_b, const bool do_del)
Faces Join Pair.
Definition: bmesh_mods.c:221
void BM_edge_calc_rotate(BMEdge *e, const bool ccw, BMLoop **r_l1, BMLoop **r_l2)
Definition: bmesh_mods.c:802
BMVert * BM_edge_split(BMesh *bm, BMEdge *e, BMVert *v, BMEdge **r_e, float fac)
Edge Split.
Definition: bmesh_mods.c:591
bool BM_face_validate(BMFace *face, FILE *err)
BMVert * BM_face_loop_separate_multi_isolated(BMesh *bm, BMLoop *l_sep)
Definition: bmesh_mods.c:1102
@ BM_EDGEROT_CHECK_EXISTS
Definition: bmesh_mods.h:86
@ BM_EDGEROT_CHECK_BEAUTY
Definition: bmesh_mods.h:92
@ BM_EDGEROT_CHECK_SPLICE
Definition: bmesh_mods.h:88
@ BM_EDGEROT_CHECK_DEGENERATE
Definition: bmesh_mods.h:90
bool BM_disk_dissolve(BMesh *bm, BMVert *v)
Definition: bmesh_mods.c:93
BMEdge * BM_vert_collapse_faces(BMesh *bm, BMEdge *e_kill, BMVert *v_kill, float fac, const bool do_del, const bool join_faces, const bool kill_degenerate_faces, const bool kill_duplicate_faces)
Vert Collapse Faces.
Definition: bmesh_mods.c:430
bool BM_edge_rotate_check_degenerate(BMEdge *e, BMLoop *l1, BMLoop *l2)
Check if Edge Rotate Gives Degenerate Faces.
Definition: bmesh_mods.c:874
bool BM_vert_dissolve(BMesh *bm, BMVert *v)
Dissolve Vert.
Definition: bmesh_mods.c:59
BMVert * BM_face_loop_separate(BMesh *bm, BMLoop *l_sep)
Rip a single face from a vertex fan.
Definition: bmesh_mods.c:1097
bool BM_edge_rotate_check_beauty(BMEdge *e, BMLoop *l1, BMLoop *l2)
Definition: bmesh_mods.c:961
BMEdge * BM_vert_collapse_edge(BMesh *bm, BMEdge *e_kill, BMVert *v_kill, const bool do_del, const bool kill_degenerate_faces, const bool kill_duplicate_faces)
Vert Collapse Faces.
Definition: bmesh_mods.c:523
BMVert * BM_edge_split_n(BMesh *bm, BMEdge *e, int numcuts, BMVert **r_varr)
Split an edge multiple times evenly.
Definition: bmesh_mods.c:711
bool BM_edge_rotate_check(BMEdge *e)
Check if Rotate Edge is OK.
Definition: bmesh_mods.c:834
void BM_edge_verts_swap(BMEdge *e)
Definition: bmesh_mods.c:733
BMFace * BM_face_split(BMesh *bm, BMFace *f, BMLoop *l_a, BMLoop *l_b, BMLoop **r_l, BMEdge *example, const bool no_double)
Face Split.
Definition: bmesh_mods.c:252
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:334
BMVert * BM_edge_collapse(BMesh *bm, BMEdge *e_kill, BMVert *v_kill, const bool do_del, const bool kill_degenerate_faces)
Definition: bmesh_mods.c:566
BMEdge * BM_edge_rotate(BMesh *bm, BMEdge *e, const bool ccw, const short check_flag)
Rotate Edge.
Definition: bmesh_mods.c:983
BMVert * BM_face_loop_separate_multi(BMesh *bm, BMLoop **larr, int larr_len)
Definition: bmesh_mods.c:1107
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMLoop * l_b
ATTR_WARN_UNUSED_RESULT const BMVert * v
static FT_Error err
Definition: freetypefont.c:52
INLINE Rall1d< T, V, S > cos(const Rall1d< T, V, S > &arg)
Definition: rall1d.h:319