Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

ImageQueue

Go to the documentation of this file.
00001 // ImageQueue.h: interface for the ImageQueue class.
00002 //
00004 
00005 #if !defined(AFX_IMAGEQUEUE_H__894B468B_97A0_47FC_8C85_1B47D5C60DBD__INCLUDED_)
00006 #define AFX_IMAGEQUEUE_H__894B468B_97A0_47FC_8C85_1B47D5C60DBD__INCLUDED_
00007 
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011 
00012 #include "CImage"
00013 
00015 
00019 template <class T>
00020 class ImageQueue  
00021 {
00022 public:
00024         ImageQueue(int size, int x, int y);
00026         ReMake(int subset, int x, int y);
00027         virtual ~ImageQueue();
00029         ColorImage<T> & Pop(); 
00031         ColorImage<T> & Look() {return ImageList[currpic];}; 
00033         ColorImage<T> & Prev() {return ImageList[currpic==0?size-1:currpic-1];}; 
00035         ColorImage<T> & Next() {return ImageList[(currpic+1) % size];}; //Looks at the next image;
00037         ColorImage<T> & Middle(){return ImageList[int((size %2) + (size/2.0))];};
00038 private:        
00039         ColorImage<T> *ImageList;
00040         int size, currpic;
00041 };
00042 
00043 template <class T>
00044 ImageQueue<T>::ImageQueue(int size, int x, int y)
00045 {
00046         ImageList=new ColorImage<T>[size];
00047         for(int i=0; i<size; i++)
00048                 ImageList[i].SetSize(x,y);
00049         currpic=0;
00050 }
00051 
00052 template <class T>
00053 ImageQueue<T>::ReMake(int subset, int x, int y)
00054 {
00055         size = subset;
00056         delete [] ImageList;
00057         ImageList=new ColorImage<T>[size];
00058         for(int i=0; i<size; i++)
00059                 ImageList[i].SetSize(x,y);
00060         currpic=0;
00061 }
00062 
00063 template <class T>
00064 ColorImage<T> & ImageQueue<T>::Pop()
00065 {
00066                 int temp=currpic;
00067                 currpic=(currpic +1) %size;
00068                 return ImageList[temp];
00069 }
00070 
00071 template <class T>
00072 ImageQueue<T>::~ImageQueue()
00073 {
00074         delete[] ImageList;
00075 }
00076 
00077 #endif // !defined(AFX_IMAGEQUEUE_H__894B468B_97A0_47FC_8C85_1B47D5C60DBD__INCLUDED_)

Generated at Thu Apr 25 20:30:41 2002 for SuperParr by doxygen1.2.9.1 written by Dimitri van Heesch, © 1997-2001