Salome HOME
Fix bug on error message for multitranslation (id 2235).
authorClarisse Genrault <clarisse.genrault@cea.fr>
Fri, 17 Mar 2017 09:06:36 +0000 (10:06 +0100)
committerClarisse Genrault <clarisse.genrault@cea.fr>
Fri, 17 Mar 2017 09:06:36 +0000 (10:06 +0100)
src/FeaturesPlugin/FeaturesPlugin_MultiTranslation.cpp
src/GeomAlgoAPI/GeomAlgoAPI_ShapeAPI.cpp

index 4112b4ace552473d99f0b6e277cdc1d5df639cf4..26023890ba26deff27198ee0ebaf1e614adfcb6f 100644 (file)
@@ -108,6 +108,12 @@ void FeaturesPlugin_MultiTranslation::performOneDirection()
   int nbCopies =
     integer(FeaturesPlugin_MultiTranslation::NB_COPIES_FIRST_DIR_ID())->value();
 
+  if (nbCopies <=0) {
+    std::string aFeatureError = "Multitranslation builder ";
+    aFeatureError+=":: the number of copies for the first direction is null or negative.";
+    setError(aFeatureError);
+  }
+
   // Moving each object.
   int aResultIndex = 0;
   std::list<ResultPtr>::iterator aContext = aContextes.begin();
@@ -237,6 +243,18 @@ void FeaturesPlugin_MultiTranslation::performTwoDirection()
   int aSecondNbCopies =
     integer(FeaturesPlugin_MultiTranslation::NB_COPIES_SECOND_DIR_ID())->value();
 
+  if (aFirstNbCopies <=0) {
+    std::string aFeatureError = "Multitranslation builder ";
+    aFeatureError+=":: the number of copies for the first direction is null or negative.";
+    setError(aFeatureError);
+  }
+
+  if (aSecondNbCopies <=0) {
+    std::string aFeatureError = "Multitranslation builder ";
+    aFeatureError+=":: the number of copies for the second direction is null or negative.";
+    setError(aFeatureError);
+  }
+
   // Coord aFirstAxis
   double x1 = aFirstAxis->dir()->x();
   double y1 = aFirstAxis->dir()->y();
index 9765c645656fb2ed2fdd034530bb0f5e893a427e..c593215ecb75d55db018f35fe60e5c23ee4e370b 100644 (file)
@@ -411,6 +411,12 @@ namespace GeomAlgoAPI_ShapeAPI
     const double theStep,
     const int theNumber) throw (GeomAlgoAPI_Exception)
   {
+    if (theNumber <=0) {
+    std::string aError = "Multitranslation builder ";
+    aError+=":: the number of copies for the first direction is null or negative.";
+      throw GeomAlgoAPI_Exception(aError);
+    }
+
     ListOfShape aListOfShape;
     for (int i=0; i<theNumber; i++) {
       aListOfShape.
@@ -429,6 +435,18 @@ namespace GeomAlgoAPI_ShapeAPI
     const double theSecondStep,
     const int theSecondNumber) throw (GeomAlgoAPI_Exception)
   {
+    if (theFirstNumber <=0) {
+    std::string aError = "Multitranslation builder ";
+    aError+=":: the number of copies for the first direction is null or negative.";
+      throw GeomAlgoAPI_Exception(aError);
+    }
+
+    if (theSecondNumber <=0) {
+    std::string aError = "Multitranslation builder ";
+    aError+=":: the number of copies for the second direction is null or negative.";
+      throw GeomAlgoAPI_Exception(aError);
+    }
+
     // Coord theFirstAxis
     double x1 = theFirstAxis->dir()->x();
     double y1 = theFirstAxis->dir()->y();