X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FShHealOper%2FShHealOper_ShapeProcess.cxx;h=8c8b1a324e53c412621818640e5ab001f461acbb;hb=refs%2Ftags%2FV5_1_0rc2;hp=56503fbb4ef8ccb122fa83e607c20e127fe4a703;hpb=d3dd282390888d7dc091ba2c2ffe7923bd7458e6;p=modules%2Fgeom.git diff --git a/src/ShHealOper/ShHealOper_ShapeProcess.cxx b/src/ShHealOper/ShHealOper_ShapeProcess.cxx index 56503fbb4..8c8b1a324 100644 --- a/src/ShHealOper/ShHealOper_ShapeProcess.cxx +++ b/src/ShHealOper/ShHealOper_ShapeProcess.cxx @@ -1,15 +1,13 @@ -// File: ShHealOper_ShapeProcess.cxx -// Created: 14.04.04 10:58:04 -// Author: Galina KULIKOVA -// < MODULE = KERNEL> : -// Copyright (C) 2003 CEA +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // 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. // - // 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 @@ -19,7 +17,12 @@ // 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 +// +// File: ShHealOper_ShapeProcess.cxx +// Created: 14.04.04 10:58:04 +// Author: Galina KULIKOVA +// #include #include #include @@ -29,6 +32,13 @@ #include #include #include +#include +#include +#include +#include +#include +#include + //======================================================================= //function : ShHealOper_ShapeProcess() //purpose : Constructor @@ -73,11 +83,23 @@ void ShHealOper_ShapeProcess::Perform(const TopoDS_Shape& theOldShape, //ShapeProcessAPI_ApplySequence aOperations(myResource,myPrefix.ToCString()); //myDone = Standard_False; myOperations.ClearMap(); - - theNewShape = myOperations.PrepareShape(theOldShape,mySaveHistoryMode,myLevel); + ShapeAnalysis_ShapeTolerance aSatol; + Standard_Real ainitTol = aSatol.Tolerance(theOldShape,0); + + // PAL6487: san -- preserve the original shape from being modified + TopoDS_Shape anOldShape; + TColStd_IndexedDataMapOfTransientTransient aMap; + TNaming_CopyShape::CopyTool(theOldShape, aMap, anOldShape); + // PAL6487: san -- preserve the original shape from being modified + + theNewShape = myOperations.PrepareShape(anOldShape,mySaveHistoryMode,myLevel); if(mySaveHistoryMode) myMapModifications = myOperations.Map(); - myDone = !theOldShape.IsSame(theNewShape); + myDone = !anOldShape.IsSame(theNewShape); + if(!myDone) { + Standard_Real aendTol =aSatol.Tolerance(theNewShape,0); + myDone = (fabs(ainitTol - aendTol) > Precision::Confusion()); + } } //======================================================================= //function : SetOperators