Salome HOME
Merge from V6_main_20120808 08Aug12
[modules/med.git] / src / MEDMEM_I / MEDMEM_Mesh_i.hxx
1 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 //=============================================================================
24 // File      : MEDMEM_Mesh_i.hxx
25 // Project   : SALOME
26 // Author    : EDF 
27 // $Header: /export/home/PAL/MED_SRC/src/MEDMEM_I/MEDMEM_Mesh_i.hxx
28 //=============================================================================
29 //
30 #ifndef _MED_MESH_I_HXX_
31 #define _MED_MESH_I_HXX_
32
33 #include <MEDMEM_I.hxx>
34
35 #include <map>
36 #include <string>
37
38 #include <SALOMEconfig.h>
39 #include "SALOMEMultiComm.hxx"
40 #include "SALOME_GenericObj_i.hh"
41 #include "MEDMEM_GMesh_i.hxx"
42 #include CORBA_SERVER_HEADER(MED)
43 #include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
44 #include CORBA_SERVER_HEADER(SALOME_Comm)
45
46 namespace MEDMEM 
47 {
48   class MESH;
49   class MEDMEM_I_EXPORT MESH_i: virtual public POA_SALOME_MED::MESH,
50                                 virtual public GMESH_i
51   {
52   public:
53
54     // Constructors and associated internal methods
55     MESH_i();
56     MESH_i(::MEDMEM::MESH * const m);
57     MESH_i(MESH_i & m);
58     ~MESH_i();
59
60     // IDL Methods 
61     CORBA::Boolean  existConnectivity ( SALOME_MED::medConnectivity connectivityType,
62                                         SALOME_MED::medEntityMesh entity)
63       throw (SALOME::SALOME_Exception);
64
65     SALOME_TYPES::ListOfDouble* getCoordinates(SALOME_MED::medModeSwitch typeSwitch)
66       throw (SALOME::SALOME_Exception);
67
68     SALOME::SenderDouble_ptr getSenderForCoordinates(SALOME_MED::medModeSwitch typeSwitch)
69       throw (SALOME::SALOME_Exception);
70
71     CORBA::Double  getCoordinate(CORBA::Long Number, CORBA::Long Axis)
72       throw (SALOME::SALOME_Exception);
73
74     SALOME_TYPES::ListOfLong*   getConnectivity(SALOME_MED::medConnectivity mode, 
75                                                 SALOME_MED::medEntityMesh entity, 
76                                                 SALOME_MED::medGeometryElement geomElement)
77       throw (SALOME::SALOME_Exception);
78
79     SALOME::SenderInt_ptr getSenderForConnectivity(SALOME_MED::medConnectivity mode, 
80                                                    SALOME_MED::medEntityMesh entity, 
81                                                    SALOME_MED::medGeometryElement geomElement)
82       throw (SALOME::SALOME_Exception);
83
84     SALOME_TYPES::ListOfLong*   getConnectivityIndex(SALOME_MED::medConnectivity mode,
85                                                      SALOME_MED::medEntityMesh entity)
86       throw (SALOME::SALOME_Exception);
87
88     SALOME::SenderInt_ptr getSenderForConnectivityIndex(SALOME_MED::medConnectivity mode,
89                                                         SALOME_MED::medEntityMesh entity,
90                                                         SALOME_MED::medGeometryElement geomElement)
91       throw (SALOME::SALOME_Exception);
92
93     SALOME_TYPES::ListOfLong*   getGlobalNumberingIndex(SALOME_MED::medEntityMesh entity)
94       throw (SALOME::SALOME_Exception);
95
96     CORBA::Long            getElementNumber(SALOME_MED::medConnectivity mode,
97                                             SALOME_MED::medEntityMesh entity,
98                                             SALOME_MED::medGeometryElement type,
99                                             const SALOME_TYPES::ListOfLong& connectivity)
100       throw  (SALOME::SALOME_Exception);
101
102     SALOME_TYPES::ListOfLong*   getReverseConnectivity(SALOME_MED::medConnectivity mode)
103       throw (SALOME::SALOME_Exception);
104
105     SALOME_TYPES::ListOfLong*   getReverseConnectivityIndex(SALOME_MED::medConnectivity mode)
106       throw (SALOME::SALOME_Exception);
107
108
109     //                                  Cuisine interne
110     ::MEDMEM::MESH * constructConstMesh() const;
111     SALOME_MED::MESH::connectivityInfos * getConnectGlobal (SALOME_MED::medEntityMesh entity)
112       throw (SALOME::SALOME_Exception);
113     CORBA::Boolean areEquals(SALOME_MED::MESH_ptr other);
114   };
115 }
116
117 #endif /* _MED_MESH_I_HXX_ */