00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _SOTIFFIMAGERW_
00026 #define _SOTIFFIMAGERW_
00027
00028
00029 #include <Inventor/image/SoRasterImageRW.h>
00030 #include <Inventor/threads/SbThreadMutex.h>
00031
00032 SO_PIMPL_PUBLIC_DECLARATION(SoTIFFImageRW);
00033
00051 class SoTIFFImageRW : public SoRasterImageRW {
00052
00053 SO_IMAGE_RASTER_RW_HEADER()
00054 SO_PIMPL_PUBLIC_HEADER(SoTIFFImageRW);
00055
00056 public:
00057
00059 enum CompressionMode {
00063 NO_COMPRESSION,
00067 PACKBITS_COMPRESSION
00068 };
00069
00073 SoTIFFImageRW();
00074
00078 virtual ~SoTIFFImageRW();
00079
00084 virtual SbBool open(SoRasterImageIO* rasterImageIO, OpenMode openMode);
00085
00091 virtual SbBool write(SbRasterImage* rasterImage, unsigned int xPos = 0, unsigned int yPos = 0);
00092
00098 virtual SbBool read(SbRasterImage* rasterImage, SbBool infoOnly = FALSE);
00099
00104 virtual SbBool readRegion(SbRasterImage* rasterImage, const SbBox2i32& region);
00105
00110 void setCompressionMode(SoTIFFImageRW::CompressionMode compressionMode);
00111
00112
00116 SoTIFFImageRW::CompressionMode getCompressionMode() const;
00117
00118 private:
00122 virtual SbBool read(SbRasterImage* rasterImage, size_t imageIndex, SbBool infoOnly = FALSE);
00123
00127 virtual SbBool readRegion(SbRasterImage* rasterImage, size_t imageIndex, const SbBox2i32& region);
00128
00129 private:
00130 virtual void createSuffixList();
00131
00132 };
00133
00134 #endif
00135