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

0025880: fuzzy booleans with multiple tools

New features:
class BOPTools_AlgoTools2D
method:
 Standard_Integer BOPTools_AlgoTools2D::AttachExistingPCurve
   (const TopoDS_Edge& aEold,
    const TopoDS_Edge& aEnew,
    const TopoDS_Face& aF,
    const Handle(IntTools_Context)& aCtx)
has been added.

Purpose:
  To attach P-Curve on surface of the face <aF>  from the edge <aEold>
   to the edge <aEnew>
   It returns 0 in case of success.

Changes:
1. class BOPTools_AlgoTools
method:
 Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
  (const TopoDS_Face& theFSp,
   const TopoDS_Face& theFSr,
   Handle(IntTools_Context)& theContext)

The condition for a point on the surface of a face has been changed.

2. class BOPAlgo_PaveFiller
method:
 void BOPAlgo_PaveFiller::MakePCurves()

The treatment of E/E common bocks has been changed
to use mechanism of attacment P-Curves [ I.1 ]

Test case for issue CR25880
This commit is contained in:
pkv
2015-04-30 14:41:27 +03:00
committed by bugmaster
parent 76a2b7d1fb
commit 905522eef8
8 changed files with 508 additions and 31 deletions

View File

@@ -952,18 +952,9 @@ void GeomLib::SameRange(const Standard_Real Tolerance,
else { // On segmente le resultat
Handle(Geom2d_TrimmedCurve) TC =
new Geom2d_TrimmedCurve( CurvePtr, FirstOnCurve, LastOnCurve );
Standard_Real newFirstOnCurve = TC->FirstParameter(), newLastOnCurve = TC->LastParameter();
//
Handle(Geom2d_BSplineCurve) BS =
Geom2dConvert::CurveToBSplineCurve(TC);
if (BS->IsPeriodic())
BS->Segment( newFirstOnCurve, newLastOnCurve) ;
else
BS->Segment( Max(newFirstOnCurve, BS->FirstParameter()),
Min(newLastOnCurve, BS->LastParameter()) );
TColStd_Array1OfReal Knots(1,BS->NbKnots());
BS->Knots(Knots);