0025597: Invalid curve on surface in the result of General Fuse operation
authoremv <emv@opencascade.com>
Thu, 22 Jan 2015 13:54:54 +0000 (16:54 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 22 Jan 2015 14:02:30 +0000 (17:02 +0300)
commit1b7ae951462fcc41b8305ae4d2000240208b60e8
tree8b4f85aa5de864f1184ba1b44d392af8ca865135
parente2da917a1c601016a6621057fc781f8259ced858
0025597: Invalid curve on surface in the result of General Fuse operation

1. The tool of computing the max distance between 3D curve and its 2d representation on the face
has been moved from static methods in BOPTools_AlgoTools class to BRepLib_CheckCurveOnSurface class.
2. The tools has been applied to 2d curves built during Boolean Operation
and to some intersection curves.
3. The functions
  Standard_Boolean BOPTools_AlgoTools::ComputeTolerance
    (const TopoDS_Face& theFace,
     const TopoDS_Edge& theEdge,
     Standard_Real& theMaxDist,
     Standard_Real& theMaxPar)
and
  Standard_Boolean IntTools_Tools::ComputeTolerance
    (const Handle(Geom_Curve)& theCurve3D,
     const Handle(Geom2d_Curve)& theCurve2D,
     const Handle(Geom_Surface)& theSurf,
     const Standard_Real theFirst,
     const Standard_Real theLast,
     Standard_Real& theMaxDist,
     Standard_Real& theMaxPar)
have been developed for easy access to BRepLib_CheckCurveOnSurface functionality.

class IntTools_FaceFace
method void IntTools_FaceFace::ComputeTolReached3d()
Case for Plane/BSpline intersection added for treatment.

Test case for issue CR25597

Fix for regression boolean bsection N7.

class BOPAlgo_PaveFiller
method
  void BOPAlgo_PaveFiller::UpdateFaceInfo
    (BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDME,
     const BOPCol_DataMapOfIntegerInteger& theDMV)
Updating Face Info information with new vertices created in PostTreatFF.

Correction boolean/bsection/N2

Updated test cases.
21 files changed:
src/BOPAlgo/BOPAlgo_PaveFiller.cdl
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
src/BOPTest/BOPTest_CheckCommands.cxx
src/BOPTools/BOPTools_AlgoTools.cdl
src/BOPTools/BOPTools_AlgoTools2D.cxx
src/BOPTools/BOPTools_AlgoTools_1.cxx
src/BRepLib/BRepLib.cdl
src/BRepLib/BRepLib_CheckCurveOnSurface.cdl [new file with mode: 0644]
src/BRepLib/BRepLib_CheckCurveOnSurface.cxx [new file with mode: 0644]
src/BRepLib/BRepLib_CheckCurveOnSurface.lxx [new file with mode: 0644]
src/IntTools/IntTools_FaceFace.cdl
src/IntTools/IntTools_FaceFace.cxx
src/IntTools/IntTools_Tools.cdl
src/IntTools/IntTools_Tools.cxx
tests/boolean/bsection/N2
tests/bugs/modalg_2/bug22967
tests/bugs/modalg_2/bug23218
tests/bugs/modalg_5/bug24558
tests/bugs/modalg_5/bug24915
tests/bugs/modalg_5/bug25292_32
tests/bugs/modalg_5/bug25597 [new file with mode: 0755]