X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMImpl%2FGEOMImpl_HealingDriver.cxx;h=b196c1928d79377b7363774e4ebad64bcc9c4263;hb=e067674b75266d9f67a2c474d8dc901d9f65fe48;hp=c75a775b2058491ba65357b2941e7aabfc6e3a82;hpb=47e260a9746423b69d6f29e941c845d851da64c7;p=modules%2Fgeom.git diff --git a/src/GEOMImpl/GEOMImpl_HealingDriver.cxx b/src/GEOMImpl/GEOMImpl_HealingDriver.cxx index c75a775b2..b196c1928 100644 --- a/src/GEOMImpl/GEOMImpl_HealingDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_HealingDriver.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -44,6 +44,7 @@ #include #include +#include #include #include @@ -63,16 +64,16 @@ //======================================================================= //function : raiseNotDoneExeption -//purpose : global function: forms error message and raises exeption +//purpose : global function: forms error message and raises exception //======================================================================= void raiseNotDoneExeption( const int theErrorStatus ) { switch ( theErrorStatus ) { - case ShHealOper_NotError: StdFail_NotDone::Raise( "ShHealOper_NotError_msg" ); - case ShHealOper_InvalidParameters: StdFail_NotDone::Raise( "ShHealOper_InvalidParameters_msg" ); + case ShHealOper_NotError: StdFail_NotDone::Raise( "ShHealOper_NotError_msg" ); break; + case ShHealOper_InvalidParameters: StdFail_NotDone::Raise( "ShHealOper_InvalidParameters_msg" ); break; case ShHealOper_ErrorExecution: - default: StdFail_NotDone::Raise( "ShHealOper_ErrorExecution_msg" ); + default: StdFail_NotDone::Raise( "ShHealOper_ErrorExecution_msg" ); break; } } @@ -610,7 +611,7 @@ Standard_Boolean GEOMImpl_HealingDriver::AddPointOnEdge (GEOMImpl_IHealing* the //function : ChangeOrientation //purpose : //======================================================================= -Standard_Boolean GEOMImpl_HealingDriver::ChangeOrientation (GEOMImpl_IHealing* theHI, +Standard_Boolean GEOMImpl_HealingDriver::ChangeOrientation (GEOMImpl_IHealing* /*theHI*/, const TopoDS_Shape& theOriginalShape, TopoDS_Shape& theOutShape) const { @@ -645,8 +646,14 @@ void GEOMImpl_HealingDriver::LimitTolerance (GEOMImpl_IHealing* theHI, // 1. Make a copy to prevent the original shape changes. TopoDS_Shape aShapeCopy; { - TColStd_IndexedDataMapOfTransientTransient aMapTShapes; - TNaming_CopyShape::CopyTool(theOriginalShape, aMapTShapes, aShapeCopy); + BRepBuilderAPI_Copy aMC (theOriginalShape); + if (aMC.IsDone()) { + aShapeCopy = aMC.Shape(); + } + else { + TColStd_IndexedDataMapOfTransientTransient aMapTShapes; + TNaming_CopyShape::CopyTool(theOriginalShape, aMapTShapes, aShapeCopy); + } } // 2. Limit tolerance. @@ -1157,4 +1164,4 @@ void GEOMImpl_HealingDriver::SaveStatistics( const ShHealOper_Tool& healer, bool *stats = healer.GetStatistics(); } -IMPLEMENT_STANDARD_RTTIEXT (GEOMImpl_HealingDriver,GEOM_BaseDriver); +IMPLEMENT_STANDARD_RTTIEXT (GEOMImpl_HealingDriver,GEOM_BaseDriver)