[Bf-blender-cvs] [3f5b59c] master: Fix T37121: decimate works badly with flat surfaces

Campbell Barton noreply at git.blender.org
Wed Nov 27 01:26:54 CET 2013


Commit: 3f5b59cd90c961d9737e7dbf8999c5030b7ccadf
Author: Campbell Barton
Date:   Wed Nov 27 11:24:18 2013 +1100
http://developer.blender.org/rB3f5b59cd90c961d9737e7dbf8999c5030b7ccadf

Fix T37121: decimate works badly with flat surfaces

===================================================================

M	source/blender/bmesh/tools/bmesh_decimate_collapse.c

===================================================================

diff --git a/source/blender/bmesh/tools/bmesh_decimate_collapse.c b/source/blender/bmesh/tools/bmesh_decimate_collapse.c
index 99d4655..3ee238a 100644
--- a/source/blender/bmesh/tools/bmesh_decimate_collapse.c
+++ b/source/blender/bmesh/tools/bmesh_decimate_collapse.c
@@ -250,6 +250,9 @@ static void bm_decim_build_edge_cost_single(BMEdge *e,
 	}
 	// print("COST %.12f\n");
 
+	/* note, 'cost' shouldn't be negative but happens sometimes with small values.
+	 * this can cause faces that make up a flat surface to over-collapse, see [#37121] */
+	cost = fabsf(cost);
 	eheap_table[BM_elem_index_get(e)] = BLI_heap_insert(eheap, cost, e);
 }




More information about the Bf-blender-cvs mailing list