[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52223] trunk/blender/source/blender/bmesh /operators/bmo_bevel.c: Fix 'polygon eating' problem in bevel (bug #33141)

Howard Trickey howard.trickey at gmail.com
Thu Nov 15 03:05:33 CET 2012


Revision: 52223
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52223
Author:   howardt
Date:     2012-11-15 02:05:32 +0000 (Thu, 15 Nov 2012)
Log Message:
-----------
Fix 'polygon eating' problem in bevel (bug #33141)
which was due to almost-parallel lines.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/operators/bmo_bevel.c

Modified: trunk/blender/source/blender/bmesh/operators/bmo_bevel.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_bevel.c	2012-11-15 02:04:23 UTC (rev 52222)
+++ trunk/blender/source/blender/bmesh/operators/bmo_bevel.c	2012-11-15 02:05:32 UTC (rev 52223)
@@ -110,6 +110,7 @@
 	float offset;           /* blender units to offset each side of a beveled edge */
 	int seg;                /* number of segments in beveled edge profile */
 } BevelParams;
+#include "bevdebug.c"
 
 /* Make a new BoundVert of the given kind, insert it at the end of the circular linked
  * list with entry point bv->boundstart, and return it. */
@@ -378,9 +379,12 @@
 	madd_v3_v3fl(off2a, norm_perp2, e2->offset);
 	add_v3_v3v3(off2b, off2a, dir2);
 
-	if (!isect_line_line_v3(off1a, off1b, off2a, off2b, meetco, isect2)) {
+	if (fabs(angle_v3v3(dir1, dir2)) < BEVEL_EPSILON) {
 		/* lines are parallel; off1a is a good meet point */
 		copy_v3_v3(meetco, off1a);
+        } else if (!isect_line_line_v3(off1a, off1b, off2a, off2b, meetco, isect2)) {
+		/* another test says they are parallel */
+		copy_v3_v3(meetco, off1a);
 	}
 }
 




More information about the Bf-blender-cvs mailing list