|
Blender V5.0
|
#include "MEM_guardedalloc.h"#include "BLI_alloca.h"#include "BLI_kdtree.h"#include "BLI_listbase.h"#include "BLI_map.hh"#include "BLI_math_base.hh"#include "BLI_math_vector.h"#include "BLI_stack.h"#include "BLI_stack.hh"#include "BLI_utildefines_stack.h"#include "BKE_customdata.hh"#include "bmesh.hh"#include "intern/bmesh_operators_private.hh"Go to the source code of this file.
Macros | |
| #define | ELE_DEL 1 |
| #define | EDGE_COL 2 |
| #define | VERT_IN_FACE 4 |
| #define | LOOP_MAP_VERT_INIT(l_init, v_map, is_del) |
| #define | VERT_KEEP 8 |
| #define | EDGE_MARK 1 |
Welding and merging functionality.
Definition in file bmo_removedoubles.cc.
| #define EDGE_COL 2 |
Definition at line 61 of file bmo_removedoubles.cc.
Referenced by bmo_weld_verts_exec().
| #define EDGE_MARK 1 |
Definition at line 364 of file bmo_removedoubles.cc.
| #define ELE_DEL 1 |
Definition at line 60 of file bmo_removedoubles.cc.
Referenced by bmo_weld_verts_exec().
| #define LOOP_MAP_VERT_INIT | ( | l_init, | |
| v_map, | |||
| is_del ) |
Referenced by remdoubles_createface().
| #define VERT_IN_FACE 4 |
Definition at line 62 of file bmo_removedoubles.cc.
Referenced by remdoubles_createface().
| #define VERT_KEEP 8 |
Definition at line 362 of file bmo_removedoubles.cc.
Referenced by bmesh_find_doubles_by_distance_connected_impl(), bmesh_find_doubles_by_distance_impl(), and bmesh_find_doubles_common().
|
static |
Definition at line 747 of file bmo_removedoubles.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), BLI_assert, bm, BM_DISK_EDGE_NEXT, BM_edge_other_vert(), BMO_vert_flag_test, BMVert::co, BMVert::e, ELEM, BMLoop::f, i, blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), BMEdge::l, BMFace::len, len_squared_v3v3(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_default(), MEM_freeN(), MEM_malloc_arrayN(), BMLoop::next, blender::Stack< T, InlineBufferCapacity, Allocator >::pop(), BMLoop::prev, blender::Stack< T, InlineBufferCapacity, Allocator >::push(), BMLoop::radial_next, blender::math::square(), BMLoop::v, VERT_KEEP, and verts.
Referenced by bmesh_find_doubles_common().
|
static |
Definition at line 672 of file bmo_removedoubles.cc.
References BLI_assert, bm, BMO_vert_flag_test, float, i, len_squared_v3v3(), MEM_freeN(), MEM_malloc_arrayN(), tree, VERT_KEEP, and verts.
Referenced by bmesh_find_doubles_common().
|
static |
Definition at line 839 of file bmo_removedoubles.cc.
References BLI_assert, bm, BM_VERT, bmesh_find_doubles_by_distance_connected_impl(), bmesh_find_doubles_by_distance_impl(), BMO_iter_new(), BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_exists(), BMO_slot_float_get(), BMO_slot_get(), BMO_slot_map_elem_insert(), BMOpSlot::buf, BMOpSlot::data, ELEM, i, BMOpSlot::len, MEM_freeN(), BMOperator::slots_in, VERT_KEEP, and verts.
Referenced by bmo_find_doubles_exec(), and bmo_remove_doubles_exec().
| void bmo_average_vert_facedata_exec | ( | BMesh * | bm, |
| BMOperator * | op ) |
Definition at line 418 of file bmo_removedoubles.cc.
References bm, BM_ELEM_CD_GET_VOID_P, BM_ITER_ELEM, BM_LOOPS_OF_VERT, BM_VERT, BMO_ITER, CustomData_data_add(), CustomData_data_copy_value(), CustomData_data_dominmax(), CustomData_data_initminmax(), CustomData_data_multiply(), CustomData_layer_has_math(), i, l, max, min, BMOperator::slots_in, and v.
| void bmo_collapse_exec | ( | BMesh * | bm, |
| BMOperator * | op ) |
Definition at line 486 of file bmo_removedoubles.cc.
References add_v3_v3(), BLI_assert, BLI_stack_free(), BLI_stack_is_empty(), BLI_stack_new, BLI_stack_peek(), BLI_stack_pop(), BLI_stack_push(), bm, BM_EDGE, BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_ITER_MESH, BMO_edge_flag_test, BMO_op_callf(), BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_get(), BMO_slot_map_elem_insert(), BMW_begin(), BMW_end(), BMW_FLAG_NOP, BMW_init(), BMW_MASK_NOP, BMW_NIL_LAY, BMW_step(), BMW_VERT_SHELL, BMVert::co, copy_v3_v3(), count, e, EDGE_MARK, BMOperator::flag, mul_v3_fl(), BMOperator::slots_in, and zero_v3().
| void bmo_collapse_uvs_exec | ( | BMesh * | bm, |
| BMOperator * | op ) |
Definition at line 634 of file bmo_removedoubles.cc.
References BLI_assert, bm, BM_EDGE, BM_EDGES_OF_MESH, BM_iter_mesh_count_flag(), bmo_collapsecon_do_layer(), BMO_slot_buffer_flag_enable(), CustomData_has_math(), CustomData_layer_has_math(), EDGE_MARK, i, oflag, and BMOperator::slots_in.
|
static |
UV collapse function.
Definition at line 576 of file bmo_removedoubles.cc.
References BLI_assert, BLI_stack_free(), BLI_stack_is_empty(), BLI_stack_new, BLI_stack_pop(), BLI_stack_push(), bm, BM_ELEM_CD_GET_VOID_P, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BMO_edge_flag_test, BMW_begin(), BMW_end(), BMW_FLAG_NOP, BMW_init(), BMW_LOOPDATA_ISLAND, BMW_MASK_NOP, BMW_step(), CustomData_data_add(), CustomData_data_copy_value(), CustomData_data_dominmax(), CustomData_data_initminmax(), CustomData_data_multiply(), l, max, min, and oflag.
Referenced by bmo_collapse_uvs_exec().
| void bmo_find_doubles_exec | ( | BMesh * | bm, |
| BMOperator * | op ) |
Definition at line 906 of file bmo_removedoubles.cc.
References bm, bmesh_find_doubles_common(), BMO_slot_get(), and BMOperator::slots_out.
| void bmo_pointmerge_exec | ( | BMesh * | bm, |
| BMOperator * | op ) |
Definition at line 457 of file bmo_removedoubles.cc.
References bm, BM_VERT, BMO_ITER, BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_slot_get(), BMO_slot_map_elem_insert(), BMO_slot_vec_get(), BMVert::co, copy_v3_v3(), BMOperator::flag, BMOperator::slots_in, and v.
| void bmo_pointmerge_facedata_exec | ( | BMesh * | bm, |
| BMOperator * | op ) |
Definition at line 366 of file bmo_removedoubles.cc.
References bm, BM_ELEM_CD_GET_VOID_P, BM_ITER_ELEM, BM_LOOPS_OF_VERT, BM_VERT, BM_vert_face_count(), BMO_ITER, BMO_slot_buffer_get_single(), BMO_slot_get(), CustomData_bmesh_copy_block(), CustomData_data_add(), CustomData_data_multiply(), CustomData_layer_has_math(), BMHeader::data, BMLoop::head, i, l, BMOperator::slots_in, and v.
| void bmo_remove_doubles_exec | ( | BMesh * | bm, |
| BMOperator * | op ) |
Definition at line 894 of file bmo_removedoubles.cc.
References bm, bmesh_find_doubles_common(), BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_slot_get(), BMOperator::flag, and BMOperator::slots_in.
| void bmo_weld_verts_exec | ( | BMesh * | bm, |
| BMOperator * | op ) |
Definition at line 182 of file bmo_removedoubles.cc.
References add_v3_v3(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert, BLI_ghash_ensure_p(), BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_ptr_new(), BLI_ghashIterator_getKey(), BLI_ghashIterator_getValue(), BLI_listbase_is_empty(), bm, BM_CREATE_NOP, BM_edge_create(), BM_edge_exists(), BM_EDGES_OF_MESH, BM_elem_flag_merge_ex, BM_ELEM_HIDDEN, BM_face_kill(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_select_history_merge_from_targetmap(), BM_VERTS_OF_MESH, bmesh_face_swap_data(), BMO_edge_flag_enable, BMO_edge_flag_test, BMO_face_flag_disable, BMO_face_flag_enable, BMO_mesh_delete_oflag_context(), BMO_slot_bool_get(), BMO_slot_get(), BMO_vert_flag_enable, BMO_vert_flag_test, BMO_vert_flag_test_bool, BMVert::co, copy_v3_v3(), count, DEL_ONLYTAGGED, e, EDGE_COL, ELE_DEL, GHASH_ITER, l, BMFace::len, LIKELY, mul_v3_fl(), oflags, remdoubles_createface(), remdoubles_splitface(), BMOperator::slots_in, v, and v2.
|
static |
Helper function for bmo_weld_verts_exec so we can use stack memory.
Definition at line 67 of file bmo_removedoubles.cc.
References BLI_array_alloca, BLI_assert, bm, BM_CREATE_NOP, BM_edge_exists(), BM_elem_attrs_copy(), BM_face_create(), BM_face_exists(), BM_FACE_FIRST_LOOP, BMO_vert_flag_disable, BMO_vert_flag_enable, BMO_vert_flag_test, BMLoop::e, i, BMFace::len, LOOP_MAP_VERT_INIT, BMLoop::next, STACK_CLEAR, STACK_DECLARE, STACK_INIT, STACK_PUSH, STACK_SIZE, UNLIKELY, VERT_IN_FACE, and verts.
Referenced by bmo_weld_verts_exec().
|
static |
Definition at line 28 of file bmo_removedoubles.cc.
References bm, BM_face_split(), BM_face_vert_share_loop(), BM_ITER_ELEM, BM_loop_is_adjacent(), BM_LOOPS_OF_FACE, l, remdoubles_splitface(), and split().
Referenced by bmo_weld_verts_exec(), and remdoubles_splitface().