#pragma once #ifdef GAMETOOLS_ILLUMINATION_MODULE #include "Ogre.h" namespace Ogre { class _OgreExport SpriteSet : public BillboardSet { public: SpriteSet( const String& name, unsigned int poolSize = 20, bool externalDataSource = false): BillboardSet(name, poolSize, externalDataSource) {} virtual ~SpriteSet(){} /** Begin injection of billboard data; applicable when constructing the BillboardSet for external data use. */ void beginBillboards(void); /// Define a billboard. void injectBillboard(const Billboard& bb); const String& getMovableType(void) const; /** Overridden from MovableObject @see MovableObject */ virtual void getRenderOperation(RenderOperation& op); protected: /** Private constructor (instances cannot be created directly). */ SpriteSet(){} void genVertices( const Billboard& bb); void _createBuffers(void); }; /** Factory object for creating BillboardSet instances */ class _OgreExport SpriteSetFactory : public MovableObjectFactory { protected: MovableObject* createInstanceImpl( const String& name, const NameValuePairList* params); public: SpriteSetFactory() {} ~SpriteSetFactory() {} static String FACTORY_TYPE_NAME; const String& getType(void) const; void destroyInstance( MovableObject* obj); }; } #endif