Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkConeBeamProjectData.h

00001 /*=========================================================================
00002 
00003   Program:   3DMed
00004   Date:      $Date: 2014-02-25 18:30:00 +0800 $
00005   Version:   $Version: 4.6.0 $
00006   Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences
00007 
00008 =========================================================================*/
00009 
00010 
00011 #ifndef __mitkConeBeamProjectData_h
00012 #define __mitkConeBeamProjectData_h
00013 
00014 #include "mitkProjectData.h"
00015 #include "mitkVolume.h"
00016 
00039 
00040 class MITK_RECONSTRUCTION_API mitkConeBeamProjectData : public mitkProjectData  
00041 {
00042 public:
00043     MITK_TYPE(mitkConeBeamProjectData,mitkProjectData)
00044     
00045     virtual void PrintSelf(ostream& os);
00046     
00047     mitkConeBeamProjectData();
00048 
00049     virtual void Initialize();
00050 
00051     
00055     virtual void const* GetData() const {return m_Data;}
00056     
00060     virtual void* GetData() {return m_Data;}
00061 
00065     void SetData(mitkVolume *m);
00066 
00070     float GetDetectorMoveX(){ return detectormovex;}
00071 
00075     void SetDetectorMoveX(float m){ detectormovex = m;}
00076 
00080     float GetDetectorMoveZ(){ return detectormovez;}
00081     
00085     void SetDetectorMoveZ(float m){ detectormovez = m;}
00086 
00090     void SetDetectorLengthX(double m){lengthDetectorx = m; }
00091     
00095     double GetDetectorLengthX(){return lengthDetectorx;}
00096 
00100     void SetDetectorLengthZ(double m){lengthDetectorz = m; }
00101     
00105     double GetDetectorLengthZ(){return lengthDetectorz;}
00106     
00116     void SetFov(double *m){v[0] = m[0]; v[1] = m[1]; v[2] = m[2]; v[3] = m[3]; v[4] = m[4]; v[5] = m[5];}
00117     void SetFov(double xmin,double xmax,double ymin,double ymax,double zmin,double zmax){v[0] = xmin; v[1] = xmax; v[2] = ymin; v[3] = ymax; v[4] = zmin; v[5] = zmax;}
00118     
00128     double* GetFov()  {return v;}
00129     
00133     void SetXrayNumX(int m){numXrayx = m;}
00134     
00138     int GetXrayNumX() const {return numXrayx;}
00139     
00143     void SetXrayNumZ(int m){numXrayz = m;}
00144     
00148     int GetXrayNumZ() const {return numXrayz;}
00149 
00150 
00154     void SetSourceToCenterDistance(double m){sod = m;}
00155 
00159     double GetSourceToCenterDistance() const {return sod;}
00160 
00164     void SetSourceToDetectorDistance(double m){sdd = m;}
00165 
00169     double GetSourceToDetectorDistance() const {return sdd;}
00170 
00171     
00179     virtual unsigned long long GetActualMemorySize() const=0;
00180 
00184     virtual void ShallowCopy(mitkDataObject *src)=0;
00188     virtual void DeepCopy(mitkDataObject *src)=0;  
00189 
00193     virtual void const* GetAngleSliceForRead(int sliceIdx)=0;
00194     virtual void* GetAngleSliceForWrite(int sliceIdx)=0;
00195     virtual void* GetAngleSliceForReadWrite(int sliceIdx)=0 ;
00196 
00197     virtual bool Allocate()=0;
00198 
00199 protected:
00200     virtual ~mitkConeBeamProjectData();  
00201 private:
00202 
00203     double lengthDetectorx;
00204     double lengthDetectorz;
00205 
00206     int numXrayx;
00207     int numXrayz;
00208     double sod;
00209     double sdd;
00210     double v[8];
00211     float detectormovex;
00212     float detectormovez;
00213     
00214 };
00215  
00216 //#define DEFINED_mitkConeBeamProjectData
00217  
00218 
00219 
00220 #endif 
00221 

Generated on Tue Feb 25 15:00:36 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3