Salome HOME
Merge remote-tracking branch 'origin/CEA_2019'
[modules/shaper.git] / src / FeaturesAPI / FeaturesAPI_ExtrusionBoolean.cpp
index e501b6e134b3115420b7605a6512443b966fa042..934a9ae02e0c35113e8d653070896dbb6fd9f227 100644 (file)
@@ -1,8 +1,21 @@
-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
-
-// File:        FeaturesAPI_ExtrusionBoolean.cpp
-// Created:     09 June 2016
-// 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
+//
 
 #include "FeaturesAPI_ExtrusionBoolean.h"
 
@@ -75,11 +88,7 @@ void FeaturesAPI_ExtrusionBoolean::setSizes(const ModelHighAPI_Double& theToSize
 //==================================================================================================
 void FeaturesAPI_ExtrusionBoolean::setSize(const ModelHighAPI_Double& theSize)
 {
-  fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
-  fillAttribute(theSize, mytoSize);
-  fillAttribute(ModelHighAPI_Double(), myfromSize);
-
-  execIfBaseNotEmpty();
+  setSizes(theSize, ModelHighAPI_Double());
 }
 
 //==================================================================================================
@@ -184,9 +193,7 @@ FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(
 {
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
-    fillAttribute(theSize, mytoSize);
-    fillAttribute(ModelHighAPI_Double(), myfromSize);
+    setSize(theSize);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -203,9 +210,7 @@ FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
     fillAttribute(theDirection, mydirection);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
-    fillAttribute(theSize, mytoSize);
-    fillAttribute(ModelHighAPI_Double(), myfromSize);
+    setSize(theSize);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -221,9 +226,7 @@ FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(
 {
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
-    fillAttribute(theToSize, mytoSize);
-    fillAttribute(theFromSize, myfromSize);
+    setSizes(theToSize, theFromSize);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -241,9 +244,7 @@ FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
     fillAttribute(theDirection, mydirection);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
-    fillAttribute(theToSize, mytoSize);
-    fillAttribute(theFromSize, myfromSize);
+    setSizes(theToSize, theFromSize);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -261,11 +262,7 @@ FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(
 {
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_PLANES(), mycreationMethod);
-    fillAttribute(theToObject, mytoObject);
-    fillAttribute(theToOffset, mytoOffset);
-    fillAttribute(theFromObject, myfromObject);
-    fillAttribute(theFromOffset, myfromOffset);
+    setPlanesAndOffsets(theToObject, theToOffset, theFromObject, theFromOffset);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -285,11 +282,7 @@ FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
     fillAttribute(theDirection, mydirection);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_PLANES(), mycreationMethod);
-    fillAttribute(theToObject, mytoObject);
-    fillAttribute(theToOffset, mytoOffset);
-    fillAttribute(theFromObject, myfromObject);
-    fillAttribute(theFromOffset, myfromOffset);
+    setPlanesAndOffsets(theToObject, theToOffset, theFromObject, theFromOffset);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -411,9 +404,7 @@ FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(
 {
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
-    fillAttribute(theSize, mytoSize);
-    fillAttribute(ModelHighAPI_Double(), myfromSize);
+    setSize(theSize);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -430,9 +421,7 @@ FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
     fillAttribute(theDirection, mydirection);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
-    fillAttribute(theSize, mytoSize);
-    fillAttribute(ModelHighAPI_Double(), myfromSize);
+    setSize(theSize);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -448,9 +437,7 @@ FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(
 {
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
-    fillAttribute(theToSize, mytoSize);
-    fillAttribute(theFromSize, myfromSize);
+    setSizes(theToSize, theFromSize);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -468,9 +455,7 @@ FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
     fillAttribute(theDirection, mydirection);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
-    fillAttribute(theToSize, mytoSize);
-    fillAttribute(theFromSize, myfromSize);
+    setSizes(theToSize, theFromSize);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -488,11 +473,7 @@ FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(
 {
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_PLANES(), mycreationMethod);
-    fillAttribute(theToObject, mytoObject);
-    fillAttribute(theToOffset, mytoOffset);
-    fillAttribute(theFromObject, myfromObject);
-    fillAttribute(theFromOffset, myfromOffset);
+    setPlanesAndOffsets(theToObject, theToOffset, theFromObject, theFromOffset);
     setBooleanObjects(theBooleanObjects);
   }
 }
@@ -512,11 +493,7 @@ FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(
   if(initialize()) {
     fillAttribute(theBaseObjects, mybaseObjects);
     fillAttribute(theDirection, mydirection);
-    fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_PLANES(), mycreationMethod);
-    fillAttribute(theToObject, mytoObject);
-    fillAttribute(theToOffset, mytoOffset);
-    fillAttribute(theFromObject, myfromObject);
-    fillAttribute(theFromOffset, myfromOffset);
+    setPlanesAndOffsets(theToObject, theToOffset, theFromObject, theFromOffset);
     setBooleanObjects(theBooleanObjects);
   }
 }