00001 #ifndef __SPRITEFACTORY_H__
00002 #define __SPRITEFACTORY_H__
00003
00004 #ifndef DOXYGEN_IGNORE_TAG
00005
00026 #endif
00027
00028 #include <map>
00029
00030 #include "../Types/Colour.h"
00031 #include "../Types/Size2.h"
00032
00033 namespace NE
00034 {
00035 class Sprite;
00036
00037 class SpriteFactory
00038 {
00039 private:
00040
00041 std::map<std::pair<USize2, Colour>, Sprite*> spritesBank;
00042
00043 protected:
00044
00045 virtual Sprite* createSprite(const Colour& colour, const USize2& spriteSize)=0;
00046
00047 public:
00048 virtual ~SpriteFactory(void);
00049
00050 Sprite* createSpriteFromColour(const Colour& colour, const USize2& spriteSize);
00051 };
00052 }
00053
00054 bool operator< (const std::pair<USize2, Colour>& p1, const std::pair<USize2, Colour>& p2);
00055
00077 #endif