]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOAbstractImageReader.h
move directory
[creaImageIO.git] / src / creaImageIOAbstractImageReader.h
diff --git a/src/creaImageIOAbstractImageReader.h b/src/creaImageIOAbstractImageReader.h
new file mode 100644 (file)
index 0000000..3957f3a
--- /dev/null
@@ -0,0 +1,58 @@
+#ifndef __creaImageIOAbstractImageReader_h_INCLUDED__
+#define __creaImageIOAbstractImageReader_h_INCLUDED__
+
+
+#include <vtkImageData.h>
+#include <string>
+#include <map>
+#include <vector>
+#include "creaImageIOTreeAttributeMapType.h"
+
+namespace creaImageIO
+{
+
+
+  /**
+   * \ingroup IO
+   */
+  
+  //=====================================================================
+  /// Abstract image reader 
+  class AbstractImageReader 
+  {
+  public:
+    AbstractImageReader() {}
+    virtual ~AbstractImageReader() {}
+
+       /// Get the reader's name
+    const std::string& GetName() const { return mName; }
+
+       /// Add file extensions read by the reader
+    virtual void PushBackExtensions(std::vector<std::string>&) {}
+
+       /// Test if file is read by this reader
+    virtual bool CanRead(const std::string& filename) { return false; }
+
+       /// return for a file a 2D VTkImage
+    virtual vtkImageData* ReadImage(const std::string& filename) { return 0; } 
+
+       /// Read the attributes for a file
+    virtual void ReadAttributes(const std::string& filename, 
+                               tree::AttributeMapType& attr) {}
+
+  protected:
+
+    /// Set the reader's name
+    void SetName(const std::string& s) { mName = s; }
+  private:
+    std::string mName;
+  };
+  //=====================================================================
+
+
+
+} // namespace creaImageIO
+
+
+
+#endif // #ifndef __creaImageIOAbstractImageReader_h_INCLUDED__