00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __TIL_DeepRasterReader__
00020 #define __TIL_DeepRasterReader__
00021
00022 #include "TIL_DeepReader.h"
00023 #include "TIL_Defines.h"
00024 #include "TIL_Sequence.h"
00025
00026 class TIL_DeepRaster;
00027 class UT_NetSocket;
00028
00029 class TIL_API TIL_DeepRasterReader : public TIL_DeepReader {
00030 public:
00031 TIL_DeepRasterReader();
00032 virtual ~TIL_DeepRasterReader();
00033
00034
00035 bool loadSequenceInfo(UT_NetSocket *sock,
00036 int &pid, bool &new_sequence);
00037
00038
00039
00040
00041
00042 void setResolution(int xres, int yres);
00043 int addPlane(const char *name,
00044 TIL_DataFormat storage,
00045 int vector_size);
00046 void createDeepRaster(bool change_vector2_to_vector3=true);
00047
00048 void setDeepRaster(TIL_DeepRaster *raster);
00049 TIL_DeepRaster *stealDeepRaster();
00050
00051 TIL_DeepRaster *getRaster() { return myRaster; }
00052 TIL_Sequence &getSequence() { return mySequence; }
00053
00054
00055
00056 fpreal getPercentComplete() const;
00057
00058
00059 const UT_String &getProgressMessage() const
00060 { return myProgressMessage; }
00061 const UT_String &getProgressAction() const
00062 { return myProgressAction; }
00063
00064
00065
00066 int getVersion() const { return myVersion; }
00067
00068 protected:
00069 void setSequence( const TIL_Sequence & src )
00070 { mySequence = src; }
00071
00072 virtual TIL_DeepRaster *allocRaster() const;
00073
00074 virtual int getXres() const;
00075 virtual int getYres() const;
00076 int getNumPlanes() const
00077 { return mySequence.getNumPlanes(); }
00078 virtual int getPlaneDataFormat(int plane_index) const;
00079
00080 virtual bool complete();
00081 virtual bool writeTile(int plane_index,
00082 int x0, int x1, int y0, int y1,
00083 void *data);
00084 virtual bool setTag(int plane, const char *tag, const char *val)=0;
00085 virtual bool setTag(int plane, const char *tag,
00086 const UT_StringArray &values) = 0;
00087 virtual bool setTag(int plane, const char *tag,
00088 const int *values, int nvalues=1);
00089 virtual bool setTag(int plane, const char *tag,
00090 const fpreal *values, int nvalues=1);
00091
00092 private:
00093 TIL_Sequence mySequence;
00094 TIL_DeepRaster *myRaster;
00095 UT_String myProgressMessage;
00096 UT_String myProgressAction;
00097 fpreal myProgress;
00098 int myPixelsRead;
00099 int myVersion;
00100 bool myOwnRaster;
00101 };
00102
00103 #endif