[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50902] trunk/blender/source/blender/bmesh /operators/bmo_subdivide.c: fix [#32665] Inconsistent Circle Mesh Edge Subdivision

Campbell Barton ideasman42 at gmail.com
Wed Sep 26 13:14:41 CEST 2012


Revision: 50902
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50902
Author:   campbellbarton
Date:     2012-09-26 11:14:40 +0000 (Wed, 26 Sep 2012)
Log Message:
-----------
fix [#32665] Inconsistent Circle Mesh Edge Subdivision

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

Modified: trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c	2012-09-26 10:39:36 UTC (rev 50901)
+++ trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c	2012-09-26 11:14:40 UTC (rev 50902)
@@ -53,6 +53,9 @@
 #define ELE_INNER	8
 #define ELE_SPLIT	16
 
+/* see bug [#32665], 0.00005 means a we get face splits at a little under 1.0 degrees */
+#define FLT_FACE_SPLIT_EPSILON 0.00005
+
 /*
  * NOTE: beauty has been renamed to flag!
  */
@@ -823,16 +826,12 @@
 
 		/* make sure the two edges have a valid angle to each other */
 		if (totesel == 2 && BM_edge_share_vert_count(e1, e2)) {
-			float angle;
-
 			sub_v3_v3v3(vec1, e1->v2->co, e1->v1->co);
 			sub_v3_v3v3(vec2, e2->v2->co, e2->v1->co);
 			normalize_v3(vec1);
 			normalize_v3(vec2);
 
-			angle = dot_v3v3(vec1, vec2);
-			angle = fabsf(angle);
-			if (fabsf(angle - 1.0f) < 0.01f) {
+			if (fabsf(dot_v3v3(vec1, vec2)) > 1.0f - FLT_FACE_SPLIT_EPSILON) {
 				totesel = 0;
 			}
 		}




More information about the Bf-blender-cvs mailing list