creaImageIOImageReader.h

Go to the documentation of this file.
00001 #ifndef __creaImageIOImageReader_h_INCLUDED__
00002 #define __creaImageIOImageReader_h_INCLUDED__
00003 
00004 #include <creaImageIOSystem.h>
00005 #include <creaImageIOAbstractImageReader.h>
00006 
00007 namespace creaImageIO
00008 {
00009 
00010  
00015   class CREAIMAGEIO_EXPORT ImageReader : virtual public AbstractImageReader
00016   {
00017   public:
00018     ImageReader();
00019     ~ImageReader();
00020 
00022     void PushBackExtensions(std::vector<std::string>&);
00023 
00025     bool CanRead( const std::string& filename);
00028     vtkImageData* ReadImage( const std::string& filename);
00029     
00035     void ReadAttributes(const std::string& filename, 
00036                         tree::AttributeMapType& attr);
00037 
00041         void getAttributes(const std::string filename,
00042                 std::map <std::string , std::string> &infos, std::vector<std::string> i_attr);
00043     
00044 
00045 
00046   protected:
00047     
00049     void Register( boost::shared_ptr<AbstractImageReader> );
00050 
00051         std::vector<boost::shared_ptr<AbstractImageReader> > mReader;
00052     vtkImageData* mUnreadableImage;
00053 
00054     std::string mLastFilename;
00055         boost::shared_ptr<AbstractImageReader> mLastReader;
00056 
00057         bool ShallNotRead( const std::string& filename );
00058 
00059         void UnRegister(const std::string i_val);
00060 
00061         std::vector <std::string> mUnReader;
00062     
00063   private:
00064 
00065   }; // class ImageReader
00066   //=====================================================================
00067 
00068 
00069 
00070 } // namespace creaImageIO
00071 
00072 
00073 
00074 #endif // #ifndef __creaImageIOImageReader_h_INCLUDED__