00001 ////////////////////////////////////////////////////////////////////// 00002 // Copyright (c) 2001-2003 David Pritchard <drpritch@alumni.uwaterloo.ca> 00003 // 00004 // This program is free software; you can redistribute it and/or 00005 // modify it under the terms of the GNU Lesser General Public License 00006 // as published by the Free Software Foundation; either 00007 // version 2 of the License, or (at your option) any later 00008 // version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU Lesser General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public License 00016 // along with this program; if not, write to the Free Software 00017 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00018 00019 #ifndef freecloth_gfx_gfxImageReaderPNM_h 00020 #define freecloth_gfx_gfxImageReaderPNM_h 00021 00022 #ifndef freecloth_gfx_package_h 00023 #include <freecloth/gfx/package.h> 00024 #endif 00025 00026 #ifndef freecloth_gfx_gfxImageReader_h 00027 #include <freecloth/gfx/gfxImageReader.h> 00028 #endif 00029 00030 //////////////////////////////////////////////////////////////////////////////// 00031 // FORWARD DECLARATIONS 00032 00033 template <class T> class GfxImageReaderFactorySimple; 00034 00035 /*! 00036 * \class GfxImageReaderPNM freecloth/gfx/gfxImagReaderPNM.h 00037 * \brief Class to read Portable Anymap Files (bitmaps, greymap, and pixmaps) 00038 * from disk. 00039 */ 00040 class GfxImageReaderPNM : public GfxImageReader 00041 { 00042 00043 public: 00044 00045 //----- types and enumerations ----- 00046 typedef GfxImageReaderFactorySimple< GfxImageReaderPNM > Factory; 00047 00048 //----- static member functions ----- 00049 static bool canRead( const String& path ); 00050 00051 //----- member functions ----- 00052 explicit GfxImageReaderPNM( const String& path ); 00053 00054 //! See base class. 00055 virtual ImagePtr readImage() const; 00056 00057 ImagePtr readImage( std::istream& ) const; 00058 00059 private: 00060 00061 //----- data members ----- 00062 const String _path; 00063 }; 00064 00065 #endif