Salome HOME
0021381: EDF 1984 BLSURFPLUGIN: Sub-mesh with BLSURF
authoreap <eap@opencascade.com>
Mon, 2 Jul 2012 13:25:53 +0000 (13:25 +0000)
committereap <eap@opencascade.com>
Mon, 2 Jul 2012 13:25:53 +0000 (13:25 +0000)
Enable IsQuadraticSubMesh() work with compounds

src/SMESH/SMESH_MesherHelper.cxx

index 7bf4b4d7637b683beac419e54ebfcfb9559982ca..8a1682b8e008012abe4b0d1f8918605cd08d0023 100644 (file)
@@ -120,8 +120,15 @@ bool SMESH_MesherHelper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
   mySeamShapeIds.clear();
   myDegenShapeIds.clear();
   TopAbs_ShapeEnum subType( aSh.ShapeType()==TopAbs_FACE ? TopAbs_EDGE : TopAbs_FACE );
+  if ( aSh.ShapeType()==TopAbs_COMPOUND )
+  {
+    TopoDS_Iterator subIt( aSh );
+    if ( subIt.More() )
+      subType = ( subIt.Value().ShapeType()==TopAbs_FACE ) ? TopAbs_EDGE : TopAbs_FACE;
+  }
   SMDSAbs_ElementType elemType( subType==TopAbs_FACE ? SMDSAbs_Face : SMDSAbs_Edge );
 
+
   int nbOldLinks = myTLinkNodeMap.size();
 
   if ( !myMesh->HasShapeToMesh() )