]> Creatis software - creaImageIO.git/blob - src2/creaImageIOAbstractImageReader.h
e5585606f9fdee1a840ab3eadcc90b9904895966
[creaImageIO.git] / src2 / creaImageIOAbstractImageReader.h
1 #ifndef __creaImageIOAbstractImageReader_h_INCLUDED__
2 #define __creaImageIOAbstractImageReader_h_INCLUDED__
3
4
5 #include <vtkImageData.h>
6 #include <string>
7 #include <map>
8 #include <vector>
9 #include <creaImageIOTreeAttributeMapType.h>
10
11 namespace creaImageIO
12 {
13
14
15   /**
16    * \ingroup IO
17    */
18   
19   //=====================================================================
20   /// Abstract image reader 
21   class AbstractImageReader 
22   {
23   public:
24     AbstractImageReader() {}
25     virtual ~AbstractImageReader() {}
26
27     const std::string& GetName() const { return mName; }
28     virtual void PushBackExtensions(std::vector<std::string>&) {}
29     virtual bool CanRead(const std::string& filename) { return false; }
30     virtual vtkImageData* ReadImage(const std::string& filename) { return 0; }
31     virtual void ReadAttributes(const std::string& filename, 
32                                 tree::AttributeMapType& attr) {}
33
34   protected:
35     void SetName(const std::string& s) { mName = s; }
36   private:
37     std::string mName;
38   };
39   //=====================================================================
40
41
42
43 } // namespace creaImageIO
44
45
46
47 #endif // #ifndef __creaImageIOAbstractImageReader_h_INCLUDED__