]> Creatis software - creaImageIO.git/commitdiff
*** empty log message ***
authorguigues <guigues>
Mon, 23 Feb 2009 10:22:43 +0000 (10:22 +0000)
committerguigues <guigues>
Mon, 23 Feb 2009 10:22:43 +0000 (10:22 +0000)
src2/CMakeLists.txt
src2/creaImageIOAbstractImageReader.h [moved from src2/creaImageIOSpecificImageReader.h with 73% similarity]
src2/creaImageIODicomImageReader.h
src2/creaImageIOImageReader.cpp
src2/creaImageIOImageReader.h
src2/creaImageIOTreeHandlerImageAdder.cpp
src2/creaImageIOVtkImageReader.h

index 8a40709ed14ad8a388e71626d3878b4dcb671ec5..29c67a1828a558257da3139b9da797056c529938 100644 (file)
@@ -17,7 +17,7 @@ SET( SRCS
   creaImageIOTreeComparators
 
   # Image readers
-  creaImageIOSpecificImageReader
+  creaImageIOAbstractImageReader
   creaImageIOVtkImageReader
   creaImageIODicomImageReader
   creaImageIOImageReader
similarity index 73%
rename from src2/creaImageIOSpecificImageReader.h
rename to src2/creaImageIOAbstractImageReader.h
index abb63708f5e20ba171492f6c802cd21336514a30..3d8ac24b6807fe43256ff38ba89c470015177e6b 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef __creaImageIOSpecificImageReader_h_INCLUDED__
-#define __creaImageIOSpecificImageReader_h_INCLUDED__
+#ifndef __creaImageIOAbstractImageReader_h_INCLUDED__
+#define __creaImageIOAbstractImageReader_h_INCLUDED__
 
 
 #include <vtkImageData.h>
@@ -17,15 +17,14 @@ namespace creaImageIO
    */
   
   //=====================================================================
-  /// Abstract specific image reader 
-  class SpecificImageReader 
+  /// Abstract image reader 
+  class AbstractImageReader 
   {
   public:
-    SpecificImageReader() {}
-    virtual ~SpecificImageReader() {}
+    AbstractImageReader() {}
+    virtual ~AbstractImageReader() {}
 
     const std::string& GetName() const { return mName; }
-
     virtual void PushBackExtensions(std::vector<std::string>&) {}
     virtual bool CanRead(const std::string& filename) { return false; }
     virtual vtkImageData* ReadImage(const std::string& filename) { return 0; }
@@ -45,4 +44,4 @@ namespace creaImageIO
 
 
 
-#endif // #ifndef __creaImageIOSpecificImageReader_h_INCLUDED__
+#endif // #ifndef __creaImageIOAbstractImageReader_h_INCLUDED__
index 9fbfa8817ec72a402a485a2e64e0784de0654942..d9e059562581392bdb5f166a2e17c5b72eba2e7d 100644 (file)
@@ -2,7 +2,7 @@
 #define __creaImageIODicomImageReader_h_INCLUDED__
 
 
-#include <creaImageIOSpecificImageReader.h>
+#include <creaImageIOAbstractImageReader.h>
 
 // forward decl
 class vtkGdcmReader;
@@ -16,8 +16,8 @@ namespace creaImageIO
    */
   
   //=====================================================================
-  /// Specific image reader for DICOM images 
-  class DicomImageReader : virtual public SpecificImageReader
+  /// Concrete image reader for DICOM images 
+  class DicomImageReader : virtual public AbstractImageReader
   {
   public:
     DicomImageReader();
index a7937ccc8e7e017816a2f359c849ace037d0a514..96dec5977e7b941304f8262656b8d5b4d1dd4e47 100644 (file)
@@ -22,40 +22,6 @@ namespace creaImageIO
   
 
 
-  //===================================================================== 
-  /*
-  void IRFillFields(DicomNode* node, 
-                 GDCM_NAME_SPACE::File* gdcmFile)
-  {
-    const DicomNodeTypeDescription::FieldDescriptionMapType& dm
-      = node->GetTypeDescription().GetFieldDescriptionMap();
-    DicomNodeTypeDescription::FieldDescriptionMapType::const_iterator i;
-    
-       
-    DicomNode::FieldValueMapType& vm = node->GetFieldValueMap();
-    for (i=dm.begin(); i!=dm.end(); ++i)
-      {
-       if ( (i->second.flags==0) && 
-            (i->second.group!=0) && 
-            (i->second.element!=0) )
-         {
-               uint16_t gr = i->second.group;
-               uint16_t el = i->second.element;
-
-               std::string val = gdcmFile->GetEntryString(gr,el);
-
-           vm[i->first] = irclean(val);
-         }
-       else 
-         {
-           vm[i->first] = "";
-         }
-      }
-  }
-  */
-  //=====================================================================
-
-
 
 
   //=====================================================================
@@ -114,7 +80,7 @@ namespace creaImageIO
   ImageReader::~ImageReader()
   {
     //    std::cout << "#### ImageReader::~ImageReader()"<<std::endl;
-    std::vector<SpecificImageReader*>::iterator i;
+    std::vector<AbstractImageReader*>::iterator i;
     for (i=mReader.begin(); i!=mReader.end(); i++)
       {
        //      std::cout << "#### ImageReader::UnRegister("
@@ -131,25 +97,25 @@ namespace creaImageIO
   //=====================================================================
 
   //=====================================================================
-  void ImageReader::Register(SpecificImageReader* r)
+  void ImageReader::Register(AbstractImageReader* r)
   {
     //    std::cout << "#### ImageReader::Register("<<r->GetName()<<")"<<std::endl;
     mReader.push_back(r);
-    r->PushBackExtensions(mKnownExtensions);
+    //    r->PushBackExtensions(mKnownExtensions);
   }
   //=====================================================================
 
   //=====================================================================
   // Returns true iff the file is readable
-  bool ImageReader::CanRead( const std::string& filename, 
-                            const std::string& exclude )
+  bool ImageReader::CanRead( const std::string& filename ) 
+  //                        const std::string& exclude )
   {
     //    std::cout << "## ImageReader::CanRead("<<filename<<")"<<std::endl;
     bool ok = false;
-    std::vector<SpecificImageReader*>::iterator i;
+    std::vector<AbstractImageReader*>::iterator i;
     for (i=mReader.begin(); i!=mReader.end(); i++)
       {
-       if ((*i)->GetName()==exclude) continue;
+       //      if ((*i)->GetName()==exclude) continue;
        ok = (*i)->CanRead(filename);
        if (ok) 
          {
@@ -164,13 +130,13 @@ namespace creaImageIO
 
   //=====================================================================
   // Reads the file (CanRead must be called before : no test here)
-  vtkImageData*  ImageReader::ReadImage( const std::string& filename
-                                        const std::string& exclude )
+  vtkImageData*  ImageReader::ReadImage( const std::string& filename)
+  //                                    const std::string& exclude )
   {
     //    std::cout << "## ImageReader::Read("<<filename<<")"<<std::endl;
     if (mLastFilename!=filename)
       {
-       if (!CanRead(filename,exclude)) 
+       if (!CanRead(filename)) //,exclude)) 
          { 
            //      std::cout << "  -- Cannot read image "<<std::endl;
            vtkImageData* im = vtkImageData::New();
@@ -210,5 +176,16 @@ namespace creaImageIO
   //=====================================================================
 
 
-
+  //=====================================================================
+  /// Pushes back all kwown extensions (without dot) in the vector given
+  void ImageReader::PushBackExtensions(std::vector<std::string>& v)
+  {
+    std::vector<AbstractImageReader*>::iterator i;
+    for (i=mReader.begin(); i!=mReader.end(); i++)
+      {
+       (*i)->PushBackExtensions(v);
+      }
+  }
+  //=====================================================================
+  
 } // namespace creaImageIO
index 36fafd4a452f75143734799c6f84657c5703ba99..af7dee63897f7cc1b4433e6531954777ae80b9c2 100644 (file)
@@ -1,41 +1,32 @@
 #ifndef __creaImageIOImageReader_h_INCLUDED__
 #define __creaImageIOImageReader_h_INCLUDED__
 
-
-#include <vtkImageData.h>
-#include <string>
-#include <vector>
-#include <map>
-#include <creaImageIOTreeAttributeMapType.h>
+#include <creaImageIOAbstractImageReader.h>
 
 namespace creaImageIO
 {
 
 
-       /**
-       * \ingroup Model
-       */
-  //=====================================================================
-  /// Image reader of a specific image format
-  class SpecificImageReader;
-  //=====================================================================
-
+  /**
+   * \ingroup ReadWrite
+   */
   //=====================================================================
-  /// Generic image reader which stores a vector of SpecificImageReader
-  class ImageReader
+  /// Generic image reader which uses all the specific concrete image reader
+/// of the lib (tif, jpg, dicom, ...)
+class ImageReader : virtual public AbstractImageReader
   {
   public:
     ImageReader();
     ~ImageReader();
 
+    /// Pushes back all kwown extensions (without dot) in the vector given
+    void PushBackExtensions(std::vector<std::string>&);
+
     /// Returns true iff the file is readable
-    bool CanRead( const std::string& filename, 
-                 const std::string& exclude = "");
+    bool CanRead( const std::string& filename);
     /// Reads and returns the image data. 
     /// Returns an "Unreadable image" picture if fails
-    vtkImageData* ReadImage( const std::string& filename,
-                            const std::string& exclude = "");
+    vtkImageData* ReadImage( const std::string& filename);
     
     /// Reads the attributes of the image.
     /// Requested attributes names are provided as keys 
@@ -45,20 +36,19 @@ namespace creaImageIO
     void ReadAttributes(const std::string& filename, 
                        tree::AttributeMapType& attr);
 
-    /// Returns the known extensions
-    const std::vector<std::string>& GetKnownExtensions()  
-    { return mKnownExtensions; }
+    /// Exclude specific readers 
+    /// TO DO...
+    
 
   protected:
     
-    void Register(SpecificImageReader*);
+    void Register(AbstractImageReader*);
 
-    std::vector<SpecificImageReader*> mReader;
-    std::vector<std::string> mKnownExtensions;
+    std::vector<AbstractImageReader*> mReader;
     vtkImageData* mUnreadableImage;
 
     std::string mLastFilename;
-    SpecificImageReader* mLastReader;
+    AbstractImageReader* mLastReader;
     
   private:
 
index 3f9d4aa8d32cb2512852cefeef2161d20b80e6f5..057f16eb51e994563a107e3d0f7bfd374c17ba37 100644 (file)
@@ -29,7 +29,7 @@ namespace creaImageIO
   //=====================================================================
   bool TreeHandlerImageAdder::IsHandledFile( const std::string& filename)
   {
-    return (mReader.CanRead(filename,""));
+    return (mReader.CanRead(filename));
   }
   //=====================================================================
 
index 8d28c76eb502ca8a08770add502fd72cbb74d014..836ba7f29509a186c9d21bcb1e7ffe77a5e86b7a 100644 (file)
@@ -2,7 +2,7 @@
 #define __creaImageIOVtkImageReader_h_INCLUDED__
 
 
-#include <creaImageIOSpecificImageReader.h>
+#include <creaImageIOAbstractImageReader.h>
 
 // forward decl
 class vtkImageReader2;
@@ -16,8 +16,8 @@ namespace creaImageIO
    */
   
   //=====================================================================
-  /// Specific image reader based on a vtkImageReader2 
-  class VtkImageReader : virtual public SpecificImageReader
+  /// Concrete image reader based on a vtkImageReader2 
+  class VtkImageReader : virtual public AbstractImageReader
   {
   public:
     VtkImageReader(vtkImageReader2* reader,