X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FFeaturesPlugin%2FFeaturesPlugin_Revolution.cpp;h=9994cd900268067bdf4f7ed728600b7306da9945;hb=95375993f1f35e4716475c0b0c8e265c082c875d;hp=4ac87606e659d9c0769bd44e7c421f3ddab6f00e;hpb=6bd91d6692dfbfa6462e4b6463ff113ad51b3782;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_Revolution.cpp b/src/FeaturesPlugin/FeaturesPlugin_Revolution.cpp index 4ac87606e..9994cd900 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Revolution.cpp +++ b/src/FeaturesPlugin/FeaturesPlugin_Revolution.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// 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 @@ -12,10 +12,9 @@ // // 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 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "FeaturesPlugin_Revolution.h" @@ -27,6 +26,7 @@ #include #include +#include #include #include @@ -158,7 +158,7 @@ bool FeaturesPlugin_Revolution::makeRevolutions(ListOfShape& theBaseShapes, if(!aToShape.get() && aSelection->context().get()) { aToShape = aSelection->context()->shape(); } - if (aToShape->isCompound()) { + if (aToShape.get() && aToShape->isCompound()) { GeomAPI_ShapeIterator anIt(aToShape); aToShape = anIt.current(); } @@ -169,7 +169,7 @@ bool FeaturesPlugin_Revolution::makeRevolutions(ListOfShape& theBaseShapes, if(!aFromShape.get() && aSelection->context().get()) { aFromShape = aSelection->context()->shape(); } - if (aFromShape->isCompound()) { + if (aFromShape.get() && aFromShape->isCompound()) { GeomAPI_ShapeIterator anIt(aFromShape); aFromShape = anIt.current(); } @@ -177,6 +177,7 @@ bool FeaturesPlugin_Revolution::makeRevolutions(ListOfShape& theBaseShapes, } // Generating result for each base shape. + std::string anError; for(ListOfShape::const_iterator anIter = theBaseShapes.cbegin(); anIter != theBaseShapes.cend(); anIter++) { GeomShapePtr aBaseShape = *anIter; @@ -185,7 +186,8 @@ bool FeaturesPlugin_Revolution::makeRevolutions(ListOfShape& theBaseShapes, aBaseShape, anAxis, aToShape, aToAngle, aFromShape, aFromAngle)); - if(!isMakeShapeValid(aRevolAlgo)) { + if (GeomAlgoAPI_Tools::AlgoError::isAlgorithmFailed(aRevolAlgo, getKind(), anError)) { + setError(anError); return false; }