currPnt = myGrid->Value ( currPnt2d );
if ( currPnt.Distance ( lastVPnt ) <= lastVTol &&
lastPnt.Distance ( currPnt ) <= tol &&
+ // Tolerance is increased to prevent degenerated cuts in cases where all vertex
+ // tolerance is covered by distance of the edge curve from vertex point.
+ // Doubled to prevent edge being fully covered by its vertices tolerance (invalid edge).
CheckByCurve3d ( lastVPnt, c3d, f3d+(currPar-firstPar)*(l3d-f3d)/span2d,
- T, lastVTol ) &&
+ T, lastVTol + 2 * Precision::Confusion() ) &&
lastPnt.Distance ( myGrid->Value ( C2d->Value(0.5*(currPar+lastPar)) ) ) <= tol ) {
V = lastV;
Standard_Real uRes = myUResolution;
}
else if ( currPnt.Distance ( prevVPnt ) <= prevVTol &&
prevPnt.Distance ( currPnt ) <= tol &&
+ // Tolerance is increased to prevent degenerated cuts in cases where all vertex
+ // tolerance is covered by distance of the edge curve from vertex point.
+ // Doubled to prevent edge being fully covered by its vertices tolerance (invalid edge).
CheckByCurve3d ( prevVPnt, c3d, f3d+(currPar-firstPar)*(l3d-f3d)/span2d,
- T, prevVTol ) &&
+ T, prevVTol + 2 * Precision::Confusion()) &&
prevPnt.Distance ( myGrid->Value ( C2d->Value(0.5*(currPar+prevPar)) ) ) <= tol ) {
V = prevV;
Standard_Real uRes = myUResolution;
--- /dev/null
+restore [locate_data_file bug31202.brep] shape
+fixshape result shape 0.000001137 0.0001137
+checkshape result
+checknbshapes result -edge 4
\ No newline at end of file
# !!!! This file is generated automatically, do not edit manually! See end script
puts "TODO CR23096 ALL: TPSTAT : Faulty"
-puts "TODO CR23096 ALL: CHECKSHAPE : Faulty"
set filename bm1_sy_exhaust.stp