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

0032850: Modeling Algorithms - Surface Surface Intersect Lost one line

IntStart_SearchOnBoundaries.gxx - improving tangent criteria
This commit is contained in:
gelin
2022-02-28 09:13:31 +03:00
committed by smoskvin
parent f55fe3b3f7
commit 492b09dcae
4 changed files with 68 additions and 14 deletions

View File

@@ -714,7 +714,8 @@ void IntPatch_ALineToWLine::MakeWLine(const Handle(IntPatch_ALine)& theALine,
}
IntPatch_Point aVtx = theALine->Vertex(aVertexNumber);
const Standard_Real aNewVertexParam = aLinOn2S->NbPoints() + 1;
Standard_Real aNewVertexParam = aLinOn2S->NbPoints() + 1;
Standard_Integer aNbPointsPrev = aLinOn2S->NbPoints();
//ATTENTION!!!
// IsPoleOrSeam inserts new point in aLinOn2S if aVtx respects
@@ -748,6 +749,7 @@ void IntPatch_ALineToWLine::MakeWLine(const Handle(IntPatch_ALine)& theALine,
aPrePointExist = IsPoleOrSeam(myS1, myS2, aPrefIso, aLinOn2S, aVtx,
anArrPeriods, aTol, aSingularSurfaceID);
if (aPrePointExist == IntPatch_SPntPole ||
aPrePointExist == IntPatch_SPntPoleSeamU)
{
@@ -761,6 +763,11 @@ void IntPatch_ALineToWLine::MakeWLine(const Handle(IntPatch_ALine)& theALine,
const Standard_Real aCurVertParam = aVtx.ParameterOnLine();
if(aPrePointExist != IntPatch_SPntNone)
{
if (aNbPointsPrev == aLinOn2S->NbPoints())
{
//Vertex coinsides any point of line and was not added into line
aNewVertexParam = aNbPointsPrev;
}
aPrevParam = aParameter = aCurVertParam;
}
else