00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkParallelProjectData_h
00012 #define __mitkParallelProjectData_h
00013
00014 #include "mitkProjectData.h"
00015
00016
00021
00022
00023 class MITK_RECONSTRUCTION_API mitkParallelProjectData : public mitkProjectData
00024 {
00025 public:
00026 MITK_TYPE(mitkParallelProjectData,mitkProjectData)
00027
00028 virtual void PrintSelf(ostream& os);
00029
00030 mitkParallelProjectData();
00031
00032 virtual int GetDataObjectType() const { return MITK_PARALLEL_PROJECT_DATA; }
00033
00037 virtual void const* GetData() const {return m_Data;}
00038
00042 virtual void* GetData() {return m_Data;}
00043
00047 void SetData(mitkVolume *m);
00048
00052 int GetDetectorMove(){ return detectormove;}
00053
00057 void SetDetectorMove(int m){ detectormove = m;}
00058
00062 void SetDetectorLength(double m){lengthDetector = m; halfdetector = lengthDetector/2;}
00063
00067 double GetDetectorLength(){return lengthDetector;}
00068
00076 void SetFov(double *m){v[0] = m[0]; v[1] = m[1]; v[2] = m[2]; v[3] = m[3];}
00077 void SetFov(double xmin,double xmax,double ymin,double ymax){v[0] = xmin; v[1] = xmax; v[2] = ymin; v[3] = ymax;}
00078
00086 double* GetFov(){return v;}
00087
00091 void SetXrayNum(int m){numXray = m;}
00092
00096 int GetXrayNum() const{return numXray;}
00097
00101 void SetSliceNum(int m){numSlice = m;}
00102
00106 int GetSliceNum() const{return numSlice;}
00107
00111 virtual void ShallowCopy(mitkDataObject *src)=0;
00112
00116 virtual void DeepCopy(mitkDataObject *src)=0;
00117
00121 virtual void const* GetSliceForRead(int sliceIdx)=0;
00122
00123 virtual void* GetSliceForWrite(int sliceIdx)=0;
00124
00125 virtual void* GetSliceForReadWrite(int sliceIdx)=0 ;
00126
00127 virtual bool Allocate()=0;
00128
00129 virtual void Initialize();
00130
00131 protected:
00132 virtual ~mitkParallelProjectData();
00133 private:
00134
00135 double lengthDetector;
00136 double halfdetector;
00137 int numSlice;
00138 int numXray;
00139 double v[4];
00140 int detectormove;
00141
00142 };
00143
00144
00145
00146
00147
00148
00149 #endif
00150
00151