00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2008-08-27 17:18:46 +0200 (Mi, 27 Aug 2008) $ 00006 Version: $Revision: 15096 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #ifndef _MITK_NRRDDIFFVOL_WRITER__H_ 00019 #define _MITK_NRRDDIFFVOL_WRITER__H_ 00020 00021 #include <itkProcessObject.h> 00022 #include <mitkFileWriterWithInformation.h> 00023 #include <mitkDiffusionImage.h> 00024 00025 00026 namespace mitk 00027 { 00028 00033 template < class TPixelType > 00034 class NrrdDiffusionImageWriter : public mitk::FileWriterWithInformation 00035 { 00036 public: 00037 00038 mitkClassMacro( NrrdDiffusionImageWriter, mitk::FileWriterWithInformation ); 00039 00040 mitkWriterMacro; 00041 00042 itkNewMacro( Self ); 00043 00044 typedef mitk::DiffusionImage<TPixelType> InputType; 00045 00050 itkSetStringMacro( FileName ); 00051 00055 itkGetStringMacro( FileName ); 00056 00060 itkSetStringMacro( FilePrefix ); 00061 00065 itkGetStringMacro( FilePrefix ); 00066 00070 itkSetStringMacro( FilePattern ); 00071 00075 itkGetStringMacro( FilePattern ); 00076 00081 void SetInput( InputType* input ); 00082 00086 InputType* GetInput(); 00087 00091 itkGetMacro( Success, bool ); 00092 00096 virtual std::vector<std::string> GetPossibleFileExtensions(); 00097 00098 // FileWriterWithInformation methods 00099 virtual const char * GetDefaultFilename() { return "DiffusionWeightedImages.dwi"; } 00100 virtual const char * GetFileDialogPattern() { return "Diffusion Weighted Images (*.dwi *.hdwi)"; } 00101 virtual const char * GetDefaultExtension() { return ".dwi"; } 00102 virtual bool CanWriteDataType(BaseData::Pointer data) { return (dynamic_cast<mitk::DiffusionImage<TPixelType>*>(data.GetPointer()) != NULL); }; 00103 virtual void DoWrite(BaseData::Pointer data) { 00104 if (CanWriteDataType(data)) { 00105 this->SetInput(dynamic_cast<mitk::DiffusionImage<TPixelType>*>(data.GetPointer())); 00106 this->Update(); 00107 } 00108 }; 00109 00110 protected: 00111 00112 NrrdDiffusionImageWriter(); 00113 00114 virtual ~NrrdDiffusionImageWriter(); 00115 00116 virtual void GenerateData(); 00117 00118 std::string m_FileName; 00119 00120 std::string m_FilePrefix; 00121 00122 std::string m_FilePattern; 00123 00124 bool m_Success; 00125 00126 }; 00127 00128 00129 } // end of namespace mitk 00130 00131 #include "mitkNrrdDiffusionImageWriter.cpp" 00132 00133 #endif