mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-02-19 19:23:08 +05:00
0054769: isCylinder with parameters generates UNKNOWN_UserException
This commit is contained in:
parent
5e7ffda86a
commit
59e8fba776
@ -290,9 +290,12 @@ CORBA::Boolean GEOM_ICanonicalRecognition_i::isEllipse(GEOM::GEOM_Object_ptr the
|
|||||||
gp_Elips aElips;
|
gp_Elips aElips;
|
||||||
if (aIsValidNormal && aIsValidOrigin && aIsValidDirX && aIsValidRad1 && aIsValidRad2)
|
if (aIsValidNormal && aIsValidOrigin && aIsValidDirX && aIsValidRad1 && aIsValidRad2)
|
||||||
{
|
{
|
||||||
gp_Ax2 aAx2(gp_Pnt(theOrigin[0], theOrigin[1], theOrigin[2]),
|
gp_Pnt anOrigin(theOrigin[0], theOrigin[1], theOrigin[2]);
|
||||||
gp_Dir(theNormal[0], theNormal[1], theNormal[2]),
|
gp_XYZ aNormal(theNormal[0], theNormal[1], theNormal[2]);
|
||||||
gp_Dir(theDirX[0], theDirX[1], theDirX[2]));
|
gp_XYZ aDirX(theDirX[0], theDirX[1], theDirX[2]);
|
||||||
|
Standard_Boolean isCollinear =
|
||||||
|
aNormal.CrossSquareMagnitude(aDirX) < Precision::SquareConfusion();
|
||||||
|
gp_Ax2 aAx2 = isCollinear ? gp_Ax2(anOrigin, aNormal) : gp_Ax2(anOrigin, aNormal, aDirX);
|
||||||
aElips = gp_Elips(aAx2, theMajorRadius, theMinorRadius);
|
aElips = gp_Elips(aAx2, theMajorRadius, theMinorRadius);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user