From: enk Date: Tue, 2 Aug 2005 11:13:18 +0000 (+0000) Subject: Added support for quality control (on polygons) - Aspect Ratio. X-Git-Tag: T_3_0_2a1~37 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=commitdiff_plain;h=05fdecbb6aa137c234b18681c72f25ff9fd997c7;hp=3de74ed8ab42c7b0d4e5aed30e6abc61ff5afafd Added support for quality control (on polygons) - Aspect Ratio. --- diff --git a/src/Controls/SMESH_Controls.cxx b/src/Controls/SMESH_Controls.cxx index 3dd59cf5d..7699902c1 100644 --- a/src/Controls/SMESH_Controls.cxx +++ b/src/Controls/SMESH_Controls.cxx @@ -247,7 +247,7 @@ double AspectRatio::GetValue( const TSequenceOfXYZ& P ) { int nbNodes = P.size(); - if ( nbNodes != 3 && nbNodes != 4 ) + if ( nbNodes < 3 ) return 0; // Compute lengths of the sides @@ -271,10 +271,15 @@ double AspectRatio::GetValue( const TSequenceOfXYZ& P ) } else { - double aMinLen = Min( Min( aLen[ 0 ], aLen[ 1 ] ), Min( aLen[ 2 ], aLen[ 3 ] ) ); + double aMinLen = aLen[ 0 ]; + double aMaxLen = aLen[ 0 ]; + + for(int i = 1; i < nbNodes ; i++ ){ + aMinLen = Min( aMinLen, aLen[ i ] ); + aMaxLen = Max( aMaxLen, aLen[ i ] ); + } if ( aMinLen <= Precision::Confusion() ) return 0.; - double aMaxLen = Max( Max( aLen[ 0 ], aLen[ 1 ] ), Max( aLen[ 2 ], aLen[ 3 ] ) ); return aMaxLen / aMinLen; }