1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0026310: Very slow boolean cut operations on cylinders

1. JoinWLines algorithm has been improved.
2. Reference to the V-boundaries is deleted when computing step.
3. Decreasing the tolerance when computing parameters of WLine.
4. Adding boundary point is forbidden if it lies in prolongation of found ones.
5. Possible reason of exception has been eliminated.
6. Processing of critical point has been improved.

Test cases for this issue have been created.
Correction of some test case(s).

Test case bugs/modalg_6/bug26310_4 is added

Update of test-cases for issue #26310
This commit is contained in:
nbv
2015-07-22 16:10:27 +03:00
committed by bugmaster
parent 0e628baf3e
commit 7365fad60b
10 changed files with 669 additions and 162 deletions

View File

@@ -644,7 +644,7 @@ void IntTools_FaceFace::Perform(const TopoDS_Face& aF1,
{
const Standard_Real UVMaxStep = 0.001;
const Standard_Real Deflection = (hasCone) ? 0.085 : 0.1;
myIntersector.SetTolerances(TolArc, TolTang, UVMaxStep, Deflection);
myIntersector.SetTolerances(TolArc, TolTang, UVMaxStep, Deflection);
}
if((myHS1->IsUClosed() && !myHS1->IsUPeriodic()) ||
@@ -1672,6 +1672,11 @@ Standard_Real IntTools_FaceFace::ComputeTolerance()
case IntPatch_Walking:{
Handle(IntPatch_WLine) WL =
Handle(IntPatch_WLine)::DownCast(L);
#ifdef OCCT_DEBUG
//WL->Dump();
#endif
//
Standard_Integer ifprm, ilprm;
//