00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkProjectDataToVolumeFilter_h
00012 #define __mitkProjectDataToVolumeFilter_h
00013
00014 #include "mitkFilter.h"
00015 #include "mitkVolume.h"
00016 #include "mitkProjectData.h"
00017 #include "mitkRCPtr.h"
00018 #include "mitkRawDataToVolumeFilter.h"
00019 #include "mitkOoCGlobalSettings.h"
00020
00021 #ifndef PI
00022 #define PI 3.14159265358979
00023 #endif
00024
00025 #ifndef USE_SIMD
00026 #define USE_SIMD
00027
00028 #endif
00033
00034 class MITK_RECONSTRUCTION_API mitkProjectDataToVolumeFilter : public mitkRawDataToVolumeFilter
00035 {
00036 public:
00037 MITK_TYPE(mitkProjectDataToVolumeFilter,mitkRawDataToVolumeFilter)
00038
00039 virtual void PrintSelf(ostream& os);
00040
00041
00042
00043
00044
00045
00051 void SetInterpolationModel(int m){mInterp = m;}
00052
00058 int GetInterpolationModel(){return mInterp;}
00059
00064 void SetInput(mitkProjectData *inData) {m_InData = inData;}
00065
00070 mitkProjectData* GetInput() {return m_InData;}
00071
00076 mitkVolume* GetOutput();
00077
00081 void SetOutput(mitkVolume *m) {m_OutData = m;}
00082
00087 void SetIsLogOperation(bool m) {isLogOperation = m;}
00088
00093 bool GetIsLogOperation() {return isLogOperation;}
00094
00099 void SetEmptyScanImage(mitkVolume *m){emptyImage = m;}
00100
00105 mitkVolume* GetEmptyScanImage(){return emptyImage;}
00106
00115 void SetOoCSupport(char const *diskPath=mitkOoCGlobalSettings::DiskCachePath, unsigned int bufSliceNum = mitkOoCGlobalSettings::BufferedSliceNumber, bool supportOoC = true);
00116
00117 unsigned int GetBufferSliceNum() const {return m_BufferedSliceNum;}
00118
00119 mitkString* GetDiskPath() const {return m_DiskPath;}
00120
00121
00122
00123 float GetFilterFactor(){return m_filterFactor;}
00124 int GetFilterType(){return m_filterType;}
00125 void SetFilterType(int type=4, float factor=0.46){m_filterType=type; m_filterFactor=factor;}
00126
00127 protected:
00128
00129 mitkProjectDataToVolumeFilter();
00130
00131 virtual ~mitkProjectDataToVolumeFilter();
00132
00133 protected:
00134 mitkRCPtr<mitkProjectData> m_InData;
00135 mitkRCPtr<mitkVolume> emptyImage;
00136 mitkVolume *m_OutData;
00137 bool isLogOperation;
00138 mitkString *m_DiskPath;
00139 unsigned int m_BufferedSliceNum;
00140 bool m_NeedOoC;
00141 int mInterp;
00142 float m_filterFactor;
00143 int m_filterType;
00144
00145
00146 private:
00147 mitkProjectDataToVolumeFilter(const mitkProjectDataToVolumeFilter&);
00148 void operator=(const mitkProjectDataToVolumeFilter&);
00149
00150 };
00151
00152
00153
00154
00155
00156 #endif
00157