Salome HOME
Preparation of 3.1.0a2: version ID. compilation with new HEAD and new MED (with polyh...
[modules/smesh.git] / src / SMESH_I / SMESH_MEDMesh_i.hxx
index 4072134cdf3ebc691f3b94f18620232254ee128a..3b0fedec9c9c338bbe8ce1e85893e5061603d405 100644 (file)
@@ -1,8 +1,28 @@
-//=============================================================================
-// File      : SMESH_MEDMesh_i.hxx
-// Project   : SALOME
-// Copyright : EDF 2001
-//=============================================================================
+//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+//
+//  File   : SMESH_MEDMesh_i.hxx
+//  Module : SMESH
 
 #ifndef _MED_SMESH_MESH_I_HXX_
 #define _MED_SMESH_MESH_I_HXX_
 
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_MeshNode.hxx"
-#include "SMDS_MeshFacesIterator.hxx"
-#include "SMDS_MeshEdgesIterator.hxx"
-#include "SMDS_MeshNodesIterator.hxx"
-#include "SMDS_MeshVolumesIterator.hxx"
+#include "SALOME_GenericObj_i.hh"
 
 #define MED_NBR_GEOMETRIE_MAILLE 15
 #define MED_NBR_TYPE 5
 
-
 class SMESH_Mesh_i;
 
 class SMESH_MEDMesh_i:
-  public POA_SALOME_MED::MESH,
-  public PortableServer::RefCountServantBase
+       public virtual POA_SALOME_MED::MESH, public virtual SALOME::GenericObj_i
 {
-public :
-
-private :
-
-protected:
-  // C++ object containing values
-  ::SMESH_Mesh_i*       _mesh_i;
-  Handle (SMESHDS_Mesh) _meshDS;
-  
-  string                _meshId;
-  bool                 _compte;
-  bool                 _creeFamily;
-  int                  _indexElts; 
-  int                  _indexEnts; 
-  int                  _famIdent;
-
-  map <SALOME_MED::medGeometryElement,int> _mapIndToSeqElts;
-  Engines::long_array_var _seq_elemId[MED_NBR_GEOMETRIE_MAILLE];
-
-  map <SALOME_MED::medEntityMesh,int> _mapNbTypes;
-  map <SALOME_MED::medEntityMesh,int> _mapIndToVectTypes;
-  vector<SALOME_MED::medGeometryElement> _TypesId[MED_NBR_GEOMETRIE_MAILLE];
-
-  vector<SALOME_MED::FAMILY_ptr>   _families;
-public:
-
-  // Constructors and associated internal methods
-  SMESH_MEDMesh_i();
-  SMESH_MEDMesh_i(SMESH_Mesh_i* m);
-  ~SMESH_MEDMesh_i();
-
-  // IDL Methods 
-  char *       getName()               throw (SALOME::SALOME_Exception);
-  CORBA::Long   getSpaceDimension()    throw (SALOME::SALOME_Exception);
-  CORBA::Long   getMeshDimension()     throw (SALOME::SALOME_Exception);
-
-  char *                 getCoordinateSystem() 
-    throw (SALOME::SALOME_Exception);
-  Engines::double_array* getCoordinates(SALOME_MED::medModeSwitch typeSwitch)
-    throw (SALOME::SALOME_Exception);
-  Engines::string_array* getCoordinatesNames() 
-    throw (SALOME::SALOME_Exception);
-  Engines::string_array* getCoordinatesUnits()
-    throw (SALOME::SALOME_Exception); 
-  CORBA::Long            getNumberOfNodes() 
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long            getNumberOfTypes       (SALOME_MED::medEntityMesh entity) 
-    throw   (SALOME::SALOME_Exception);
-  SALOME_MED::medGeometryElement_array* getTypes(SALOME_MED::medEntityMesh entity)
-    throw   (SALOME::SALOME_Exception);
-
-  CORBA::Long     getNumberOfElements (SALOME_MED::medEntityMesh entity,
-                                       SALOME_MED::medGeometryElement geomElement) 
-    throw (SALOME::SALOME_Exception);
-  Engines::long_array*   getConnectivity     (SALOME_MED::medModeSwitch typeSwitch, 
-                                             SALOME_MED::medConnectivity mode, 
-                                             SALOME_MED::medEntityMesh entity, 
-                                             SALOME_MED::medGeometryElement geomElement)
-    throw (SALOME::SALOME_Exception);
-  Engines::long_array*   getConnectivityIndex(SALOME_MED::medConnectivity mode, 
-                                             SALOME_MED::medEntityMesh entity) 
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long getElementNumber(SALOME_MED::medConnectivity mode, 
-                              SALOME_MED::medEntityMesh entity, 
-                              SALOME_MED::medGeometryElement type, 
-                              const Engines::long_array & connectivity)
-    throw (SALOME::SALOME_Exception);
-
-  Engines::long_array*   getReverseConnectivity(SALOME_MED::medConnectivity mode)
-
-    throw  (SALOME::SALOME_Exception);
-  Engines::long_array*   getReverseConnectivityIndex(SALOME_MED::medConnectivity mode)
-    throw        (SALOME::SALOME_Exception);
-
-  // Family and Group
-  CORBA::Long        getNumberOfFamilies (SALOME_MED::medEntityMesh entity)
-    throw (SALOME::SALOME_Exception);
-  CORBA::Long        getNumberOfGroups   (SALOME_MED::medEntityMesh entity) 
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::Family_array* getFamilies  (SALOME_MED::medEntityMesh entity) 
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::FAMILY_ptr    getFamily    (SALOME_MED::medEntityMesh entity,
-                                         CORBA::Long i) 
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::Group_array*  getGroups    (SALOME_MED::medEntityMesh entity) 
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::GROUP_ptr     getGroup     (SALOME_MED::medEntityMesh entity, 
-                                         CORBA::Long i) 
-    throw (SALOME::SALOME_Exception);
-  // 
-  SALOME_MED::FIELD_ptr getVolume        (SALOME_MED::SUPPORT_ptr mySupport)
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::FIELD_ptr getArea          (SALOME_MED::SUPPORT_ptr mySupport)          
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::FIELD_ptr getLength        (SALOME_MED::SUPPORT_ptr mySupport)        
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::FIELD_ptr getNormal        (SALOME_MED::SUPPORT_ptr mySupport)        
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::FIELD_ptr getBarycenter    (SALOME_MED::SUPPORT_ptr mySupport)    
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::FIELD_ptr getNeighbourhood (SALOME_MED::SUPPORT_ptr mySupport) 
-    throw (SALOME::SALOME_Exception);
-
-
-  // Others
-  void        addInStudy (SALOMEDS::Study_ptr myStudy, 
-                         SALOME_MED::MESH_ptr myIor) 
-    throw (SALOME::SALOME_Exception);
-  CORBA::Long addDriver  (SALOME_MED::medDriverTypes driverType, 
-                         const char* fileName, const char* meshName)
-    throw (SALOME::SALOME_Exception);
-  void        rmDriver   (CORBA::Long i)       
-    throw (SALOME::SALOME_Exception);
-  void        read       (CORBA::Long i)
-    throw (SALOME::SALOME_Exception);
-  void        write      (CORBA::Long i, const char* driverMeshName)
-    throw (SALOME::SALOME_Exception);
-
-  //                                   Cuisine interne
-  CORBA::Long getCorbaIndex() throw (SALOME::SALOME_Exception);
-
-  //
-  void         calculeNbElts()   throw (SALOME::SALOME_Exception);
-  void         createFamilies()  throw (SALOME::SALOME_Exception);
+  public: private: protected:
+       // C++ object containing values
+       ::SMESH_Mesh_i * _mesh_i;
+       SMESHDS_Mesh *_meshDS;
+
+       string _meshId;
+       bool _compte;
+       bool _creeFamily;
+       int _indexElts;
+       int _indexEnts;
+       int _famIdent;
+
+       map < SALOME_MED::medGeometryElement, int >_mapIndToSeqElts;
+       SALOME_MED::long_array_var _seq_elemId[MED_NBR_GEOMETRIE_MAILLE];
+
+       map < SALOME_MED::medEntityMesh, int >_mapNbTypes;
+       map < SALOME_MED::medEntityMesh, int >_mapIndToVectTypes;
+       vector < SALOME_MED::medGeometryElement >
+               _TypesId[MED_NBR_GEOMETRIE_MAILLE];
+
+       vector < SALOME_MED::FAMILY_ptr > _families;
+  public:
+
+       // Constructors and associated internal methods
+       SMESH_MEDMesh_i();
+       SMESH_MEDMesh_i(SMESH_Mesh_i * m);
+       ~SMESH_MEDMesh_i();
+
+       // IDL Methods
+       void setProtocol(SALOME::TypeOfCommunication typ) {}
+       void release() {}
+       SALOME::SenderDouble_ptr getSenderForCoordinates(long int) {return SALOME::SenderDouble::_nil();}
+       SALOME::SenderInt_ptr getSenderForConnectivity(long int, long int, long int, long int) {return SALOME::SenderInt::_nil();}
+        SALOME::SenderInt_ptr getSenderForPolygonsConnectivity(SALOME_MED::medConnectivity, SALOME_MED::medEntityMesh) {return SALOME::SenderInt::_nil();}
+        SALOME::SenderInt_ptr getSenderForPolygonsConnectivityIndex(SALOME_MED::medConnectivity, SALOME_MED::medEntityMesh) {return SALOME::SenderInt::_nil();}
+        SALOME::SenderInt_ptr getSenderForPolyhedronConnectivity(SALOME_MED::medConnectivity) {return SALOME::SenderInt::_nil();}
+        SALOME::SenderInt_ptr getSenderForPolyhedronIndex(SALOME_MED::medConnectivity) {return SALOME::SenderInt::_nil();}
+        SALOME::SenderInt_ptr getSenderForPolyhedronFacesIndex() {return SALOME::SenderInt::_nil();}
+       
+       char *getName() throw(SALOME::SALOME_Exception);
+       CORBA::Long getSpaceDimension() throw(SALOME::SALOME_Exception);
+
+       CORBA::Long getMeshDimension() throw(SALOME::SALOME_Exception);
+
+        CORBA::Boolean  getIsAGrid() throw (SALOME::SALOME_Exception);
+
+        CORBA::Boolean
+       existConnectivity(SALOME_MED::medConnectivity connectivityType,
+                         SALOME_MED::medEntityMesh entity)
+         throw (SALOME::SALOME_Exception);
+
+       char *getCoordinatesSystem() throw(SALOME::SALOME_Exception);
+
+        CORBA::Double getCoordinate(CORBA::Long Number, CORBA::Long Axis)
+         throw (SALOME::SALOME_Exception);
+
+       SALOME_MED::double_array * getCoordinates(SALOME_MED::medModeSwitch typeSwitch)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::string_array * getCoordinatesNames()
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::string_array * getCoordinatesUnits()
+         throw(SALOME::SALOME_Exception);
+
+       CORBA::Long getNumberOfNodes() throw(SALOME::SALOME_Exception);
+
+       CORBA::Long getNumberOfTypes(SALOME_MED::medEntityMesh entity)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::medGeometryElement_array *
+               getTypes(SALOME_MED::medEntityMesh entity) throw(SALOME::
+               SALOME_Exception);
+
+        SALOME_MED::medGeometryElement
+       getElementType(SALOME_MED::medEntityMesh entity,
+                      CORBA::Long number)
+         throw   (SALOME::SALOME_Exception);
+
+        CORBA::Long getNumberOfElements(SALOME_MED::medEntityMesh entity,
+               SALOME_MED::medGeometryElement geomElement)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::long_array *
+       getConnectivity(SALOME_MED::medModeSwitch typeSwitch,
+                       SALOME_MED::medConnectivity mode,
+                       SALOME_MED::medEntityMesh entity,
+                       SALOME_MED::medGeometryElement geomElement)
+         throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::long_array *
+       getConnectivityIndex(SALOME_MED::medConnectivity mode,
+                            SALOME_MED::medEntityMesh entity)
+         throw(SALOME::SALOME_Exception);
+
+        SALOME_MED::long_array*
+       getGlobalNumberingIndex(SALOME_MED::medEntityMesh entity)
+         throw (SALOME::SALOME_Exception);
+
+       CORBA::Long getElementNumber(SALOME_MED::medConnectivity mode,
+               SALOME_MED::medEntityMesh entity,
+               SALOME_MED::medGeometryElement type,
+               const SALOME_MED::long_array & connectivity)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::long_array *
+               getReverseConnectivity(SALOME_MED::medConnectivity mode)
+         throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::long_array *
+               getReverseConnectivityIndex(SALOME_MED::
+               medConnectivity mode) throw(SALOME::SALOME_Exception);
+
+       // Family and Group
+       CORBA::Long getNumberOfFamilies(SALOME_MED::medEntityMesh entity)
+               throw(SALOME::SALOME_Exception);
+
+       CORBA::Long getNumberOfGroups(SALOME_MED::medEntityMesh entity)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::Family_array *
+       getFamilies(SALOME_MED::medEntityMesh entity)
+         throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::FAMILY_ptr getFamily(SALOME_MED::medEntityMesh entity,
+               CORBA::Long i) throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::Group_array * getGroups(SALOME_MED::medEntityMesh entity)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::GROUP_ptr getGroup(SALOME_MED::medEntityMesh entity,
+               CORBA::Long i) throw(SALOME::SALOME_Exception);
+
+        SALOME_MED::SUPPORT_ptr
+       getBoundaryElements(SALOME_MED::medEntityMesh entity)
+         throw (SALOME::SALOME_Exception);
+
+        SALOME_MED::SUPPORT_ptr getSkin(SALOME_MED::SUPPORT_ptr mySupport3D)
+         throw (SALOME::SALOME_Exception);
+
+       SALOME_MED::FIELD_ptr getVolume(SALOME_MED::SUPPORT_ptr mySupport)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::FIELD_ptr getArea(SALOME_MED::SUPPORT_ptr mySupport)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::FIELD_ptr getLength(SALOME_MED::SUPPORT_ptr mySupport)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::FIELD_ptr getNormal(SALOME_MED::SUPPORT_ptr mySupport)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::FIELD_ptr getBarycenter(SALOME_MED::SUPPORT_ptr mySupport)
+               throw(SALOME::SALOME_Exception);
+
+       SALOME_MED::FIELD_ptr getNeighbourhood(SALOME_MED::SUPPORT_ptr mySupport)
+               throw(SALOME::SALOME_Exception);
+
+       // Others
+       void addInStudy(SALOMEDS::Study_ptr myStudy,
+               SALOME_MED::MESH_ptr myIor) throw(SALOME::SALOME_Exception);
+       CORBA::Long addDriver(SALOME_MED::medDriverTypes driverType,
+               const char *fileName, const char *meshName)
+               throw(SALOME::SALOME_Exception);
+       void rmDriver(CORBA::Long i) throw(SALOME::SALOME_Exception);
+       void read(CORBA::Long i) throw(SALOME::SALOME_Exception);
+       void write(CORBA::Long i, const char *driverMeshName)
+               throw(SALOME::SALOME_Exception);
+
+       //                    Cuisine interne
+       CORBA::Long getCorbaIndex() throw(SALOME::SALOME_Exception);
+
+        SALOME_MED::MESH::meshInfos * getMeshGlobal()
+         throw (SALOME::SALOME_Exception);
+
+       bool areEquals(SALOME_MED::MESH_ptr other) { return false;};
+
+        SALOME_MED::MESH::coordinateInfos * getCoordGlobal()
+         throw (SALOME::SALOME_Exception);
+
+        SALOME_MED::MESH::connectivityInfos *
+       getConnectGlobal(SALOME_MED::medEntityMesh entity)
+         throw (SALOME::SALOME_Exception);
+
+       //
+       void calculeNbElts() throw(SALOME::SALOME_Exception);
+       void createFamilies() throw(SALOME::SALOME_Exception);
 };
 
 #endif /* _MED_MESH_I_HXX_ */