X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_Import_1D.cxx;h=f27e74dca17ce9b863ff66d61e493962ad0b918f;hp=7beb1e77c03137011c1829b2e3129ee5e8d7b034;hb=HEAD;hpb=db83efeef8e138c5871f1a3ca8d5d4a64653b663 diff --git a/src/StdMeshers/StdMeshers_Import_1D.cxx b/src/StdMeshers/StdMeshers_Import_1D.cxx index 7beb1e77c..f27e74dca 100644 --- a/src/StdMeshers/StdMeshers_Import_1D.cxx +++ b/src/StdMeshers/StdMeshers_Import_1D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2021 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::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