From: eap Date: Mon, 14 Nov 2005 09:22:24 +0000 (+0000) Subject: PAL10500. Take into account degenerated edges X-Git-Tag: V3_1_0a3~8 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=commitdiff_plain;h=f0cefe4519fb278809c587699f7777ed77a7d142;hp=590a56bae013abd634dbc628f1cdb9c4e4334c4b PAL10500. Take into account degenerated edges --- 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; }