From: eap Date: Tue, 13 Dec 2005 06:52:11 +0000 (+0000) Subject: PAL10872. Evaluate quadrangle faces quality when computing 3D aspect ratio X-Git-Tag: T_3_1_0pre~5 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=d178008243762218ffcd04b3c1ddf6864c662f09;p=modules%2Fsmesh.git PAL10872. Evaluate quadrangle faces quality when computing 3D aspect ratio --- diff --git a/src/Controls/SMESH_Controls.cxx b/src/Controls/SMESH_Controls.cxx index 7e6603b61..717f8e66a 100644 --- a/src/Controls/SMESH_Controls.cxx +++ b/src/Controls/SMESH_Controls.cxx @@ -645,6 +645,21 @@ double AspectRatio3D::GetValue( const TSequenceOfXYZ& P ) break; } } + if ( nbNodes > 4 ) { + // avaluate aspect ratio of quadranle faces + AspectRatio aspect2D; + SMDS_VolumeTool::VolumeType type = SMDS_VolumeTool::GetType( nbNodes ); + int nbFaces = SMDS_VolumeTool::NbFaces( type ); + TSequenceOfXYZ points(4); + for ( int i = 0; i < nbFaces; ++i ) { // loop on faces of a volume + if ( SMDS_VolumeTool::NbFaceNodes( type, i ) != 4 ) + continue; + const int* pInd = SMDS_VolumeTool::GetFaceNodesIndices( type, i, true ); + for ( int p = 0; p < 4; ++p ) // loop on nodes of a quadranle face + points( p + 1 ) = P( pInd[ p ] + 1 ); + aQuality = max( aQuality, aspect2D.GetValue( points )); + } + } return aQuality; }