Salome HOME
NRI : Update 1.1a and New organisation.
[modules/med.git] / src / MEDMEM / MEDMEM_Coordinate.hxx
1 /*
2  File Coordinate.hxx
3  $Header$
4 */
5
6 #ifndef COORDINATE_HXX
7 #define COORDINATE_HXX
8
9 #include <string>
10
11 #include "MEDMEM_PointerOf.hxx"
12 #include "MEDMEM_Exception.hxx"
13 #include "MEDMEM_define.hxx"
14 //using namespace MED_EN;
15
16
17 #include "MEDMEM_Array.hxx"
18
19 class COORDINATE {
20
21 protected:
22                                     /*! contains "CARTESIAN",
23                                         "CYLINDRICAL" or "SPHERICAL"*/
24   string            _coordinateSystem;
25
26   // all in _coordinate object !!!
27   //  int               _spaceDimension;
28   //  int               _numberOfNodes;
29
30                                      /*! array of size spaceDimension*NumberOfNodes */
31   //PointerOf< MEDARRAY<double> > _coordinate;     
32   //bool                                _allocateCoordinate;
33                                         MEDARRAY<double>* _coordinate;     
34
35                                      /*! array of size spaceDimension */
36   PointerOf<string>          _coordinateName; 
37                                          //string *          _coordinateName; 
38
39                                      /*! array of size spaceDimension */
40   PointerOf<string>          _coordinateUnit; 
41                                         //string *          _coordinateUnit; 
42
43                                      /*! array of size NumberOfNodes : optionnal nodes numbers */
44   PointerOf<int>             _nodeNumber;     
45                                         //int    *          _nodeNumber;     
46
47
48 public :
49
50   friend class MED_MESH_RDONLY_DRIVER;
51   friend class MED_MESH_WRONLY_DRIVER;
52
53
54   COORDINATE();
55   COORDINATE(medModeSwitch Mode,int SpaceDimension, int NumberOfNodes);
56   COORDINATE(const COORDINATE & m);
57   ~COORDINATE();
58
59   void setCoordinates(MEDARRAY<double> *Coordinate);
60   void setCoordinatesNames(string * CoordinateName);
61   void setCoordinatesUnits(string * CoordinateUnit);
62   void setCoordinatesSystem(string CoordinateSystem);
63   void setNodesNumbers(int * NodeNumber);
64
65   int*            getNodesNumbers() const;
66   int*            getNodesNumbers() ;
67   string          getCoordinatesSystem() const;
68   const double *  getCoordinates(medModeSwitch Mode);
69   double          getCoordinate(int Number,int Axis); 
70   // return coordinate of node number Number, on axis Axis (1: X, 2: Y, 3: Z)
71   const double * getCoordinateAxis(int Axis); 
72   // return all nodes coordinates from axis Axis
73   string * getCoordinatesNames(); 
74   string   getCoordinateName(int Axis);
75   string * getCoordinatesUnits();
76   string   getCoordinateUnit(int Axis);
77 };
78
79 #endif /* COORDINATE_HXX */