[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58018] trunk/blender/source/blender/bmesh : fix [#35989] bridge tool flip mash

Campbell Barton ideasman42 at gmail.com
Fri Jul 5 10:45:42 CEST 2013


Revision: 58018
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58018
Author:   campbellbarton
Date:     2013-07-05 08:45:42 +0000 (Fri, 05 Jul 2013)
Log Message:
-----------
fix [#35989] bridge tool flip mash
open edge loops were calculating flipping incorrectly.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/intern/bmesh_edgeloop.c
    trunk/blender/source/blender/bmesh/operators/bmo_bridge.c

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_edgeloop.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_edgeloop.c	2013-07-05 07:53:22 UTC (rev 58017)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_edgeloop.c	2013-07-05 08:45:42 UTC (rev 58018)
@@ -428,7 +428,7 @@
 		float len_best = FLT_MAX;
 
 		if (use_normals)
-			BLI_assert(fabsf(len_squared_v3(no) - 1.0f) < FLT_EPSILON);
+			BLI_ASSERT_UNIT_V3(no);
 
 		for (el_store = eloops->first; el_store; el_store = el_store->next) {
 			float len;

Modified: trunk/blender/source/blender/bmesh/operators/bmo_bridge.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_bridge.c	2013-07-05 07:53:22 UTC (rev 58017)
+++ trunk/blender/source/blender/bmesh/operators/bmo_bridge.c	2013-07-05 08:45:42 UTC (rev 58018)
@@ -189,7 +189,10 @@
 		            ((BMVert *)(((LinkData *)lb_b->first)->data))->co,
 		            ((BMVert *)(((LinkData *)lb_b->last)->data))->co);
 
-		/* this isnt totally reliable but works well in most cases */
+		/* make the directions point out from the normals, 'no' is used as a temp var */
+		cross_v3_v3v3(no, dir_a, el_dir); cross_v3_v3v3(dir_a, no, el_dir);
+		cross_v3_v3v3(no, dir_b, el_dir); cross_v3_v3v3(dir_b, no, el_dir);
+
 		if (dot_v3v3(dir_a, dir_b) < 0.0f) {
 			BM_edgeloop_flip(bm, el_store_b);
 		}




More information about the Bf-blender-cvs mailing list