Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/med.git] / src / MEDCoupling / MEDCouplingMesh.hxx
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
2 //
3 //  This library is free software; you can redistribute it and/or
4 //  modify it under the terms of the GNU Lesser General Public
5 //  License as published by the Free Software Foundation; either
6 //  version 2.1 of the License.
7 //
8 //  This library is distributed in the hope that it will be useful,
9 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 //  Lesser General Public License for more details.
12 //
13 //  You should have received a copy of the GNU Lesser General Public
14 //  License along with this library; if not, write to the Free Software
15 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 #ifndef __PARAMEDMEM_MEDCOUPLINGMESH_HXX__
20 #define __PARAMEDMEM_MEDCOUPLINGMESH_HXX__
21
22 #include "RefCountObject.hxx"
23 #include "InterpKernelException.hxx"
24
25 namespace ParaMEDMEM
26 {
27   class MEDCouplingMesh : public RefCountObject
28   {
29   public:
30     void setName(const char *name) { _name=name; }
31     const char *getName() const { return _name.c_str(); }
32     virtual void checkCoherency() const throw(INTERP_KERNEL::Exception) = 0;
33     virtual bool isStructured() const = 0;
34     virtual int getNumberOfCells() const = 0;
35     virtual int getNumberOfNodes() const = 0;
36     virtual int getSpaceDimension() const = 0;
37     virtual int getMeshDimension() const = 0;
38   protected:
39     virtual ~MEDCouplingMesh() { }
40   private:
41     std::string _name;
42   };
43 }
44
45 #endif