prime/include/Kyoto/Particles/CEmitterElement.hpp

51 lines
1.3 KiB
C++
Raw Normal View History

2023-06-20 02:20:15 +00:00
#ifndef _CEMITTERELEMENT
#define _CEMITTERELEMENT
#include "Kyoto/Particles/IElement.hpp"
class CEESimpleEmitter : CEmitterElement {
public:
CEESimpleEmitter(CVectorElement* pos, CVectorElement* vel);
~CEESimpleEmitter();
bool GetValue(int frame, CVector3f& pPos, CVector3f& pVel) const;
private:
CVectorElement* x4_pos;
CVectorElement* x8_vel;
};
class CVESphere : CEmitterElement {
public:
CVESphere(CVectorElement* origin, CRealElement* radius, CRealElement* velocityMag);
~CVESphere();
bool GetValue(int frame, CVector3f& pPos, CVector3f& pVel) const;
private:
CVectorElement* x4_sphereOrigin;
CRealElement* x8_sphereRadius;
CRealElement* xc_velocityMag;
};
class CVEAngleSphere : CEmitterElement {
public:
CVEAngleSphere(CVectorElement* origin, CRealElement* radius, CRealElement* velocityMag,
CRealElement* angleXBias, CRealElement* angleYBias, CRealElement* angleXRange,
CRealElement* angleYRange);
~CVEAngleSphere();
bool GetValue(int frame, CVector3f& pPos, CVector3f& pVel) const;
private:
CVectorElement* x4_sphereOrigin;
CRealElement* x8_sphereRadius;
CRealElement* xc_velocityMag;
CRealElement* x10_angleXBias;
CRealElement* x14_angleYBias;
CRealElement* x18_angleXRange;
CRealElement* x1c_angleYRange;
};
#endif // _CEMITTERELEMENT