Salome HOME
Merge branch 'V9_3_BR'
[modules/shaper.git] / src / GeomAlgoAPI / GeomAlgoAPI_Translation.cpp
index 55ed0e89caebdb654ace2add8987a55b9a022021..b73713a8b52c6b1bf70f4edc435b6238a33ef7a5 100644 (file)
@@ -1,10 +1,21 @@
-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File:        GeomAlgoAPI_Translation.cpp
-// Created:     8 June 2015
-// Author:      Dmitry Bobylev
+// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-// Modified by Clarisse Genrault (CEA) : 17 Nov 2016
 
 #include "GeomAlgoAPI_Translation.h"
 
@@ -53,35 +64,39 @@ bool GeomAlgoAPI_Translation::check()
   switch (myMethodType) {
     case BY_DISTANCE: {
       if (!myAxis) {
-        myError = "Translation builder :: axis is invalid.";
+        myError = "Translation builder :: axis is not valid.";
         return false;
       }
       if (!mySourceShape) {
-        myError = "Translation builder :: source shape is invalid.";
+        myError = "Translation builder :: source shape is not valid.";
         return false;
       }
       return true;
     }
     case BY_DIM: {
       if (!mySourceShape) {
-        myError = "Translation builder :: source shape is invalid.";
+        myError = "Translation builder :: source shape is not valid.";
         return false;
       }
       return true;
     }
     case BY_POINTS: {
       if (!myStartPoint) {
-        myError = "Translation builder :: start point is invalid.";
+        myError = "Translation builder :: start point is not valid.";
         return false;
       }
       if (!myEndPoint) {
-        myError = "Translation builder :: start point is invalid.";
+        myError = "Translation builder :: end point is not valid.";
         return false;
       }
       if (!mySourceShape) {
         myError = "Translation builder :: source shape is invalid.";
         return false;
       }
+      if(myStartPoint->distance(myEndPoint) < Precision::Confusion()) {
+        myError = "Translation builder :: start point and end point coincide.";
+        return false;
+      }
       return true;
     }
     default: {
@@ -146,4 +161,4 @@ void GeomAlgoAPI_Translation::build()
   aShape->setImpl(new TopoDS_Shape(aResult));
   setShape(aShape);
   setDone(true);
-}
\ No newline at end of file
+}