Salome HOME
Porting to OCCT 7.8.0
[modules/smesh.git] / src / StdMeshers / StdMeshers_Import_1D.cxx
index 726bd23e57ba949f069cf044e2948b3dae831ae6..f27e74dca17ce9b863ff66d61e493962ad0b918f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2020  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
@@ -948,20 +948,20 @@ bool StdMeshers_Import_1D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape & th
   const double        edgeTol = helper.MaxTolerance( geomEdge );
   const int           shapeID = tgtMesh->ShapeToIndex( geomEdge );
 
-
   double geomTol = Precision::Confusion();
+  double minGeomTol = std::numeric_limits<double>::max();
+
   for ( size_t iG = 0; iG < srcGroups.size(); ++iG )
   {
     const SMESHDS_GroupBase* srcGroup = srcGroups[iG]->GetGroupDS();
     for ( SMDS_ElemIteratorPtr srcElems = srcGroup->GetElements(); srcElems->more(); )
     {
       const SMDS_MeshElement* edge = srcElems->next();
-      geomTol = Sqrt( 0.5 * ( getMinEdgeLength2( edge->GetNode(0) ) +
-                              getMinEdgeLength2( edge->GetNode(1) ))) / 25;
-      iG = srcGroups.size();
-      break;
+      minGeomTol = std::min( Sqrt( getMinEdgeLength2( edge->GetNode(0) )) / 25, minGeomTol );
+      geomTol = minGeomTol;
     }
   }
+
   CurveProjector curveProjector( geomEdge, geomTol );
 
   // get nodes on vertices
@@ -1311,7 +1311,7 @@ bool StdMeshers_Import_1D::Evaluate(SMESH_Mesh &         theMesh,
   if ( srcGroups.empty() )
     return error("Invalid source groups");
 
-  vector<int> aVec(SMDSEntity_Last,0);
+  vector<smIdType> aVec(SMDSEntity_Last,0);
 
   bool toCopyMesh, toCopyGroups;
   _sourceHyp->GetCopySourceMesh(toCopyMesh, toCopyGroups);