[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