X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_MacroEllipse.cpp;h=630b735cef0f956daff11f63a1b0b21db302aeed;hb=2231d4ba3833486bfb36c85220e0b2ab9c3f8849;hp=2cf1cbc7f011bcf9ff4c7a6e314d46c57f395705;hpb=584f97832c77adf0c9df154b2f3eb1835bd3ce9e;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_MacroEllipse.cpp b/src/SketchPlugin/SketchPlugin_MacroEllipse.cpp index 2cf1cbc7f..630b735ce 100644 --- a/src/SketchPlugin/SketchPlugin_MacroEllipse.cpp +++ b/src/SketchPlugin/SketchPlugin_MacroEllipse.cpp @@ -44,6 +44,7 @@ #include #include +static const double TOLERANCE = 1.e-7; SketchPlugin_MacroEllipse::SketchPlugin_MacroEllipse() : SketchPlugin_SketchEntity(), @@ -169,6 +170,9 @@ void SketchPlugin_MacroEllipse::attributeChanged(const std::string& theID) anEllipsePoints[0]->setY(0.5 * (anEllipsePoints[0]->y() + anEllipsePoints[1]->y())); } + if (anEllipsePoints[0]->distance(anEllipsePoints[1]) < TOLERANCE) + return; // ellipse is not valid + std::shared_ptr anEllipse; if (aNbInitialized == 2) { GeomDir2dPtr aXDir(new GeomAPI_Dir2d(anEllipsePoints[1]->x() - anEllipsePoints[0]->x(),