mirror of https://github.com/PrimeDecomp/prime.git
51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
|
#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
|