From 05fdecbb6aa137c234b18681c72f25ff9fd997c7 Mon Sep 17 00:00:00 2001 From: enk Date: Tue, 2 Aug 2005 11:13:18 +0000 Subject: [PATCH] Added support for quality control (on polygons) - Aspect Ratio. --- src/Controls/SMESH_Controls.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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; } -- 2.30.2