]> SALOME platform Git repositories - modules/smesh.git/blobdiff - src/SMESH_I/SMESH_MEDMesh_i.cxx
Salome HOME
Merge from PortingMED3 07Apr11
[modules/smesh.git] / src / SMESH_I / SMESH_MEDMesh_i.cxx
index f73bf1102c35ef9004f1da5ea9813f1c315261b6..ac16b41861673838c048cf0bd7631edde63e5e4d 100644 (file)
@@ -1,4 +1,4 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -19,6 +19,7 @@
 //
 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 //  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
 //  File   : SMESH_MEDMesh_i.cxx
 //  Module : SMESH
@@ -247,13 +248,13 @@ char *SMESH_MEDMesh_i::getCoordinatesSystem() throw(SALOME::SALOME_Exception)
  * CORBA: Accessor for Coordinates
  */
 //=============================================================================
-SALOME_MED::double_array * SMESH_MEDMesh_i::getCoordinates
+SALOME_TYPES::ListOfDouble * SMESH_MEDMesh_i::getCoordinates
 (SALOME_MED::medModeSwitch typeSwitch) throw(SALOME::SALOME_Exception)
 {
   if (_mesh_i == 0)
     THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
                                  SALOME::INTERNAL_ERROR);
-  SALOME_MED::double_array_var myseq = new SALOME_MED::double_array;
+  SALOME_TYPES::ListOfDouble_var myseq = new SALOME_TYPES::ListOfDouble;
   try
   {
     // PN  : En dur
@@ -304,13 +305,13 @@ SALOME_MED::double_array * SMESH_MEDMesh_i::getCoordinates
  * CORBA: Accessor for Coordinates Names
  */
 //=============================================================================
-SALOME_MED::string_array *
+SALOME_TYPES::ListOfString *
 SMESH_MEDMesh_i::getCoordinatesNames()throw(SALOME::SALOME_Exception)
 {
   if (_mesh_i == 0)
     THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
                                  SALOME::INTERNAL_ERROR);
-  SALOME_MED::string_array_var myseq = new SALOME_MED::string_array;
+  SALOME_TYPES::ListOfString_var myseq = new SALOME_TYPES::ListOfString;
   try
   {
     // PN : en dur
@@ -335,13 +336,13 @@ SMESH_MEDMesh_i::getCoordinatesNames()throw(SALOME::SALOME_Exception)
  * CORBA: Accessor for Coordinates Units
  */
 //=============================================================================
-SALOME_MED::string_array *
+SALOME_TYPES::ListOfString *
 SMESH_MEDMesh_i::getCoordinatesUnits()throw(SALOME::SALOME_Exception)
 {
   if (_mesh_i == 0)
     THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
                                  SALOME::INTERNAL_ERROR);
-  SALOME_MED::string_array_var myseq = new SALOME_MED::string_array;
+  SALOME_TYPES::ListOfString_var myseq = new SALOME_TYPES::ListOfString;
   try
   {
     // PN : en dur
@@ -464,7 +465,7 @@ SMESH_MEDMesh_i::getTypes(SALOME_MED::medEntityMesh entity) throw(SALOME::
 //=============================================================================
 /*!
  * CORBA: Returns number of elements of type medGeometryElement
- *        Not implemented for MED_ALL_ELEMENTS 
+ *        Not implemented for MEDMEM_ALL_ELEMENTS 
  *        implemented for MED_ALL_ENTITIES
  *
  * Dans cette implementation, il n est pas prevu de tenir compte du entity
@@ -478,8 +479,8 @@ CORBA::Long SMESH_MEDMesh_i::getNumberOfElements(SALOME_MED::
   if (_mesh_i == 0)
     THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
                                  SALOME::INTERNAL_ERROR);
-  if (geomElement == SALOME_MED::MED_ALL_ELEMENTS)
-    THROW_SALOME_CORBA_EXCEPTION("Not implemented for MED_ALL_ELEMENTS",
+  if (geomElement == SALOME_MED::MEDMEM_ALL_ELEMENTS)
+    THROW_SALOME_CORBA_EXCEPTION("Not implemented for MEDMEM_ALL_ELEMENTS",
                                  SALOME::BAD_PARAM);
   if (!_compte)
     calculeNbElts();
@@ -508,9 +509,8 @@ CORBA::Long SMESH_MEDMesh_i::getNumberOfElements(SALOME_MED::
  * CORBA: Accessor for connectivities
  */
 //=============================================================================
-SALOME_MED::long_array *
-SMESH_MEDMesh_i::getConnectivity(SALOME_MED::medModeSwitch typeSwitch,
-                                 SALOME_MED::medConnectivity mode,
+SALOME_TYPES::ListOfLong *
+SMESH_MEDMesh_i::getConnectivity(SALOME_MED::medConnectivity mode,
                                  SALOME_MED::medEntityMesh entity,
                                  SALOME_MED::medGeometryElement geomElement)
   throw(SALOME::SALOME_Exception)
@@ -520,8 +520,8 @@ SMESH_MEDMesh_i::getConnectivity(SALOME_MED::medModeSwitch typeSwitch,
                                  SALOME::INTERNAL_ERROR);
   if (mode != SALOME_MED::MED_NODAL)
     THROW_SALOME_CORBA_EXCEPTION("Not Implemented", SALOME::BAD_PARAM);
-  if (typeSwitch == SALOME_MED::MED_NO_INTERLACE)
-    THROW_SALOME_CORBA_EXCEPTION("Not Yet Implemented", SALOME::BAD_PARAM);
+  /*if (typeSwitch == SALOME_MED::MED_NO_INTERLACE)
+    THROW_SALOME_CORBA_EXCEPTION("Not Yet Implemented", SALOME::BAD_PARAM);*/
   if (!_compte)
     calculeNbElts();
 
@@ -540,7 +540,7 @@ SMESH_MEDMesh_i::getConnectivity(SALOME_MED::medModeSwitch typeSwitch,
  * CORBA: Accessor for connectivities
  */
 //=============================================================================
-SALOME_MED::long_array *
+SALOME_TYPES::ListOfLong *
 SMESH_MEDMesh_i::getConnectivityIndex(SALOME_MED::medConnectivity mode,
                                       SALOME_MED::medEntityMesh entity)
   throw(SALOME::SALOME_Exception)
@@ -559,7 +559,7 @@ CORBA::Long
 SMESH_MEDMesh_i::getElementNumber(SALOME_MED::medConnectivity mode,
                                   SALOME_MED::medEntityMesh entity,
                                   SALOME_MED::medGeometryElement type,
-                                  const SALOME_MED::long_array & connectivity)
+                                  const SALOME_TYPES::ListOfLong & connectivity)
   throw(SALOME::SALOME_Exception)
 {
   const char *LOC = "getElementNumber ";
@@ -574,7 +574,7 @@ SMESH_MEDMesh_i::getElementNumber(SALOME_MED::medConnectivity mode,
  * not implemented for MED_ALL_ENTITIES and MED_MAILLE
  */
 //=============================================================================
-SALOME_MED::long_array *
+SALOME_TYPES::ListOfLong *
 SMESH_MEDMesh_i::getReverseConnectivity(SALOME_MED::
                                         medConnectivity mode) throw(SALOME::SALOME_Exception)
 {
@@ -588,7 +588,7 @@ SMESH_MEDMesh_i::getReverseConnectivity(SALOME_MED::
  * CORBA: Accessor for connectivities
  */
 //=============================================================================
-SALOME_MED::long_array *
+SALOME_TYPES::ListOfLong *
 SMESH_MEDMesh_i::getReverseConnectivityIndex(SALOME_MED::
                                              medConnectivity mode) throw(SALOME::SALOME_Exception)
 {
@@ -707,7 +707,7 @@ SALOME_MED::GROUP_ptr SMESH_MEDMesh_i::getGroup(SALOME_MED::
  * CORBA: Returns references for the global numbering index
  */
 //=============================================================================
-SALOME_MED::long_array*
+SALOME_TYPES::ListOfLong*
 SMESH_MEDMesh_i::getGlobalNumberingIndex(SALOME_MED::medEntityMesh entity)
   throw (SALOME::SALOME_Exception)
 {
@@ -850,7 +850,7 @@ SALOME_MED::FIELD_ptr SMESH_MEDMesh_i::getNeighbourhood(SALOME_MED::
  */
 //=============================================================================
 void SMESH_MEDMesh_i::addInStudy(SALOMEDS::Study_ptr myStudy,
-                                 SALOME_MED::MESH_ptr myIor) throw(SALOME::SALOME_Exception)
+                                 SALOME_MED::GMESH_ptr myIor) throw(SALOME::SALOME_Exception)
 {
   BEGIN_OF("MED_Mesh_i::addInStudy");
   if (_meshId != "")
@@ -962,11 +962,11 @@ void SMESH_MEDMesh_i::calculeNbElts() throw(SALOME::SALOME_Exception)
     _compte = true;
 
     _mapNbTypes[SALOME_MED::MED_NODE] = 1;
-    // On compte les aretes MED_SEG2 ou MED_SEG3
+    // On compte les aretes MEDMEM_SEG2 ou MEDMEM_SEG3
     // On range les elements dans  les vecteurs correspondants 
 
-    _mapIndToSeqElts[SALOME_MED::MED_SEG2] = _indexElts++;
-    _mapIndToSeqElts[SALOME_MED::MED_SEG3] = _indexElts++;
+    _mapIndToSeqElts[SALOME_MED::MEDMEM_SEG2] = _indexElts++;
+    _mapIndToSeqElts[SALOME_MED::MEDMEM_SEG3] = _indexElts++;
     _mapIndToVectTypes[SALOME_MED::MED_EDGE] = _indexEnts++;
 
     int trouveSeg2 = 0;
@@ -983,23 +983,23 @@ void SMESH_MEDMesh_i::calculeNbElts() throw(SALOME::SALOME_Exception)
       {
       case 2:
         {
-          medElement = SALOME_MED::MED_SEG2;
+          medElement = SALOME_MED::MEDMEM_SEG2;
           if (trouveSeg2 == 0)
           {
             trouveSeg2 = 1;
             _TypesId[SALOME_MED::MED_EDGE].
-              push_back(SALOME_MED::MED_SEG2);
+              push_back(SALOME_MED::MEDMEM_SEG2);
           }
           break;
         }
       case 3:
         {
-          medElement = SALOME_MED::MED_SEG3;
+          medElement = SALOME_MED::MEDMEM_SEG3;
           if (trouveSeg3 == 0)
           {
             trouveSeg3 = 1;
             _TypesId[SALOME_MED::MED_EDGE].
-              push_back(SALOME_MED::MED_SEG3);
+              push_back(SALOME_MED::MEDMEM_SEG3);
           }
           break;
         }
@@ -1019,15 +1019,15 @@ void SMESH_MEDMesh_i::calculeNbElts() throw(SALOME::SALOME_Exception)
 
     _mapNbTypes[SALOME_MED::MED_EDGE] = trouveSeg2 + trouveSeg3;
 
-    // On compte les faces MED_TRIA3, MED_HEXA8, MED_TRIA6
+    // On compte les faces MEDMEM_TRIA3, MEDMEM_HEXA8, MEDMEM_TRIA6
     // On range les elements dans  les vecteurs correspondants 
     int trouveTria3 = 0;
     int trouveTria6 = 0;
     int trouveQuad4 = 0;
 
-    _mapIndToSeqElts[SALOME_MED::MED_TRIA3] = _indexElts++;
-    _mapIndToSeqElts[SALOME_MED::MED_TRIA6] = _indexElts++;
-    _mapIndToSeqElts[SALOME_MED::MED_QUAD4] = _indexElts++;
+    _mapIndToSeqElts[SALOME_MED::MEDMEM_TRIA3] = _indexElts++;
+    _mapIndToSeqElts[SALOME_MED::MEDMEM_TRIA6] = _indexElts++;
+    _mapIndToSeqElts[SALOME_MED::MEDMEM_QUAD4] = _indexElts++;
     _mapIndToVectTypes[SALOME_MED::MED_FACE] = _indexEnts++;
 
     SMDS_FaceIteratorPtr itFaces=_meshDS->facesIterator();
@@ -1040,34 +1040,34 @@ void SMESH_MEDMesh_i::calculeNbElts() throw(SALOME::SALOME_Exception)
       {
       case 3:
         {
-          medElement = SALOME_MED::MED_TRIA3;
+          medElement = SALOME_MED::MEDMEM_TRIA3;
           if (trouveTria3 == 0)
           {
             trouveTria3 = 1;
             _TypesId[SALOME_MED::MED_FACE].
-              push_back(SALOME_MED::MED_TRIA3);
+              push_back(SALOME_MED::MEDMEM_TRIA3);
           }
           break;
         }
       case 4:
         {
-          medElement = SALOME_MED::MED_QUAD4;
+          medElement = SALOME_MED::MEDMEM_QUAD4;
           if (trouveQuad4 == 0)
           {
             trouveQuad4 = 1;
             _TypesId[SALOME_MED::MED_FACE].
-              push_back(SALOME_MED::MED_QUAD4);
+              push_back(SALOME_MED::MEDMEM_QUAD4);
           }
           break;
         }
       case 6:
         {
-          medElement = SALOME_MED::MED_TRIA6;
+          medElement = SALOME_MED::MEDMEM_TRIA6;
           if (trouveTria6 == 0)
           {
             trouveTria6 = 1;
             _TypesId[SALOME_MED::MED_FACE].
-              push_back(SALOME_MED::MED_TRIA6);
+              push_back(SALOME_MED::MEDMEM_TRIA6);
           }
           break;
         }
@@ -1090,7 +1090,7 @@ void SMESH_MEDMesh_i::calculeNbElts() throw(SALOME::SALOME_Exception)
     _mapNbTypes[SALOME_MED::MED_FACE] =
       trouveTria3 + trouveTria6 + trouveQuad4;
 
-    _mapIndToSeqElts[SALOME_MED::MED_HEXA8] = _indexElts++;
+    _mapIndToSeqElts[SALOME_MED::MEDMEM_HEXA8] = _indexElts++;
     _mapIndToVectTypes[SALOME_MED::MED_CELL] = _indexEnts++;
     int index = _mapIndToSeqElts[medElement];
 
@@ -1102,13 +1102,13 @@ void SMESH_MEDMesh_i::calculeNbElts() throw(SALOME::SALOME_Exception)
       const SMDS_MeshVolume * elem = itVolumes->next();
 
       int nb_of_nodes = elem->NbNodes();
-      medElement = SALOME_MED::MED_HEXA8;
+      medElement = SALOME_MED::MEDMEM_HEXA8;
       ASSERT(nb_of_nodes == 8);
 
       if (trouveHexa8 == 0)
       {
         trouveHexa8 = 1;
-        _TypesId[SALOME_MED::MED_CELL].push_back(SALOME_MED::MED_HEXA8);
+        _TypesId[SALOME_MED::MED_CELL].push_back(SALOME_MED::MEDMEM_HEXA8);
       };
       // Traitement de la maille
       int longueur = _seq_elemId[index]->length();
@@ -1177,7 +1177,7 @@ void SMESH_MEDMesh_i::createFamilies() throw(SALOME::SALOME_Exception)
  * Gives informations of the considered mesh.
  */
 //=============================================================================
-SALOME_MED::MESH::meshInfos * SMESH_MEDMesh_i::getMeshGlobal()
+SALOME_MED::GMESH::meshInfos * SMESH_MEDMesh_i::getMeshGlobal()
   throw (SALOME::SALOME_Exception)
 {
   MESSAGE("!!!! NOT YET IMPLEMENTED !!!!!");
@@ -1186,12 +1186,28 @@ SALOME_MED::MESH::meshInfos * SMESH_MEDMesh_i::getMeshGlobal()
 
   return NULL;
 }
+
+//================================================================================
+/*!
+ * \brief Converts this GMESH into MESH
+ */
+//================================================================================
+
+SALOME_MED::MESH_ptr SMESH_MEDMesh_i::convertInMESH() throw (SALOME::SALOME_Exception)
+{
+  MESSAGE("!!!! NOT YET IMPLEMENTED !!!!!");
+
+  THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
+
+  return NULL;
+}
+
 //=============================================================================
 /*!
  * Gives informations on coordinates of the considered mesh.
  */
 //=============================================================================
-SALOME_MED::MESH::coordinateInfos * SMESH_MEDMesh_i::getCoordGlobal()
+SALOME_MED::GMESH::coordinateInfos * SMESH_MEDMesh_i::getCoordGlobal()
   throw (SALOME::SALOME_Exception)
 {
   MESSAGE("!!!! NOT YET IMPLEMENTED !!!!!");