00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkMetaImageIO_h
00018 #define __itkMetaImageIO_h
00019
00020 #include <fstream>
00021 #include "itkImageIOBase.h"
00022 #include "metaObject.h"
00023 #include "metaImage.h"
00024
00025 namespace itk
00026 {
00027
00032 class ITK_EXPORT MetaImageIO : public ImageIOBase
00033 {
00034 public:
00036 typedef MetaImageIO Self;
00037 typedef ImageIOBase Superclass;
00038 typedef SmartPointer<Self> Pointer;
00039
00041 itkNewMacro(Self);
00042
00044 itkTypeMacro(MetaImageIO, Superclass);
00045
00046
00047
00050 virtual bool CanReadFile(const char*) ;
00051
00053 virtual void ReadImageInformation();
00054
00056 virtual void Read(void* buffer);
00057
00058 MetaImage * GetMetaImagePointer(void);
00059
00060
00061
00064 virtual bool CanWriteFile(const char*);
00065
00067 virtual void WriteImageInformation();
00068
00071 virtual void Write(const void* buffer);
00072
00076 virtual void SetDataFileName( const char * filename );
00077
00078 protected:
00079 MetaImageIO();
00080 ~MetaImageIO();
00081 void PrintSelf(std::ostream& os, Indent indent) const;
00082
00083 private:
00084
00085 MetaImage m_MetaImage;
00086
00087 MetaImageIO(const Self&);
00088 void operator=(const Self&);
00089
00090 std::ifstream m_Ifstream;
00091
00092 std::ofstream m_Ofstream;
00093
00094 };
00095
00096 }
00097
00098 #endif // __itkMetaImageIO_h