1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0021564: Intersection of two planar faces produces curve with too many poles

I ComputePurgedWLine() function:
Excess points in walking line are deleted when:
1) Distance between neighboring points too small.
2) Points lie in one pipe without big jump on chord length.

III
Fixed problem with extremaPC with too close knot distribution to [minParam, maxParam] borders.

IV ApproxInt_Approx.gxx
New division criteria in intersection approximator.

III Test case
Test cases update to the new behavior.
Test case for CR21564

Correction of test cases for issue CR21564
This commit is contained in:
aml
2015-08-13 11:04:03 +03:00
committed by ski
parent 7a324550c8
commit 0cbfb9f151
24 changed files with 481 additions and 99 deletions

View File

@@ -90,6 +90,9 @@ protected:
private:
Standard_EXPORT Standard_Integer CorrectFinishIdx(const Standard_Integer theMinIdx,
const Standard_Integer theMaxIdx,
const Handle(BRepApprox_ApproxLine)& theline);
Standard_EXPORT void Perform (const BRepAdaptor_Surface& Surf1, const IntSurf_Quadric& Surf2, const Handle(BRepApprox_ApproxLine)& aLine, const Standard_Boolean ApproxXYZ, const Standard_Boolean ApproxU1V1, const Standard_Boolean ApproxU2V2, const Standard_Integer indicemin, const Standard_Integer indicemax);