basic/geometry/IGS/IGS_Image.h

Go to the documentation of this file.
00001 #ifndef _IGS_IMAGE_H_
00002 #define _IGS_IMAGE_H_
00003 
00004 #include "synchronization/semaphore.h"
00005 #ifndef NOGL
00006 #include "opengl/glos.h"
00007 #include <gl/gl.h>
00008 #endif
00009 
00010 #include "IGS_Pixel.h"
00011 
00012 class IGS_Image
00013 {
00014 public:
00015         IGS_Image();
00016         IGS_Image( const IGS_Image& right );
00017         ~IGS_Image();
00018         void Draw() const;
00019         virtual void*& GetBuffer() = 0;
00020         virtual const void* const GetBuffer() const = 0;
00021         int GetSizeX() const;
00022         int GetSizeY() const;
00023         virtual void Initialize() = 0;
00024         virtual void ScreenCapture();
00025 
00026 #ifndef NOGL
00027         void SetFormat( const GLenum format );
00028 #endif
00029         void SetPosition( const int x, const int y );
00030         void SetResolution( const int xres, const int yres );
00031 #ifndef NOGL
00032         void SetType( const GLenum type );
00033         static int SizeOfType( const GLenum type );
00034 #endif
00035         bool Valid() const;
00036 
00037 protected:
00038 
00039         int ComputeIndex( const int x, const int y ) const;
00040         int ComputeMaxIndex() const;
00041         virtual void Invalidate();
00042 
00043         int guid;
00044         mutable Semaphore semaphore;
00045 //      void* pixels;           //void* yuck!
00046         int posX;
00047         int poxY;
00048         int sizeX;
00049         int sizeY;
00050 #ifndef NOGL
00051         GLenum format;
00052         GLenum type;
00053 #endif
00054 };
00055 
00056 #endif

Generated on Sat Apr 1 21:30:32 2006 for Motion Planning Kernel by  doxygen 1.4.6-NO