[Bf-blender-cvs] [c2c4e02] master: Fix T45620: Coplanar faces w/ flipped normals not selected
Campbell Barton
noreply at git.blender.org
Mon Aug 3 12:53:36 CEST 2015
Commit: c2c4e02d4188347aafb5be173be482a21c17b5f2
Author: Campbell Barton
Date: Mon Aug 3 20:44:41 2015 +1000
Branches: master
https://developer.blender.org/rBc2c4e02d4188347aafb5be173be482a21c17b5f2
Fix T45620: Coplanar faces w/ flipped normals not selected
===================================================================
M source/blender/bmesh/operators/bmo_similar.c
===================================================================
diff --git a/source/blender/bmesh/operators/bmo_similar.c b/source/blender/bmesh/operators/bmo_similar.c
index 825a158..708d57a 100644
--- a/source/blender/bmesh/operators/bmo_similar.c
+++ b/source/blender/bmesh/operators/bmo_similar.c
@@ -207,16 +207,23 @@ void bmo_similar_faces_exec(BMesh *bm, BMOperator *op)
break;
case SIMFACE_COPLANAR:
+ {
+ float sign = 1.0f;
angle = angle_normalized_v3v3(fs->no, fm->no); /* angle -> 0 */
+ /* allow for normal pointing in either direction (just check the plane) */
+ if (angle > (float)M_PI * 0.5f) {
+ angle = (float)M_PI - angle;
+ sign = -1.0f;
+ }
if (angle <= thresh_radians) { /* and dot product difference -> 0 */
- delta_fl = f_ext[i].d - f_ext[indices[idx]].d;
+ delta_fl = f_ext[i].d - (f_ext[indices[idx]].d * sign);
if (bm_sel_similar_cmp_fl(delta_fl, thresh, compare)) {
BMO_elem_flag_enable(bm, fm, FACE_MARK);
cont = false;
}
}
break;
-
+ }
case SIMFACE_AREA:
delta_fl = f_ext[i].area - f_ext[indices[idx]].area;
if (bm_sel_similar_cmp_fl(delta_fl, thresh, compare)) {
More information about the Bf-blender-cvs
mailing list