00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkConeBeamPD_h
00012 #define __mitkConeBeamPD_h
00013
00014 #include "mitkCTProjectionData.h"
00015 #include "mitkVolume.h"
00016
00039
00040 class MITK_RECONSTRUCTION_API mitkConeBeamPD : public mitkCTProjectionData
00041 {
00042 public:
00043 MITK_TYPE(mitkConeBeamPD,mitkCTProjectionData)
00044
00045 virtual void PrintSelf(ostream& os);
00046
00047 void SetColumnNum(int m){mColNum=m;}
00048 int GetColumnNum() const {return mColNum;}
00049
00050 void SetRowNum(int m){mRow=m;}
00051 int GetRowNum() const {return mRow;}
00052
00053 void SetFrameNum(int m){mFrameNum=m;}
00054 int GetFrameNum() const {return mFrameNum;}
00055
00056 void SetHRes(float m){mHRes=m;}
00057 float GetHRes() const {return mHRes;}
00058
00059 void SetVRes(float m){mVRes = m;}
00060 float GetVRes() const {return mVRes;}
00061
00062 void SetFrameRes(float m){mFrameRes = m;}
00063 float GetFrameRes() const {return mFrameRes;}
00064
00065
00066 virtual void const* GetFrameForRead(int frameIdx)=0;
00067 virtual void* GetFrameForWrite(int frameIdx)=0;
00068 virtual void* GetFrameForReadWrite(int frameIdx)=0 ;
00069
00070
00078 virtual unsigned long long GetActualMemorySize() const=0;
00079
00083 virtual void ShallowCopy(mitkDataObject *src)=0;
00087 virtual void DeepCopy(mitkDataObject *src)=0;
00088
00092 virtual void const* GetVolumeData() const {return m_Data;}
00093
00097 virtual void* GetVolumeData() {return m_Data;}
00098
00102 void SetVolumeData(mitkVolume *);
00103
00104 virtual void Initialize();
00105 virtual bool Allocate()=0;
00106
00107
00108
00112
00113
00117
00118
00122
00123
00127
00128
00129
00130
00131
00132 protected:
00133
00134 mitkConeBeamPD();
00135 virtual ~mitkConeBeamPD();
00136 private:
00137
00138 int mColNum;
00139 int mRow;
00140 int mFrameNum;
00141 float mHRes;
00142 float mVRes;
00143 float mFrameRes;
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156 };
00157
00158
00159
00160
00161
00162 #endif
00163