#ifndef __RETRO_CPARTICLEGEN_HPP__ #define __RETRO_CPARTICLEGEN_HPP__ #include "../RetroTypes.hpp" #include "CParticleGen.hpp" #include "CTransform.hpp" #include "CColor.hpp" #include "CAABox.hpp" namespace Retro { class CWarp; class CLight; class CGenDescription { }; class CParticleGen { public: virtual ~CParticleGen() {} virtual void Update(double); virtual void Render(); virtual void SetOrientation(const Zeus::CTransform&); virtual void SetTranslation(const Zeus::CVector3f&); virtual void SetGlobalOrientation(const Zeus::CTransform&); virtual void SetGlobalTranslation(const Zeus::CVector3f&); virtual void SetGlobalScale(const Zeus::CVector3f&); virtual void SetLocalScale(const Zeus::CVector3f&); virtual void SetParticleEmission(bool); virtual void SetModulationColor(const Zeus::CColor&); virtual const Zeus::CTransform& GetOrientation() const; virtual const Zeus::CVector3f& GetTranslation() const; virtual const Zeus::CTransform& GetGlobalOrientation() const; virtual const Zeus::CVector3f& GetGlobalTranslation() const; virtual const Zeus::CVector3f& GetGlobalScale() const; virtual bool GetParticleEmission() const; virtual const Zeus::CColor& GetModulationColor() const; virtual bool IsSystemDeletable() const; virtual Zeus::CAABox GetBounds() const; virtual u32 GetParticleCount() const; virtual bool SystemHasLight() const; virtual CLight GetLight() const; virtual void DestroyParticles(); virtual void AddModifier(CWarp*); }; } #endif // __RETRO_CPARTICLEGEN_HPP__