From f0cefe4519fb278809c587699f7777ed77a7d142 Mon Sep 17 00:00:00 2001 From: eap Date: Mon, 14 Nov 2005 09:22:24 +0000 Subject: [PATCH] PAL10500. Take into account degenerated edges --- src/StdMeshers/StdMeshers_AutomaticLength.cxx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) 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; } -- 2.30.2