00001 #ifndef _MY_FChessBoard3D_
00002 #define _MY_FChessBoard3D_
00003 #include "sfunctions.h"
00004 #include "stackvector.h"
00005
00006
00020 class FChessBoard3D : public Function3D
00021 {
00022 private:
00023 Point3D m_p0;
00024 Point3D m_p1;
00025 Point3D m_lp0;
00026 Point3D m_lp1;
00027 unsigned m_dimX,m_dimY,m_dimZ;
00028 double m_dX,m_dY,m_dZ;
00029
00030 StackVector<3,unsigned> Xi,Xe;
00031
00032
00033 dealii::Table<3,double> m_matrix3D;
00034 protected:
00035
00036 public:
00037 FChessBoard3D(Point3D p0,Point3D p1,Point3D lp0,Point3D lp1,std::string fileName);
00038 FChessBoard3D(Point3D p0,Point3D p1,Point3D lp0,Point3D lp1,double My,double Cy,std::string fileName);
00039 FChessBoard3D(Point3D p0,Point3D p1,int dimX,int dimY,int dimZ, std::vector<double> &data);
00040
00041 virtual double operator() (const VecDouble &p, unsigned int component=0) const;
00042
00043 int getDimX(){return m_dimX;}
00044 int getDimY(){return m_dimY;}
00045 int getDimZ(){return m_dimZ;}
00046
00047 virtual ~FChessBoard3D();
00048
00049 };
00050
00051 #endif