Salome HOME
0022100: EDF 2413 SMESH: Take into account TRIA7
[modules/smesh.git] / src / DriverMED / DriverMED_R_SMESHDS_Mesh.cxx
index a7527fb976d4ed4f8891434084fa647b56eaf704..cd6243d16065e9be9b8c600aa27cd1cd2b915030 100644 (file)
@@ -431,6 +431,7 @@ DriverMED_R_SMESHDS_Mesh
               case eSEG3:    aNbNodes = 3;  break;
               case eTRIA3:   aNbNodes = 3;  break;
               case eTRIA6:   aNbNodes = 6;  break;
+              case eTRIA7:   aNbNodes = 7;  break;
               case eQUAD4:   aNbNodes = 4;  break;
               case eQUAD8:   aNbNodes = 8;  break;
               case eQUAD9:   aNbNodes = 9;  break;
@@ -552,6 +553,24 @@ DriverMED_R_SMESHDS_Mesh
                       isRenum = anIsElemNum;
                     }
                     break;
+                  case eTRIA7:
+                    aNbNodes = 7;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddFaceWithID(aNodeIds[0], aNodeIds[1],
+                                                        aNodeIds[2], aNodeIds[3],
+                                                        aNodeIds[4], aNodeIds[5], aNodeIds[6],
+                                                        aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddFace(FindNode(myMesh,aNodeIds[0]),
+                                                  FindNode(myMesh,aNodeIds[1]),
+                                                  FindNode(myMesh,aNodeIds[2]),
+                                                  FindNode(myMesh,aNodeIds[3]),
+                                                  FindNode(myMesh,aNodeIds[4]),
+                                                  FindNode(myMesh,aNodeIds[5]),
+                                                  FindNode(myMesh,aNodeIds[6]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
                   case eQUAD4:
                     aNbNodes = 4;
                     if(anIsElemNum)