Newer
Older
Import / research / 3d-z-maps / mview-0.3.3 / mview / array3d.h
@John John on 29 Dec 2020 949 bytes bulk import from macbookpro checkouts
//
//    File: array3d.h
//
//    (C) 2000-2008 Helmut Cantzler
//
//    Licensed under the terms of the Lesser General Public License.
//

#ifndef _ARRAY3D_H
#define _ARRAY3D_H

template <class T>
class Array3D
{
 public:

  Array3D()
    {
      sizeX=sizeY=sizeZ=0;
      data=NULL;
    }

  Array3D(int sx, int sy, int sz)
    {
      sizeX=sx; sizeY=sy; sizeZ=sz;
      data= new T [sizeX * sizeY * sizeZ];
    }

  ~Array3D()
    {
      delete [] data;
    }

  const T* getData(void) const
    {
      return data;
    }

  T get(int x, int y, int z) const
    {
      return data[(y * sizeX + x) * sizeZ + z];
    } 

  void set(int x, int y, int z, T d)
    {
      data[(y * sizeX + x) * sizeZ + z] = d;
    }

  int getSizeX() const
    {
      return sizeX;
    }

  int getSizeY() const
    {
      return sizeY;
    }

  int getSizeZ() const
    {
      return sizeZ;
    }

 private:
  T *data;
  int sizeX, sizeY, sizeZ;
};

#endif