2016-02-13 09:02:47 +00:00
|
|
|
#ifndef __PSHAG_CPARTICLEGEN_HPP__
|
|
|
|
#define __PSHAG_CPARTICLEGEN_HPP__
|
2016-02-13 05:49:59 +00:00
|
|
|
|
|
|
|
#include "RetroTypes.hpp"
|
2016-03-04 23:04:53 +00:00
|
|
|
#include "Graphics/CLight.hpp"
|
2016-02-13 05:49:59 +00:00
|
|
|
#include "CWarp.hpp"
|
2016-03-04 23:04:53 +00:00
|
|
|
#include "zeus/CColor.hpp"
|
|
|
|
#include "zeus/CVector3f.hpp"
|
|
|
|
#include "zeus/CTransform.hpp"
|
|
|
|
#include "zeus/CAABox.hpp"
|
2016-02-13 05:49:59 +00:00
|
|
|
#include <list>
|
|
|
|
|
2016-03-04 23:04:53 +00:00
|
|
|
namespace urde
|
2016-02-13 05:49:59 +00:00
|
|
|
{
|
|
|
|
|
|
|
|
class CParticleGen
|
|
|
|
{
|
|
|
|
std::list<CWarp*> x8_modifierList;
|
|
|
|
public:
|
|
|
|
virtual ~CParticleGen() = default;
|
|
|
|
|
|
|
|
virtual void Update(double)=0;
|
|
|
|
virtual void Render()=0;
|
2016-03-04 23:04:53 +00:00
|
|
|
virtual void SetOrientation(const zeus::CTransform&)=0;
|
|
|
|
virtual void SetTranslation(const zeus::CVector3f&)=0;
|
|
|
|
virtual void SetGlobalOrientation(const zeus::CTransform&)=0;
|
|
|
|
virtual void SetGlobalTranslation(const zeus::CVector3f&)=0;
|
|
|
|
virtual void SetGlobalScale(const zeus::CVector3f&)=0;
|
|
|
|
virtual void SetLocalScale(const zeus::CVector3f&)=0;
|
2016-02-13 05:49:59 +00:00
|
|
|
virtual void SetParticleEmission(bool)=0;
|
2016-03-04 23:04:53 +00:00
|
|
|
virtual void SetModulationColor(const zeus::CColor&)=0;
|
|
|
|
virtual const zeus::CTransform& GetOrientation() const=0;
|
|
|
|
virtual const zeus::CVector3f& GetTranslation() const=0;
|
|
|
|
virtual const zeus::CTransform& GetGlobalOrientation() const=0;
|
|
|
|
virtual const zeus::CVector3f& GetGlobalTranslation() const=0;
|
|
|
|
virtual const zeus::CVector3f& GetGlobalScale() const=0;
|
|
|
|
virtual const zeus::CColor& GetModulationColor() const=0;
|
2016-02-13 05:49:59 +00:00
|
|
|
virtual bool IsSystemDeletable() const=0;
|
2016-03-04 23:04:53 +00:00
|
|
|
virtual std::pair<zeus::CAABox, bool> GetBounds() const=0;
|
2016-02-13 05:49:59 +00:00
|
|
|
virtual u32 GetParticleCount() const=0;
|
|
|
|
virtual bool SystemHasLight() const=0;
|
|
|
|
virtual CLight GetLight() const=0;
|
|
|
|
virtual bool GetParticleEmission() const=0;
|
|
|
|
virtual void DestroyParticles()=0;
|
2016-02-18 04:44:06 +00:00
|
|
|
virtual void Reset()=0;
|
2016-02-13 05:49:59 +00:00
|
|
|
|
|
|
|
virtual void AddModifier(CWarp* mod);
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2016-02-13 09:02:47 +00:00
|
|
|
#endif // __PSHAG_CPARTICLEGEN_HPP__
|