+namespace
+{
+ double getMinElemSize2( const SMESHDS_GroupBase* srcGroup )
+ {
+ double minSize2 = 1e100;
+ SMDS_ElemIteratorPtr srcElems = srcGroup->GetElements();
+ while ( srcElems->more() ) // loop on group contents
+ {
+ const SMDS_MeshElement* face = srcElems->next();
+ int nbN = face->NbCornerNodes();
+
+ SMESH_TNodeXYZ prevN( face->GetNode( nbN-1 ));
+ for ( int i = 0; i < nbN; ++i )
+ {
+ SMESH_TNodeXYZ n( face->GetNode( i ) );
+ double size2 = ( n - prevN ).SquareModulus();
+ minSize2 = std::min( minSize2, size2 );
+ prevN = n;
+ }
+ }
+ return minSize2;
+ }
+}
+