mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-02-16 09:13: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;
|
||||
if (aIsValidNormal && aIsValidOrigin && aIsValidDirX && aIsValidRad1 && aIsValidRad2)
|
||||
{
|
||||
gp_Ax2 aAx2(gp_Pnt(theOrigin[0], theOrigin[1], theOrigin[2]),
|
||||
gp_Dir(theNormal[0], theNormal[1], theNormal[2]),
|
||||
gp_Dir(theDirX[0], theDirX[1], theDirX[2]));
|
||||
gp_Pnt anOrigin(theOrigin[0], theOrigin[1], theOrigin[2]);
|
||||
gp_XYZ aNormal(theNormal[0], theNormal[1], theNormal[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);
|
||||
}
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user