00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkFanBeamProjectData_h
00012 #define __mitkFanBeamProjectData_h
00013
00014 #include "mitkProjectData.h"
00015
00016
00031
00032
00033 class MITK_RECONSTRUCTION_API mitkFanBeamProjectData : public mitkProjectData
00034 {
00035 public:
00036 MITK_TYPE(mitkFanBeamProjectData,mitkProjectData)
00037
00038 virtual void PrintSelf(ostream& os);
00039
00040 mitkFanBeamProjectData();
00041
00042 virtual void Initialize();
00043
00047 virtual void const* GetData() const {return m_Data;}
00048
00052 virtual void* GetData() {return m_Data;}
00053
00057 void SetData(mitkVolume *m);
00058
00062 float GetDetectorMove(){ return detectormove;}
00063
00067 void SetDetectorMove(float m){ detectormove = m;}
00068
00072 void SetDetectorLength(double m){lengthDetector = m; halfdetector = lengthDetector/2;}
00073
00077 double GetDetectorLength(){return lengthDetector;}
00078
00086 void SetFov(double *m){v[0] = m[0]; v[1] = m[1]; v[2] = m[2]; v[3] = m[3];}
00087 void SetFov(double xmin,double xmax,double ymin,double ymax){v[0] = xmin; v[1] = xmax; v[2] = ymin; v[3] = ymax;}
00088
00096 double* GetFov() {return v;}
00097
00101 void SetXrayNum(int m){numXray = m;}
00102
00106 int GetXrayNum() const {return numXray;}
00107
00111 void SetSourceToCenterDistance(double m){sod = m;}
00112
00116 double GetSourceToCenterDistance() const {return sod;}
00117
00121 void SetSourceToDetectorDistance(double m){sdd = m;}
00122
00126 double GetSourceToDetectorDistance() const {return sdd;}
00127
00128
00132 void SetSliceNum(int m){numSlice = m;}
00133
00137 int GetSliceNum() const {return numSlice;}
00138
00146 virtual unsigned long long GetActualMemorySize() const=0;
00147
00151 virtual void ShallowCopy(mitkDataObject *src)=0;
00155 virtual void DeepCopy(mitkDataObject *src)=0;
00156
00160 virtual void const* GetSliceForRead(int sliceIdx)=0;
00161 virtual void* GetSliceForWrite(int sliceIdx)=0;
00162 virtual void* GetSliceForReadWrite(int sliceIdx)=0 ;
00163
00164 virtual bool Allocate()=0;
00165
00166 protected:
00167 virtual ~mitkFanBeamProjectData();
00168 private:
00169
00170 double lengthDetector;
00171 double halfdetector;
00172 int numSlice;
00173 int numXray;
00174 double sod;
00175 double sdd;
00176 double v[4];
00177 float detectormove;
00178
00179 };
00180
00181
00182
00183
00184
00185 #endif
00186