Smaller markup on fuzziness for boolean result interference checks

This commit is contained in:
Thomas Krijnen
2019-05-17 14:25:28 +02:00
parent 1d5e560e66
commit fd6de77577
+4 -4
View File
@@ -3999,7 +3999,7 @@ bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a_, const TopTools_L
} }
} }
const double fuzz = (std::min)(min_length_orig / 10., fuzziness); const double fuzz = (std::min)(min_length_orig / 3., fuzziness);
TopTools_ListOfShape s1s; TopTools_ListOfShape s1s;
s1s.Append(copy_operand(a)); s1s.Append(copy_operand(a));
@@ -4037,13 +4037,13 @@ bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a_, const TopTools_L
// output is not trusted and the operation is attempted with a higher fuzziness. // output is not trusted and the operation is attempted with a higher fuzziness.
int reason = 0; int reason = 0;
double v; double v;
if ((v = min_edge_length(r)) < fuzziness * 10.) { if ((v = min_edge_length(r)) < fuzziness * 3.) {
reason = 0; reason = 0;
success = false; success = false;
} else if ((v = min_vertex_edge_distance(r, getValue(GV_PRECISION), fuzziness * 10.)) < fuzziness * 10.) { } else if ((v = min_vertex_edge_distance(r, getValue(GV_PRECISION), fuzziness * 3.)) < fuzziness * 3.) {
reason = 1; reason = 1;
success = false; success = false;
} else if ((v = min_face_face_distance(r, fuzziness * 10.)) < fuzziness * 10.) { } else if ((v = min_face_face_distance(r, fuzziness * 3.)) < fuzziness * 3.) {
reason = 2; reason = 2;
success = false; success = false;
} }