mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-05-16 10:54:53 +03:00
0028812: Regression. bugs modalg_6 bug28468_2 test case is crashed if CSF_FPE set to 1.
Test the possibility of line creation is added
This commit is contained in:
parent
b07ce12b5f
commit
5fdf69c9db
@ -24,7 +24,16 @@ GCPnts_DistFunction::GCPnts_DistFunction(const Adaptor3d_Curve& theCurve,
|
|||||||
myU1(U1), myU2(U2)
|
myU1(U1), myU2(U2)
|
||||||
{
|
{
|
||||||
gp_Pnt P1 = theCurve.Value(U1), P2 = theCurve.Value(U2);
|
gp_Pnt P1 = theCurve.Value(U1), P2 = theCurve.Value(U2);
|
||||||
myLin = gp_Lin(P1, P2.XYZ() - P1.XYZ());
|
if (P1.SquareDistance(P2) > gp::Resolution())
|
||||||
|
{
|
||||||
|
myLin = gp_Lin(P1, P2.XYZ() - P1.XYZ());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//For #28812
|
||||||
|
theCurve.D0(U1 + .01*(U2-U1), P2);
|
||||||
|
myLin = gp_Lin(P1, P2.XYZ() - P1.XYZ());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
@ -25,7 +25,17 @@ GCPnts_DistFunction2d::GCPnts_DistFunction2d(const Adaptor2d_Curve2d& theCurve,
|
|||||||
myU1(U1), myU2(U2)
|
myU1(U1), myU2(U2)
|
||||||
{
|
{
|
||||||
gp_Pnt2d P2d1 = theCurve.Value(U1), P2d2 = theCurve.Value(U2);
|
gp_Pnt2d P2d1 = theCurve.Value(U1), P2d2 = theCurve.Value(U2);
|
||||||
myLin = gp_Lin2d(P2d1, P2d2.XY() - P2d1.XY());
|
if (P2d1.SquareDistance(P2d2) > gp::Resolution())
|
||||||
|
{
|
||||||
|
myLin = gp_Lin2d(P2d1, P2d2.XY() - P2d1.XY());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//For #28812
|
||||||
|
theCurve.D0(U1 + .01*(U2 - U1), P2d2);
|
||||||
|
myLin = gp_Lin2d(P2d1, P2d2.XY() - P2d1.XY());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
Loading…
x
Reference in New Issue
Block a user