mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-12-24 16:30:35 +05:00
PAL6487
This commit is contained in:
parent
74989f5a3e
commit
d4ecb90145
@ -29,6 +29,13 @@
|
|||||||
#include <TopAbs_ShapeEnum.hxx>
|
#include <TopAbs_ShapeEnum.hxx>
|
||||||
#include <TopTools_DataMapOfShapeShape.hxx>
|
#include <TopTools_DataMapOfShapeShape.hxx>
|
||||||
#include <ShapeProcess_ShapeContext.hxx>
|
#include <ShapeProcess_ShapeContext.hxx>
|
||||||
|
#include <ShapeAnalysis_ShapeTolerance.hxx>
|
||||||
|
#include <Precision.hxx>
|
||||||
|
#include <BRep_Builder.hxx>
|
||||||
|
#include <TopoDS_Iterator.hxx>
|
||||||
|
#include <TColStd_IndexedDataMapOfTransientTransient.hxx>
|
||||||
|
#include <TNaming_CopyShape.hxx>
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : ShHealOper_ShapeProcess()
|
//function : ShHealOper_ShapeProcess()
|
||||||
//purpose : Constructor
|
//purpose : Constructor
|
||||||
@ -73,11 +80,23 @@ void ShHealOper_ShapeProcess::Perform(const TopoDS_Shape& theOldShape,
|
|||||||
//ShapeProcessAPI_ApplySequence aOperations(myResource,myPrefix.ToCString());
|
//ShapeProcessAPI_ApplySequence aOperations(myResource,myPrefix.ToCString());
|
||||||
//myDone = Standard_False;
|
//myDone = Standard_False;
|
||||||
myOperations.ClearMap();
|
myOperations.ClearMap();
|
||||||
|
ShapeAnalysis_ShapeTolerance aSatol;
|
||||||
theNewShape = myOperations.PrepareShape(theOldShape,mySaveHistoryMode,myLevel);
|
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)
|
if(mySaveHistoryMode)
|
||||||
myMapModifications = myOperations.Map();
|
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
|
//function : SetOperators
|
||||||
|
Loading…
Reference in New Issue
Block a user