Blender V4.3
bmesh_construct.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11#include "bmesh_core.hh"
12
13struct BMAllocTemplate;
14struct Mesh;
15
21bool BM_verts_from_edges(BMVert **vert_arr, BMEdge **edge_arr, int len);
22
28bool BM_edges_from_verts(BMEdge **edge_arr, BMVert **vert_arr, int len);
33void BM_edges_from_verts_ensure(BMesh *bm, BMEdge **edge_arr, BMVert **vert_arr, int len);
34
52void BM_verts_sort_radial_plane(BMVert **vert_arr, int len);
53
68 BMVert *v1,
69 BMVert *v2,
70 BMVert *v3,
71 BMVert *v4,
72 const BMFace *f_example,
73 eBMCreateFlag create_flag);
74
85void BM_face_copy_shared(BMesh *bm, BMFace *f, BMLoopFilterFunc filter_fn, void *user_data);
86
102 BMVert *v1,
103 BMVert *v2,
104 BMEdge **edges,
105 int len,
106 const BMFace *f_example,
107 eBMCreateFlag create_flag);
117 BMVert **vert_arr,
118 int len,
119 const BMFace *f_example,
120 eBMCreateFlag create_flag,
121 bool calc_winding,
122 bool create_edges);
123
130 const BMCustomDataCopyMap &cd_map,
131 const BMVert *src,
132 BMVert *dst);
134 const BMCustomDataCopyMap &cd_map,
135 const BMEdge *src,
136 BMEdge *dst);
138 const BMCustomDataCopyMap &cd_map,
139 const BMFace *src,
140 BMFace *dst);
142 const BMCustomDataCopyMap &cd_map,
143 const BMLoop *src,
144 BMLoop *dst);
145
147void BM_elem_attrs_copy(BMesh *bm, const BMVert *src, BMVert *dst);
148void BM_elem_attrs_copy(BMesh *bm, const BMEdge *src, BMEdge *dst);
149void BM_elem_attrs_copy(BMesh *bm, const BMFace *src, BMFace *dst);
150void BM_elem_attrs_copy(BMesh *bm, const BMLoop *src, BMLoop *dst);
151
152void BM_elem_select_copy(BMesh *bm_dst, void *ele_dst_v, const void *ele_src_v);
153
164 const Mesh *me_src_array[],
165 int me_src_array_len,
166 const BMAllocTemplate *allocsize);
168 const Mesh *me_src,
169 const BMAllocTemplate *allocsize);
170void BM_mesh_copy_init_customdata(BMesh *bm_dst, BMesh *bm_src, const BMAllocTemplate *allocsize);
181 BMesh *bm_src,
182 char htype,
183 const BMAllocTemplate *allocsize);
184BMesh *BM_mesh_copy(BMesh *bm_old);
bool(* BMLoopFilterFunc)(const BMLoop *, void *user_data)
void BM_mesh_copy_init_customdata(BMesh *bm_dst, BMesh *bm_src, const BMAllocTemplate *allocsize)
void BM_verts_sort_radial_plane(BMVert **vert_arr, int len)
void BM_face_copy_shared(BMesh *bm, BMFace *f, BMLoopFilterFunc filter_fn, void *user_data)
copies face loop data from shared adjacent faces.
bool BM_edges_from_verts(BMEdge **edge_arr, BMVert **vert_arr, int len)
bool BM_verts_from_edges(BMVert **vert_arr, BMEdge **edge_arr, int len)
void BM_elem_select_copy(BMesh *bm_dst, void *ele_dst_v, const void *ele_src_v)
void BM_mesh_copy_init_customdata_from_mesh(BMesh *bm_dst, const Mesh *me_src, const BMAllocTemplate *allocsize)
void BM_mesh_copy_init_customdata_from_mesh_array(BMesh *bm_dst, const Mesh *me_src_array[], int me_src_array_len, const BMAllocTemplate *allocsize)
void BM_mesh_copy_init_customdata_all_layers(BMesh *bm_dst, BMesh *bm_src, char htype, const BMAllocTemplate *allocsize)
BMesh * BM_mesh_copy(BMesh *bm_old)
BMFace * BM_face_create_quad_tri(BMesh *bm, BMVert *v1, BMVert *v2, BMVert *v3, BMVert *v4, const BMFace *f_example, eBMCreateFlag create_flag)
Make Quad/Triangle.
void BM_elem_attrs_copy(BMesh *bm, const BMCustomDataCopyMap &cd_map, const BMVert *src, BMVert *dst)
BMFace * BM_face_create_ngon(BMesh *bm, BMVert *v1, BMVert *v2, BMEdge **edges, int len, const BMFace *f_example, eBMCreateFlag create_flag)
Make NGon.
BMFace * BM_face_create_ngon_verts(BMesh *bm, BMVert **vert_arr, int len, const BMFace *f_example, eBMCreateFlag create_flag, bool calc_winding, bool create_edges)
void BM_edges_from_verts_ensure(BMesh *bm, BMEdge **edge_arr, BMVert **vert_arr, int len)
eBMCreateFlag
Definition bmesh_core.hh:23
ATTR_WARN_UNUSED_RESULT BMesh * bm
ATTR_WARN_UNUSED_RESULT const BMVert * v2
int len