|
Blender V4.5
|
#include "MEM_guardedalloc.h"#include "DNA_object_types.h"#include "BKE_editmesh.hh"#include "BKE_mesh.hh"#include "BKE_mesh_types.hh"#include "BLI_kdtree.h"#include "ED_mesh.hh"Go to the source code of this file.
Classes | |
| struct | MirrTopoVert_t |
| struct | [struct].MirrKdStore |
Mesh Spatial Mirror API | |
| #define | KD_THRESH 0.00002f |
| static struct | MirrKdStore = {nullptr} |
| void | ED_mesh_mirror_spatial_table_begin (Object *ob, BMEditMesh *em, Mesh *mesh_eval) |
| int | ED_mesh_mirror_spatial_table_lookup (Object *ob, BMEditMesh *em, Mesh *mesh_eval, const float co[3]) |
| void | ED_mesh_mirror_spatial_table_end (Object *) |
Mesh Topology Mirror API | |
| using | MirrTopoHash_t = uint |
| static int | mirrtopo_hash_sort (const void *l1, const void *l2) |
| static int | mirrtopo_vert_sort (const void *v1, const void *v2) |
| bool | ED_mesh_mirrtopo_recalc_check (BMEditMesh *em, Mesh *mesh, MirrTopoStore_t *mesh_topo_store) |
| void | ED_mesh_mirrtopo_init (BMEditMesh *em, Mesh *mesh, MirrTopoStore_t *mesh_topo_store, const bool skip_em_vert_array_init) |
| void | ED_mesh_mirrtopo_free (MirrTopoStore_t *mesh_topo_store) |
Mirror calculation for edit-mode and object mode.
Definition in file editors/mesh/mesh_mirror.cc.
| #define KD_THRESH 0.00002f |
Definition at line 27 of file editors/mesh/mesh_mirror.cc.
Referenced by ED_mesh_mirror_spatial_table_lookup().
| using MirrTopoHash_t = uint |
Definition at line 107 of file editors/mesh/mesh_mirror.cc.
| void ED_mesh_mirror_spatial_table_begin | ( | Object * | ob, |
| BMEditMesh * | em, | ||
| Mesh * | mesh_eval ) |
Definition at line 33 of file editors/mesh/mesh_mirror.cc.
References BMEditMesh::bm, BM_ITER_MESH_INDEX, BM_mesh_elem_table_ensure(), BM_VERT, BM_VERTS_OF_MESH, BMVert::co, Object::data, ED_mesh_mirror_spatial_table_begin(), ED_mesh_mirror_spatial_table_end(), i, MirrKdStore, Mesh::runtime, BMesh::totvert, and Mesh::verts_num.
Referenced by ED_mesh_mirror_spatial_table_begin(), ED_mesh_mirror_spatial_table_lookup(), EDBM_redo_state_restore_and_free(), mesh_get_x_mirror_faces(), and blender::ed::object::object_shape_key_mirror().
| void ED_mesh_mirror_spatial_table_end | ( | Object * | ob | ) |
Definition at line 92 of file editors/mesh/mesh_mirror.cc.
References ED_mesh_mirror_spatial_table_end(), and MirrKdStore.
Referenced by add_verts_to_dgroups(), ED_editors_exit(), ED_mesh_mirror_spatial_table_begin(), ED_mesh_mirror_spatial_table_end(), EDBM_mesh_free_data(), EDBM_redo_state_restore_and_free(), blender::ed::object::editmode_load_free_ex(), mesh_get_x_mirror_faces(), blender::ed::sculpt_paint::vwpaint::mode_enter_generic(), blender::ed::sculpt_paint::vwpaint::mode_exit_generic(), blender::ed::object::object_shape_key_mirror(), and blender::ed::transform::special_aftertrans_update__mesh().
| int ED_mesh_mirror_spatial_table_lookup | ( | Object * | ob, |
| BMEditMesh * | em, | ||
| Mesh * | mesh_eval, | ||
| const float | co[3] ) |
Definition at line 70 of file editors/mesh/mesh_mirror.cc.
References ED_mesh_mirror_spatial_table_begin(), ED_mesh_mirror_spatial_table_lookup(), i, KD_THRESH, and MirrKdStore.
Referenced by ED_mesh_mirror_spatial_table_lookup(), EDBM_redo_state_restore_and_free(), editbmesh_get_x_mirror_vert_spatial(), and mesh_get_x_mirror_vert_spatial().
| void ED_mesh_mirrtopo_free | ( | MirrTopoStore_t * | mesh_topo_store | ) |
Definition at line 346 of file editors/mesh/mesh_mirror.cc.
References ED_mesh_mirrtopo_free(), MirrTopoStore_t::index_lookup, MEM_SAFE_FREE, MirrTopoStore_t::prev_edge_tot, and MirrTopoStore_t::prev_vert_tot.
Referenced by ED_mesh_mirror_topo_table_end(), ED_mesh_mirrtopo_free(), ED_mesh_mirrtopo_init(), and EDBM_verts_mirror_cache_begin_ex().
| void ED_mesh_mirrtopo_init | ( | BMEditMesh * | em, |
| Mesh * | mesh, | ||
| MirrTopoStore_t * | mesh_topo_store, | ||
| const bool | skip_em_vert_array_init ) |
Definition at line 160 of file editors/mesh/mesh_mirror.cc.
References BLI_assert, BMEditMesh::bm, BM_EDGES_OF_MESH, BM_elem_index_get, BM_ITER_MESH, BM_mesh_elem_index_ensure(), BM_mesh_elem_table_ensure(), BM_VERT, ED_mesh_mirrtopo_free(), ED_mesh_mirrtopo_init(), Mesh::edges_num, hash, MirrTopoVert_t::hash, MirrTopoStore_t::index_lookup, MEM_calloc_arrayN(), MEM_dupallocN(), MEM_freeN(), MEM_mallocN(), mirrtopo_hash_sort(), mirrtopo_vert_sort(), MirrTopoStore_t::prev_edge_tot, MirrTopoStore_t::prev_is_editmode, MirrTopoStore_t::prev_vert_tot, BMesh::totedge, BMesh::totvert, BMEdge::v1, BMEdge::v2, MirrTopoVert_t::v_index, Mesh::verts_num, and BMesh::vtable.
Referenced by ED_mesh_mirror_topo_table_begin(), ED_mesh_mirrtopo_init(), and EDBM_verts_mirror_cache_begin_ex().
| bool ED_mesh_mirrtopo_recalc_check | ( | BMEditMesh * | em, |
| Mesh * | mesh, | ||
| MirrTopoStore_t * | mesh_topo_store ) |
Definition at line 136 of file editors/mesh/mesh_mirror.cc.
References BMEditMesh::bm, ED_mesh_mirrtopo_recalc_check(), Mesh::edges_num, MirrTopoStore_t::index_lookup, MirrTopoStore_t::prev_edge_tot, MirrTopoStore_t::prev_is_editmode, MirrTopoStore_t::prev_vert_tot, BMesh::totedge, BMesh::totvert, and Mesh::verts_num.
Referenced by ed_mesh_mirror_topo_table_update(), and ED_mesh_mirrtopo_recalc_check().
|
static |
Definition at line 114 of file editors/mesh/mesh_mirror.cc.
References mirrtopo_hash_sort().
Referenced by ED_mesh_mirrtopo_init(), and mirrtopo_hash_sort().
|
static |
Definition at line 125 of file editors/mesh/mesh_mirror.cc.
References hash, mirrtopo_vert_sort(), and v2.
Referenced by ED_mesh_mirrtopo_init(), and mirrtopo_vert_sort().
| struct [struct].MirrKdStore MirrKdStore |