metaforce/Runtime/Particle/CParticleGen.hpp

53 lines
1.7 KiB
C++
Raw Normal View History

2016-04-13 06:07:23 +00:00
#ifndef __URDE_CPARTICLEGEN_HPP__
#define __URDE_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-04-13 06:07:23 +00:00
#endif // __URDE_CPARTICLEGEN_HPP__