X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_AutomaticLength.cxx;h=01e8398abdf8d0640834d55b255dafe69d31ad74;hb=deb5f024f2af09293ce204616d618aeda01c965a;hp=36ae6bec58e3668e2b5fd495ecae92302421b149;hpb=1f81f404ba35217a7a514c2b1be1087f9c1fd6fd;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_AutomaticLength.cxx b/src/StdMeshers/StdMeshers_AutomaticLength.cxx index 36ae6bec5..01e8398ab 100644 --- a/src/StdMeshers/StdMeshers_AutomaticLength.cxx +++ b/src/StdMeshers/StdMeshers_AutomaticLength.cxx @@ -101,14 +101,16 @@ static void computeLengths( const SMESH_Mesh* theMesh, for ( int i = 1; i <= edgeMap.Extent(); ++i ) { TopoDS_Edge edge = TopoDS::Edge( edgeMap(i) ); + //if ( BRep_Tool::Degenerated( edge )) continue; + Standard_Real L = SMESH_Algo::EdgeLength( edge ); - if ( L > Lmax ) - Lmax = L; - if ( L < Lmin ) - Lmin = L; + if ( L < DBL_MIN ) continue; + + if ( L > Lmax ) Lmax = L; + if ( L < Lmin ) Lmin = L; + // remember i-th edge length - theTShapeToLengthMap.insert( theTShapeToLengthMap.end(), - make_pair( getTShape( edge ), L )); + theTShapeToLengthMap.insert( make_pair( getTShape( edge ), L )); } // Compute S0 @@ -175,7 +177,10 @@ double StdMeshers_AutomaticLength::GetLength(const SMESH_Mesh* theMesh, map::iterator tshape_length = _TShapeToLength.find( getTShape( anEdge )); - ASSERT( tshape_length != _TShapeToLength.end() ); + + if ( tshape_length == _TShapeToLength.end() ) + return 1; // it is a dgenerated edge + return tshape_length->second; }