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:
@@ -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++)
|
||||
{
|
||||
|
Reference in New Issue
Block a user