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

0029972: Intersection curve has a weird gap in the middle of it

1. The condition of WLine breaking (in IntWalk_IWalking algorithm) has become more independent of the input tolerance.

2. Currently the algorithm of IntPatch_Points of WLine processing depends on the algorithm of obtaining the WLine.

3. The methods IntSurf_LineOn2S::Add(...) and IntSurf_LineOn2S::SetUV(...) have become not inline (see the message ~0077431 in the issue #29866).
This commit is contained in:
nbv
2018-07-23 14:00:16 +03:00
committed by bugmaster
parent 06a505ba53
commit 98974dccef
34 changed files with 828 additions and 160 deletions

View File

@@ -99,6 +99,7 @@ static Handle(IntPatch_WLine) MakeNewWLine(const Handle(IntPatch_WLine)
Handle(IntSurf_LineOn2S) aPurgedLineOn2S = new IntSurf_LineOn2S();
Handle(IntPatch_WLine) aLocalWLine = new IntPatch_WLine(aPurgedLineOn2S, Standard_False);
aLocalWLine->SetCreatingWayInfo(theWLine->GetCreatingWay());
Standard_Integer anOldLineIdx = 1, aVertexIdx = 1, anIndexPrev = -1, anIdxOld = -1;
gp_Pnt aPPrev, aPOld;
for(i = 1; i <= thePointsHash.Upper(); i++)
@@ -1347,6 +1348,7 @@ Handle(IntPatch_WLine) IntPatch_WLineTool::
Handle(IntPatch_WLine) aTmpWLine = theWLine;
Handle(IntSurf_LineOn2S) aLineOn2S = new IntSurf_LineOn2S();
aLocalWLine = new IntPatch_WLine(aLineOn2S, Standard_False);
aLocalWLine->SetCreatingWayInfo(theWLine->GetCreatingWay());
for(i = 1; i <= nb; i++)
aLineOn2S->Add(theWLine->Point(i));
@@ -1390,6 +1392,7 @@ Handle(IntPatch_WLine) IntPatch_WLineTool::
{
aTmpWLine = aLocalWLine;
aLocalWLine = new IntPatch_WLine(aLineOn2S, Standard_False);
aLocalWLine->SetCreatingWayInfo(theWLine->GetCreatingWay());
for(v = 1; v <= aTmpWLine->NbVertex(); v++)
{