Changeset View
Changeset View
Standalone View
Standalone View
source/blender/bmesh/tools/bmesh_decimate_dissolve.c
| Show First 20 Lines • Show All 433 Lines • ▼ Show 20 Lines | void BM_mesh_decimate_dissolve_ex(BMesh *bm, | ||||
| } | } | ||||
| /* --- second verts --- */ | /* --- second verts --- */ | ||||
| if (do_dissolve_boundaries) { | if (do_dissolve_boundaries) { | ||||
| /* simple version of the branch below, since we will dissolve _all_ verts that use 2 edges */ | /* simple version of the branch below, since we will dissolve _all_ verts that use 2 edges */ | ||||
| for (i = 0; i < vinput_len; i++) { | for (i = 0; i < vinput_len; i++) { | ||||
| BMVert *v = vinput_arr[i]; | BMVert *v = vinput_arr[i]; | ||||
| if (LIKELY(v != NULL) && BM_vert_is_edge_pair(v)) { | if (LIKELY(v != NULL) && BM_vert_is_edge_pair(v)) { | ||||
| BM_vert_collapse_edge(bm, v->e, v, true, true); /* join edges */ | BM_vert_collapse_edge(bm, v->e, v, true, true, true); /* join edges */ | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| else { | else { | ||||
| Heap *vheap; | Heap *vheap; | ||||
| HeapNode **vheap_table = _heap_table; | HeapNode **vheap_table = _heap_table; | ||||
| HeapNode *vnode_top; | HeapNode *vnode_top; | ||||
| Show All 26 Lines | while ((BLI_heap_is_empty(vheap) == false) && | ||||
| if ( | if ( | ||||
| #ifdef USE_DEGENERATE_CHECK | #ifdef USE_DEGENERATE_CHECK | ||||
| !bm_vert_collapse_is_degenerate(v) | !bm_vert_collapse_is_degenerate(v) | ||||
| #else | #else | ||||
| BM_vert_is_edge_pair(v) | BM_vert_is_edge_pair(v) | ||||
| #endif | #endif | ||||
| ) { | ) { | ||||
| e_new = BM_vert_collapse_edge(bm, v->e, v, true, true); /* join edges */ | e_new = BM_vert_collapse_edge(bm, v->e, v, true, true, true); /* join edges */ | ||||
| if (e_new) { | if (e_new) { | ||||
| BLI_heap_remove(vheap, vnode_top); | BLI_heap_remove(vheap, vnode_top); | ||||
| vheap_table[i] = NULL; | vheap_table[i] = NULL; | ||||
| /* update normal */ | /* update normal */ | ||||
| if (e_new->l) { | if (e_new->l) { | ||||
| ▲ Show 20 Lines • Show All 78 Lines • Show Last 20 Lines | |||||