]> SALOME platform Git repositories - modules/med.git/blob - src/MEDCoupling/MEDCouplingField.hxx
Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/med.git] / src / MEDCoupling / MEDCouplingField.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_MEDCOUPLINGFIELD_HXX__
20 #define __PARAMEDMEM_MEDCOUPLINGFIELD_HXX__
21
22 #include "RefCountObject.hxx"
23 #include "InterpKernelException.hxx"
24
25 #include <string>
26
27 namespace ParaMEDMEM
28 {
29   class MEDCouplingMesh;
30
31   class MEDCouplingField : public RefCountObject
32   {
33   public:
34     virtual void checkCoherency() const throw(INTERP_KERNEL::Exception) = 0;
35     void setMesh(MEDCouplingMesh *mesh);
36     void setTime(double val) { _time=val; }
37     double getTime() const { return _time; }
38     void setDtIt(int dt, int it) { _dt=dt; _it=it; }
39     void getDtIt(int& dt, int& it) { dt=_dt; it=_it; }
40     MEDCouplingMesh *getMesh() const { return _mesh; }
41     void setName(const char *name) { _name=name; }
42     void setDescription(const char *desc) { _desc=desc; }
43     const char *getName() const { return _name.c_str(); }
44     TypeOfField getEntity() const { return _type; }
45   protected:
46     void updateTime();
47   protected:
48     MEDCouplingField(TypeOfField type):_time(0.),_dt(-1),_it(-1),_mesh(0),_type(type) { }
49     virtual ~MEDCouplingField();
50   protected:
51     std::string _name;
52     std::string _desc;
53     double _time;
54     int _dt;
55     int _it;
56     MEDCouplingMesh *_mesh;
57     const TypeOfField _type;
58   };
59 }
60
61 #endif