Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/med.git] / src / MEDCoupling / MEDCouplingSMesh.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_MEDCOUPLINGSMESH_HXX__
20 #define __PARAMEDMEM_MEDCOUPLINGSMESH_HXX__
21
22 #include "MEDCouplingMesh.hxx"
23
24 namespace ParaMEDMEM
25 {
26   class DataArrayDouble;
27
28   class MEDCouplingSMesh : public MEDCouplingMesh
29   {
30   public:
31     static MEDCouplingSMesh *New();
32     void updateTime();
33     void checkCoherency() const throw(INTERP_KERNEL::Exception);
34     bool isStructured() const;
35     int getNumberOfCells() const;
36     int getNumberOfNodes() const;
37     int getSpaceDimension() const;
38     int getMeshDimension() const;
39     DataArrayDouble *getCoordsAt(int i) const throw(INTERP_KERNEL::Exception);
40     void setCoords(DataArrayDouble *coordsX,
41                    DataArrayDouble *coordsY=0,
42                    DataArrayDouble *coordsZ=0);
43   private:
44     MEDCouplingSMesh();
45     ~MEDCouplingSMesh();
46   private:
47     DataArrayDouble *_x_array;
48     DataArrayDouble *_y_array;
49     DataArrayDouble *_z_array;
50   };
51 }
52
53 #endif