In BRepTools::OuterWire() compare of parameters was rewritten using Precision.
The test case bug31172 has been created
while (expw.More()) {
const TopoDS_Wire& W = TopoDS::Wire(expw.Current());
BRepTools::UVBounds(F,W,umin, umax, vmin, vmax);
- if ((umin <= UMin) &&
- (umax >= UMax) &&
- (vmin <= VMin) &&
- (vmax >= VMax)) {
+ if (((umin - UMin) <= Precision::PConfusion()) &&
+ ((umax - UMax) >= -Precision::PConfusion()) &&
+ ((vmin - VMin) <= Precision::PConfusion()) &&
+ ((vmax - VMax) >= -Precision::PConfusion())) {
Wres = W;
UMin = umin;
UMax = umax;
--- /dev/null
+puts "===================================================="
+puts "0031172: Unexpected result of BRepTools::OuterWire()"
+puts "===================================================="
+puts ""
+
+pload QAcommands
+
+restore [locate_data_file bug31172.brep] face
+BUC60652 face
+
+explode face W
+checkprops w -equal face_3
\ No newline at end of file