// // File: array3d.h // // (C) 2000-2006 Helmut Cantzler // // Licensed under the terms of the Lesser General Public License. // #ifndef _ARRAY3D_H #define _ARRAY3D_H template class Array3D { public: Array3D() { size_x=size_y=size_z=0; data=NULL; } Array3D(int sx, int sy, int sz) { size_x=sx; size_y=sy; size_z=sz; data= new T [size_x * size_y * size_z]; } ~Array3D() { delete [] data; } const T* get_data(void) const { return data; } T get(int x, int y, int z) const { return data[(y * size_x + x) * size_z + z]; } void set(int x, int y, int z, T d) { data[(y * size_x + x) * size_z + z] = d; } int get_size_x() const { return size_x; } int get_y_size() const { return size_y; } int get_size_z() const { return size_z; } private: T *data; int size_x, size_y, size_z; }; #endif