00001 00002 00003 #ifndef __MAR__KERNEL__MARDICOMBASE__HXX__ 00004 #define __MAR__KERNEL__MARDICOMBASE__HXX__ 00005 00006 00007 00008 #include <wx/gauge.h> 00009 00010 #include "marObject.h" 00011 #include "volume.hxx" 00012 00013 00014 #include <vector> 00015 #include <string> 00016 //using namespace std; 00017 00018 00019 00020 00021 00022 class marFilesBase : public marObject{ 00023 public: 00024 marFilesBase(marParameters* p); 00025 virtual ~marFilesBase(); 00026 virtual wxString GetPatientName() {return _T(""); }; 00027 kVolume* getVolume( ); 00028 void SetVolume( kVolume* volume ); 00029 bool volumeLoaded( ); 00030 void freeVolume( ); 00031 00032 virtual void loadActualSerie( wxGauge* gauge) {} ; 00033 virtual bool loadImage(int i) {return true; }; 00034 std::vector < std::string*> *GetListImages(); 00035 void CleanListImages(); 00036 00037 void ResetLstFileNotReaded(); 00038 std::string GetMsgLstFile(); 00039 00040 private: 00041 kVolume *_volume; 00042 00043 protected: 00044 std::vector < std::string*> _lstString; 00045 std::vector < char*> _lstFileNotReaded; 00046 00047 }; 00048 00049 00050 00051 //------------------------------------------------------------------- 00052 00053 class marRAWFiles : public marFilesBase 00054 { 00055 public: 00056 marRAWFiles(marParameters* p = NULL); 00057 ~marRAWFiles(); 00058 virtual bool loadImage(int i); 00059 virtual void loadActualSerie(wxGauge* gauge ); 00060 void SetLittreEndianBigEndian(int value); 00061 int GetLittreEndianBigEndian(); 00062 00063 void reset( ); 00064 void copyFrom( const marObject& from ); 00065 bool save( std::ofstream& os ); 00066 bool load( std::ifstream& is ); 00067 00068 00069 private: 00070 int _littreEndianBigEndian; 00071 protected: 00072 }; 00073 00074 00075 //------------------------------------------------------------------- 00076 class marRAW2Files : public marRAWFiles 00077 { 00078 public: 00079 marRAW2Files(marParameters* p = NULL); 00080 ~marRAW2Files(); 00081 virtual bool loadImage(int i); 00082 virtual void loadActualSerie(wxGauge* gauge ); 00083 virtual void saveVolume( std::string directory, std::string filename, vtkImageData *vtkimagedata,int voi[6], double slope, double intercept); 00084 void FlipY(vtkImageData *imagedata); 00085 00086 private: 00087 protected: 00088 }; 00089 00090 00091 //------------------------------------------------------------------- 00092 class marRAW2AsciiFiles : public marRAWFiles 00093 { 00094 public: 00095 marRAW2AsciiFiles(marParameters* p = NULL); 00096 ~marRAW2AsciiFiles(); 00097 virtual bool loadImage(int i); 00098 virtual void loadActualSerie(wxGauge* gauge ); 00099 00100 private: 00101 protected: 00102 }; 00103 00104 00105 00106 00107 00108 00109 #endif // __MAR__KERNEL__MARDICOMBASE__HXX__ 00110