Salome HOME
Updated copyright comment
[modules/geom.git] / src / GEOMImpl / GEOMImpl_HealingDriver.cxx
index 5014ef7e8a0462a45365326a22af26b0d5f66ee7..b196c1928d79377b7363774e4ebad64bcc9c4263 100644 (file)
@@ -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 <BRep_Builder.hxx>
 #include <BRepAdaptor_Curve.hxx>
+#include <BRepBuilderAPI_Copy.hxx>
 #include <BRepTools_WireExplorer.hxx>
 
 #include <TopExp.hxx>
@@ -69,10 +70,10 @@ 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)