Go to the documentation of this file.00001 #ifndef _IMAGE_H_
00002 #define _IMAGE_H_
00003
00004 #include <mitkIpPic.h>
00005 #include "texture.h"
00006 #include "item.h"
00007 #include <vector>
00008 #include <map>
00009
00014 class iil4mitkImage : public iil4mitkItem {
00015
00016 public:
00017
00021 iil4mitkImage (unsigned int size = 128);
00022
00026 virtual ~iil4mitkImage ();
00027
00031 enum {INTENSITY = 0, INTENSITY_ALPHA, COLOR, COLOR_ALPHA, RGB, RGBA};
00032
00043 virtual void setImage (const unsigned int width, const unsigned int height, const int model, unsigned char *data);
00044
00048 unsigned int imageWidth () const;
00049 unsigned int imageHeight () const;
00050
00055 virtual void setRegion (const unsigned int x, const unsigned y, const unsigned w, const unsigned h);
00056
00060 unsigned int regionX () const;
00061 unsigned int regionY () const;
00062 unsigned int regionWidth () const;
00063 unsigned int regionHeight () const;
00064
00068 virtual void clear ();
00069
00073
00074
00078 int model () const;
00079
00083 virtual void setInterpolation (const bool on = true);
00084
00088 bool interpolation () const;
00089
00093 virtual void invalidateTextures ();
00094
00095 public:
00096
00097 virtual float width () const;
00098 virtual float height () const;
00099 virtual void display (iil4mitkWidget* widget);
00100 virtual void remove (iil4mitkWidget* widget);
00101
00102 public:
00103
00107 static iil4mitkImage* find (const iil4mitkItem* item);
00108
00109 protected:
00110
00114 void drawTextures (iil4mitkWidget* widget);
00115
00119 void updateTexture (_iil4mitkTexture* texture, unsigned int x, unsigned int y, unsigned int w, unsigned int h);
00120
00128 virtual void copyImage (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned char* data, unsigned int width, unsigned int height, unsigned int xoffset, unsigned int yoffset);
00129
00135
00136
00140 unsigned int bpe ();
00141
00145 unsigned char* pixels ();
00146
00147
00148 private:
00149
00153 unsigned int _width, _height;
00154
00158 unsigned int _rx, _ry, _rw, _rh;
00159
00163 int _model;
00164
00168 bool _interpolation;
00169
00173 static const unsigned int _bytes [6];
00174
00178 unsigned char *_pixels;
00179
00183 GLenum _internal;
00184
00188 typedef std::vector<_iil4mitkTexture*> Textures;
00189 std::map<void*,Textures*> _textures;
00190
00191 unsigned int _size;
00192
00193 };
00194
00195 #endif