r70: added imagefiles
[ctsim.git] / include / array2d.h
1 #ifndef ARRAY2D_H
2 #define ARRAY2D_H
3
4 #include <kstddef.h>
5
6 template<class T> 
7 class Array2d {
8  private:
9     unsigned int nx;
10     unsigned int ny;
11
12  public:
13
14     T** array_data;
15
16     Array2d (unsigned int x, unsigned int y)
17         {
18             nx = x;
19             ny = y;
20             array_data = new T*[nx];
21             
22             for (int i = 0; i < nx; i++)
23                 array_data[i] = new T[ny];
24         }
25
26
27     ~Array2d ()
28         {
29             for (int i = 0; i < nx; i++)
30                 delete array_data[i];
31             delete array_data;
32         }
33     
34     T** getArray (void) const
35         { return array_data; }
36
37     T* getColumn (unsigned int x) const
38         { return array_data[x]; }
39
40     T getPoint (unsigned int x, unsigned int y) const
41         { return (array_data[x][y]); }
42
43     unsigned int sizeofPixel (void) const 
44         {  return sizeof(T); }
45
46     unsigned int sizeofColumn (void) const
47         { return (sizeof(T) * ny); }
48
49     unsigned int sizeofArray (void) const
50         { return (sizeof(T) * nx * ny); }
51 };
52
53
54 #endif