Blender V5.0
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
10
11#include "bmesh_class.hh"
12#include "bmesh_core.hh"
13
14struct BMAllocTemplate;
16struct Mesh;
17
23bool BM_verts_from_edges(BMVert **vert_arr, BMEdge **edge_arr, int len);
24
30bool BM_edges_from_verts(BMEdge **edge_arr, BMVert **vert_arr, int len);
35void BM_edges_from_verts_ensure(BMesh *bm, BMEdge **edge_arr, BMVert **vert_arr, int len);
36
54void BM_verts_sort_radial_plane(BMVert **vert_arr, int len);
55
70 BMVert *v1,
71 BMVert *v2,
72 BMVert *v3,
73 BMVert *v4,
74 const BMFace *f_example,
75 eBMCreateFlag create_flag);
76
87void BM_face_copy_shared(BMesh *bm, BMFace *f, BMLoopFilterFunc filter_fn, void *user_data);
88
104 BMVert *v1,
105 BMVert *v2,
106 BMEdge **edges,
107 int len,
108 const BMFace *f_example,
109 eBMCreateFlag create_flag);
119 BMVert **vert_arr,
120 int len,
121 const BMFace *f_example,
122 eBMCreateFlag create_flag,
123 bool calc_winding,
124 bool create_edges);
125
132 const BMCustomDataCopyMap &cd_map,
133 const BMVert *src,
134 BMVert *dst);
136 const BMCustomDataCopyMap &cd_map,
137 const BMEdge *src,
138 BMEdge *dst);
140 const BMCustomDataCopyMap &cd_map,
141 const BMFace *src,
142 BMFace *dst);
144 const BMCustomDataCopyMap &cd_map,
145 const BMLoop *src,
146 BMLoop *dst);
147
149void BM_elem_attrs_copy(BMesh *bm, const BMVert *src, BMVert *dst);
150void BM_elem_attrs_copy(BMesh *bm, const BMEdge *src, BMEdge *dst);
151void BM_elem_attrs_copy(BMesh *bm, const BMFace *src, BMFace *dst);
152void BM_elem_attrs_copy(BMesh *bm, const BMLoop *src, BMLoop *dst);
153
154void BM_elem_select_copy(BMesh *bm_dst, void *ele_dst_v, const void *ele_src_v);
155
166 const Mesh *me_src_array[],
167 int me_src_array_len,
168 const BMAllocTemplate *allocsize);
170 const Mesh *me_src,
171 const BMAllocTemplate *allocsize);
172void BM_mesh_copy_init_customdata(BMesh *bm_dst, BMesh *bm_src, const BMAllocTemplate *allocsize);
183 BMesh *bm_src,
184 char htype,
185 const BMAllocTemplate *allocsize);
186BMesh *BM_mesh_copy(BMesh *bm_old);
bool(*)(const BMLoop *, void *user_data) BMLoopFilterFunc
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:27
BMesh * bm
ATTR_WARN_UNUSED_RESULT const BMVert * v2
uint len