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

mitkRawConeBeamProjectData.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 __mitkRawConeBeamProjectData_h
00012 #define __mitkRawConeBeamProjectData_h
00013 
00014 #include "mitkConeBeamProjectData.h"
00015 #include "mitkICVolume.h"
00016 #include "mitkRawReader.h"
00017 #include <string>
00018 #include <windows.h>
00019 using std::string;
00020 using std::ifstream;
00025 /*
00026 example
00027     mitkRawConeBeamProjectData* pData = new mitkRawConeBeamProjectData ;
00028 
00029     pData->SetXrayNumX(xrayNumx);
00030     pData->SetXrayNumZ(xrayNumz);
00031     pData->SetAngleNum(angleNum);
00032 
00033     pData->SetDataType(MITK_FLOAT);
00034     pData->SetIsOneFile(true);
00035     pData->SetBlockSize(8);
00036     pData->SetFilePostfixNum(4);
00037     pData->SetGpuBlockNum(1);
00038 
00039     pData->SetFov(-fovx,fovx,-fovy,fovy,-fovz,fovz); 
00040     pData->SetBeginAngle(beginAngle);
00041     pData->SetEndAngle(endAngle);
00042     pData->SetPitch(pitch);
00043     pData->SetInitZPosition(0);
00044 
00045     pData->SetDetectorLengthX(a);
00046     pData->SetDetectorLengthZ(b);
00047     pData->SetSourceToCenterDistance(D);
00048     pData->SetSourceToDetectorDistance(L);
00049     pData->SetDetectorMoveX(movex);
00050     pData->SetDetectorMoveZ(movez);
00051     pData->SetFileName(filename.c_str());   
00052 */
00053 class MITK_RECONSTRUCTION_API mitkRawConeBeamProjectData : public mitkConeBeamProjectData  
00054 {
00055 public:
00056     MITK_TYPE(mitkRawConeBeamProjectData,mitkConeBeamProjectData)
00057     
00058     virtual void PrintSelf(ostream& os);
00059     
00060     mitkRawConeBeamProjectData();
00061 
00067     virtual unsigned long long GetActualMemorySize() const ;
00068 
00072     virtual void ShallowCopy(mitkDataObject *src);
00073 
00077     virtual void DeepCopy(mitkDataObject *src); 
00078 
00083     void SetBlockSize(int m){m_BlockSize = m; totalBlockNum = this->GetAngleNum()/m;}
00084 
00088     bool SetFileName(const char *m);
00089 
00090 
00094     void SetIsOneFile(bool onefile) {IsOneFile = onefile;}
00095 
00099     void SetFilePostfixNum(int m) {fix = m;}
00100 
00104     virtual void const* GetAngleSliceForRead(int sliceIdx);
00105 
00109     virtual void* GetAngleSliceForWrite(int sliceIdx) {return NULL;}
00110 
00114     virtual void* GetAngleSliceForReadWrite(int sliceIdx);
00115     
00119     int GetGpuBlockNum() const {return gpuBlockNum;  }
00120 
00124     void SetGpuBlockNum(int m)  {gpuBlockNum = m;  }
00125 
00126     virtual bool Allocate();
00127 
00128     virtual void Initialize();  
00129 
00130     void SetFileBeginName(int m)  {beginName = m;}
00131 
00132 protected:
00133     void ErrorReport(const char *m);
00134     static unsigned __stdcall ReadData( void* para);
00135     virtual ~mitkRawConeBeamProjectData(); 
00136 
00137 private:
00138     bool IsOneFile;
00139     FILE *fp;
00140     int m_BlockSize;
00141     int gpuBlockNum;
00142     int totalBlockNum;
00143     int mBlockHead;
00144     int beginName;
00145     int mBlockBytes;
00146     int fix;
00147     bool isfileNameFixLength;
00148     mitkRawReader *reader;
00149     string filename;
00150     string savedFn;
00151     mitkRCPtr<mitkVolume> m_Data1;
00152     mitkRCPtr<mitkVolume> m_Data2;
00153     int beUsing;
00154     const int maxEffectBlock;
00155     HANDLE readDataThread;
00156     unsigned readDataThreadID;
00157     HANDLE readyUse;
00158     HANDLE readyRead;
00159 
00160 private:
00161     mitkRawConeBeamProjectData(const mitkRawConeBeamProjectData&);
00162     void operator = (const mitkRawConeBeamProjectData&);
00163 
00164     
00165 };
00166  
00167 //#define DEFINED_mitkRawConeBeamProjectData
00168  
00169 
00170 
00171 
00172 #endif 
00173 

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