//	PixelMap.h#ifndef PIXELMAP_H#define PIXELMAP_H#include "GifMaker.h"class PixelMap : public GifMaker{public:	PixelMap( const int pWidth, const int pHeight, const int pColors );	virtual ~PixelMap() { if (itsBuffer) delete itsBuffer; }		int IsGood( const int pX=0, const int pY=0 )	{ return (pX>=0 && pX<itsWidth && pY>=0 && pY<itsWidth && itsBuffer>0); }	RGB GetColor( const int pColorNum ) { return itsPalette(pColorNum); }		int GetPixel( const int pX, const int pY )	{ return (IsGood(pX,pY) ? itsBuffer[pX+pY*itsWidth] : 0); }	RGB GetPixelRGB( const int pX, const int pY )	{ return itsPalette( GetPixel(pX,pY) ); }		void SetColor( const int pCnum, const RGB& pColor )	{ itsPalette(pCnum) = pColor; }		int SetPixel( const int pX, const int pY, const int pColor );		void HLine( const int pX1, const int pX2, const int pY, const int pColor )	{		int endX = (pX2 < itsWidth ? pX2 : itsWidth );		for (int i=(pX1>0 ? pX1 : 0); i<endX; i++) SetPixel(i,pY,pColor);	}	void VLine( const int pY1, const int pY2, const int pX, const int pColor )	{		int endY = (pY2 < itsHeight ? pY2 : itsHeight );		for (int i=(pY1>0 ? pY1 : 0); i<endY; i++) SetPixel(pX,i,pColor);	}		void FillBox( const int pX1, const int pX2, const int pY1, const int pY2,					const int pColor );	protected:	unsigned char *itsBuffer;	Palette itsPalette;};#endif
