]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
report error when a major radius is less that a minor one
authoreap <eap@opencascade.com>
Wed, 16 Mar 2011 07:47:10 +0000 (07:47 +0000)
committereap <eap@opencascade.com>
Wed, 16 Mar 2011 07:47:10 +0000 (07:47 +0000)
src/GEOMImpl/GEOMImpl_EllipseDriver.cxx

index 68235edd7998acdd2650311fe252ab0a782e23de..a4dd2914585bb0a6dfb106c5ef4477a9e79ddfdd 100644 (file)
@@ -133,9 +133,18 @@ Standard_Integer GEOMImpl_EllipseDriver::Execute(TFunction_Logbook& log) const
         anAxes  = gp_Ax2 (aP, aV, aVM);
       }
     }
+    // Radiuses
+    double radiusMaj = aCI.GetRMajor();
+    double radiusMin = aCI.GetRMinor();
+    if ( radiusMaj < radiusMin )
+      Standard_ConstructionError::Raise
+        ("Ellipse creation aborted: a major radius is less that a minor one");
+    if ( radiusMin < 0.0 )
+      Standard_ConstructionError::Raise
+        ("Ellipse creation aborted: raduis must be positive");
 
     // Ellipse
-    gp_Elips anEll (anAxes, aCI.GetRMajor(), aCI.GetRMinor());
+    gp_Elips anEll (anAxes, radiusMaj, radiusMin);
     aShape = BRepBuilderAPI_MakeEdge(anEll).Edge();
   }
   else {