X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesAPI%2FFeaturesAPI_MultiTranslation.cpp;h=78f0aa2fddd2e7bbb19f262188e2a2f05f58ff54;hb=a0dd2d01c33873491ab947f44789d39006f605cf;hp=6754b0f48b185ebceb55f3007bd836f085ba9040;hpb=592a6685f7432a407593c781eda3e0712b418783;p=modules%2Fshaper.git diff --git a/src/FeaturesAPI/FeaturesAPI_MultiTranslation.cpp b/src/FeaturesAPI/FeaturesAPI_MultiTranslation.cpp index 6754b0f48..78f0aa2fd 100644 --- a/src/FeaturesAPI/FeaturesAPI_MultiTranslation.cpp +++ b/src/FeaturesAPI/FeaturesAPI_MultiTranslation.cpp @@ -1,8 +1,21 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> - -// File: FeaturesAPI_MultiTranslation.cpp -// Created: 09 Feb 2017 -// Author: Clarisse Genrault (CEA) +// Copyright (C) 2014-2022 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 @@ -52,9 +65,9 @@ FeaturesAPI_MultiTranslation::FeaturesAPI_MultiTranslation( fillAttribute(theFirstAxisObject, firstAxisObject()); fillAttribute(theFirstStep, firstStep()); fillAttribute(theFirstNumber, firstNumber()); + fillAttribute(FeaturesPlugin_MultiTranslation::USE_SECOND_DIR_ID(),useSecondDir()); fillAttribute(theSecondAxisObject, secondAxisObject()); fillAttribute(theSecondStep, secondStep()); - fillAttribute("true",useSecondDir()); setSecondNumber(theSecondNumber); } } @@ -120,7 +133,7 @@ void FeaturesAPI_MultiTranslation::dump(ModelHighAPI_Dumper& theDumper) const AttributeSelectionListPtr anAttrObjects = aBase->selectionList(FeaturesPlugin_MultiTranslation::OBJECTS_LIST_ID()); theDumper << aBase << " = model.addMultiTranslation(" << aDocName << ", " << anAttrObjects; - + AttributeSelectionPtr anAttrFirstAxis = aBase->selection(FeaturesPlugin_MultiTranslation::AXIS_FIRST_DIR_ID()); AttributeDoublePtr anAttrFirstStep = @@ -129,7 +142,7 @@ void FeaturesAPI_MultiTranslation::dump(ModelHighAPI_Dumper& theDumper) const aBase->integer(FeaturesPlugin_MultiTranslation::NB_COPIES_FIRST_DIR_ID()); theDumper << ", " << anAttrFirstAxis << ", " << anAttrFirstStep; theDumper << ", " << anAttrFirstNumber; - + if (aBase->string(FeaturesPlugin_MultiTranslation::USE_SECOND_DIR_ID())->isInitialized() && !aBase->string(FeaturesPlugin_MultiTranslation::USE_SECOND_DIR_ID())->value().empty()) { AttributeSelectionPtr anAttrSecondAxis = @@ -139,23 +152,13 @@ void FeaturesAPI_MultiTranslation::dump(ModelHighAPI_Dumper& theDumper) const AttributeIntegerPtr anAttrSecondNumber = aBase->integer(FeaturesPlugin_MultiTranslation::NB_COPIES_SECOND_DIR_ID()); theDumper << ", " << anAttrSecondAxis << ", " << anAttrSecondStep; - theDumper << ", " << anAttrSecondStep; + theDumper << ", " << anAttrSecondNumber; } - theDumper << ")" << std::endl; -} + if (!aBase->data()->version().empty()) + theDumper << ", keepSubResults = True"; -//================================================================================================== -MultiTranslationPtr addMultiTranslation(const std::shared_ptr& thePart, - const std::list& theMainObjects, - const ModelHighAPI_Selection& theAxisObject, - const ModelHighAPI_Double& theStep, - const ModelHighAPI_Integer& theNumber) -{ - std::shared_ptr aFeature = - thePart->addFeature(FeaturesAPI_MultiTranslation::ID()); - return MultiTranslationPtr(new FeaturesAPI_MultiTranslation(aFeature, theMainObjects, - theAxisObject, theStep, theNumber)); + theDumper << ")" << std::endl; } //================================================================================================== @@ -166,13 +169,22 @@ MultiTranslationPtr addMultiTranslation(const std::shared_ptr const ModelHighAPI_Integer& theFirstNumber, const ModelHighAPI_Selection& theSecondAxisObject, const ModelHighAPI_Double& theSecondStep, - const ModelHighAPI_Integer& theSecondNumber) + const ModelHighAPI_Integer& theSecondNumber, + const bool keepSubResults) { std::shared_ptr aFeature = thePart->addFeature(FeaturesAPI_MultiTranslation::ID()); - return MultiTranslationPtr(new FeaturesAPI_MultiTranslation(aFeature, theMainObjects, - theFirstAxisObject, theFirstStep, - theFirstNumber, - theSecondAxisObject, theSecondStep, - theSecondNumber)); + if (!keepSubResults) + aFeature->data()->setVersion(""); + MultiTranslationPtr aMT; + if (theSecondAxisObject.variantType() == ModelHighAPI_Selection::VT_Empty) { + aMT.reset(new FeaturesAPI_MultiTranslation(aFeature, theMainObjects, + theFirstAxisObject, theFirstStep, theFirstNumber)); + } + else { + aMT.reset(new FeaturesAPI_MultiTranslation(aFeature, theMainObjects, + theFirstAxisObject, theFirstStep, theFirstNumber, + theSecondAxisObject, theSecondStep, theSecondNumber)); + } + return aMT; }