mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-29 14:00:49 +03:00
0024909: Modeling Algorithms - SIGSEGV in buildsweep
Update algorithm.
This commit is contained in:
@@ -411,7 +411,7 @@ void Extrema_ExtCC::PrepareParallelResult(const Standard_Real theUt11,
|
|||||||
if (((aType1 != GeomAbs_Line) && (aType1 != GeomAbs_Circle)) ||
|
if (((aType1 != GeomAbs_Line) && (aType1 != GeomAbs_Circle)) ||
|
||||||
((aType2 != GeomAbs_Line) && (aType2 != GeomAbs_Circle)))
|
((aType2 != GeomAbs_Line) && (aType2 != GeomAbs_Circle)))
|
||||||
{
|
{
|
||||||
//mySqDist.Append(theSqDist);
|
mySqDist.Append(theSqDist);
|
||||||
myDone = Standard_True;
|
myDone = Standard_True;
|
||||||
myIsParallel = Standard_True;
|
myIsParallel = Standard_True;
|
||||||
return;
|
return;
|
||||||
@@ -432,7 +432,11 @@ void Extrema_ExtCC::PrepareParallelResult(const Standard_Real theUt11,
|
|||||||
!isReversed ? theUt21 : theUt11,
|
!isReversed ? theUt21 : theUt11,
|
||||||
!isReversed ? theUt22 : theUt12);
|
!isReversed ? theUt22 : theUt12);
|
||||||
|
|
||||||
if (!ExtPLin.IsDone())
|
if (ExtPLin.IsDone())
|
||||||
|
{
|
||||||
|
mySqDist.Append(theSqDist);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
myIsParallel = Standard_False;
|
myIsParallel = Standard_False;
|
||||||
}
|
}
|
||||||
@@ -864,6 +868,8 @@ void Extrema_ExtCC::PrepareResults(const Extrema_ExtElC& AlgExt,
|
|||||||
(U2 >= Ut21 - RealEpsilon()) &&
|
(U2 >= Ut21 - RealEpsilon()) &&
|
||||||
(U2 <= Ut22 + RealEpsilon())) {
|
(U2 <= Ut22 + RealEpsilon())) {
|
||||||
Val = AlgExt.SquareDistance(i);
|
Val = AlgExt.SquareDistance(i);
|
||||||
|
if (mypoints.IsEmpty())
|
||||||
|
mySqDist.Clear();
|
||||||
mySqDist.Append(Val);
|
mySqDist.Append(Val);
|
||||||
if (!theIsInverse)
|
if (!theIsInverse)
|
||||||
{
|
{
|
||||||
@@ -933,6 +939,8 @@ void Extrema_ExtCC::PrepareResults(const Extrema_ECC& AlgExt,
|
|||||||
(U2 >= Ut21 - RealEpsilon()) &&
|
(U2 >= Ut21 - RealEpsilon()) &&
|
||||||
(U2 <= Ut22 + RealEpsilon()))
|
(U2 <= Ut22 + RealEpsilon()))
|
||||||
{
|
{
|
||||||
|
if(mypoints.IsEmpty())
|
||||||
|
mySqDist.Clear();
|
||||||
Val = AlgExt.SquareDistance(i);
|
Val = AlgExt.SquareDistance(i);
|
||||||
mySqDist.Append(Val);
|
mySqDist.Append(Val);
|
||||||
P1.SetValues(U, P1.Value());
|
P1.SetValues(U, P1.Value());
|
||||||
|
Reference in New Issue
Block a user