Salome HOME
Fix of issue 0020379: EDF SMESH 1047: Impossible to select pentahedrons when creating...
authorouv <ouv@opencascade.com>
Tue, 9 Jun 2009 08:27:02 +0000 (08:27 +0000)
committerouv <ouv@opencascade.com>
Tue, 9 Jun 2009 08:27:02 +0000 (08:27 +0000)
src/Controls/SMESH_Controls.cxx
src/SMDS/SMDSAbs_ElementType.hxx

index e6946a84aa003b27ed9ebea83326e7f271102131..2ae7f399b65674a741bcf9a0df7de9c90c059d71 100644 (file)
@@ -1955,22 +1955,22 @@ bool ElemGeomType::IsSatisfy( long theId )
 
   case SMDSAbs_Face:
     if ( myGeomType == SMDSGeom_TRIANGLE )
-      isOk = (!anElem->IsPoly() && aNbNode == 3);
+      isOk = (!anElem->IsPoly() && (anElem->IsQuadratic() ? aNbNode == 6 : aNbNode == 3));
     else if ( myGeomType == SMDSGeom_QUADRANGLE )
-      isOk = (!anElem->IsPoly() && aNbNode == 4);
+      isOk = (!anElem->IsPoly() && (anElem->IsQuadratic() ? aNbNode == 8 : aNbNode == 4));
     else if ( myGeomType == SMDSGeom_POLYGON )
       isOk = anElem->IsPoly();
     break;
 
   case SMDSAbs_Volume:
     if ( myGeomType == SMDSGeom_TETRA )
-      isOk = (!anElem->IsPoly() && aNbNode == 4);
+      isOk = (!anElem->IsPoly() && (anElem->IsQuadratic() ? aNbNode == 10 : aNbNode == 4));
     else if ( myGeomType == SMDSGeom_PYRAMID )
-      isOk = (!anElem->IsPoly() && aNbNode == 5);
+      isOk = (!anElem->IsPoly() && (anElem->IsQuadratic() ? aNbNode == 13 : aNbNode == 5));
     else if ( myGeomType == SMDSGeom_PENTA )
-      isOk = (!anElem->IsPoly() && aNbNode == 6);
+      isOk = (!anElem->IsPoly() && (anElem->IsQuadratic() ? aNbNode == 15 : aNbNode == 6));
     else if ( myGeomType == SMDSGeom_HEXA )
-      isOk = (!anElem->IsPoly() && aNbNode == 8);
+      isOk = (!anElem->IsPoly() && (anElem->IsQuadratic() ? aNbNode == 20 : aNbNode == 8));
      else if ( myGeomType == SMDSGeom_POLYHEDRA )
       isOk = anElem->IsPoly();
     break;
index a76772e3f05b483433ba6b233be2013dd2a0fd89..2a5d8e3ba51dcfd90e1aefba355ad7f6ed330b07 100644 (file)
@@ -53,8 +53,8 @@ enum SMDSAbs_GeometryType
   // 3D element
   SMDSGeom_TETRA,
   SMDSGeom_PYRAMID,
-  SMDSGeom_PENTA,
   SMDSGeom_HEXA,
+  SMDSGeom_PENTA,
   SMDSGeom_POLYHEDRA,
 };