prime/include/Kyoto/Particles/CVectorElement.hpp

103 lines
2.7 KiB
C++
Raw Normal View History

2022-10-18 23:13:51 +00:00
#ifndef _CVECTORELEMENT
#define _CVECTORELEMENT
2022-10-19 03:03:50 +00:00
#include "types.h"
#include "Kyoto/Math/CVector3f.hpp"
#include "Kyoto/Particles/IElement.hpp"
#include "rstl/single_ptr.hpp"
class CVEFastConstant : public CVectorElement {
public:
CVEFastConstant(float x, float y, float z);
2022-10-19 03:51:49 +00:00
~CVEFastConstant() override;
2022-10-19 03:03:50 +00:00
bool GetValue(int frame, CVector3f& valOut) const override;
2022-10-19 03:51:49 +00:00
bool IsFastConstant() const override { return true; }
2022-10-19 03:03:50 +00:00
private:
CVector3f x4_val;
};
class CVEParticleLocation : public CVectorElement {
public:
2022-10-19 03:51:49 +00:00
~CVEParticleLocation() override {}
2022-10-19 03:03:50 +00:00
bool GetValue(int frame, CVector3f& valOut) const;
};
class CVEParticleColor : public CVectorElement {
public:
2022-10-19 03:51:49 +00:00
~CVEParticleColor() override {}
2022-10-19 03:03:50 +00:00
bool GetValue(int frame, CVector3f& valOut) const;
};
class CVEParticleVelocity : public CVectorElement {
public:
2022-10-19 03:51:49 +00:00
~CVEParticleVelocity() override {}
2022-10-19 03:03:50 +00:00
bool GetValue(int frame, CVector3f& valOut) const;
};
class CVEParticleSystemOrientationFront : public CVectorElement {
public:
2022-10-19 03:51:49 +00:00
~CVEParticleSystemOrientationFront() override {}
2022-10-19 03:03:50 +00:00
bool GetValue(int frame, CVector3f& valOut) const override;
};
class CVEParticleSystemOrientationUp : public CVectorElement {
public:
2022-10-19 03:51:49 +00:00
~CVEParticleSystemOrientationUp() override {}
2022-10-19 03:03:50 +00:00
bool GetValue(int frame, CVector3f& valOut) const override;
};
class CVEParticleSystemOrientationRight : public CVectorElement {
public:
2022-10-19 03:51:49 +00:00
~CVEParticleSystemOrientationRight() override {}
2022-10-19 03:03:50 +00:00
bool GetValue(int frame, CVector3f& valOut) const override;
};
class CVEParticleSystemTranslation : public CVectorElement {
public:
2022-10-19 03:51:49 +00:00
~CVEParticleSystemTranslation() override {}
2022-10-19 03:03:50 +00:00
bool GetValue(int frame, CVector3f& valOut) const override;
};
class CVEConstant : public CVectorElement {
public:
CVEConstant(CRealElement* x, CRealElement* y, CRealElement* z);
~CVEConstant();
bool GetValue(int frame, CVector3f& valOut) const override;
public:
CRealElement* x4_x;
CRealElement* x8_y;
CRealElement* xc_z;
};
2022-10-18 23:13:51 +00:00
2022-10-19 03:51:49 +00:00
class CVECone : public CVectorElement {
CVectorElement* x4_direction;
CRealElement* x8_magnitude;
CVector3f xc_xVec;
CVector3f x18_yVec;
public:
CVECone(CVectorElement* direction, CRealElement* magnitude);
~CVECone();
bool GetValue(int frame, CVector3f& valOut) const override;
};
class CVEAngleCone : public CVectorElement {
CRealElement* x4_angleXConstant;
CRealElement* x8_angleYConstant;
CRealElement* xc_angleXRange;
CRealElement* x10_angleYRange;
CRealElement* x14_magnitude;
public:
CVEAngleCone(CRealElement* angleXConstant, CRealElement* angleYConstant,
CRealElement* angleXRange, CRealElement* angleYRange, CRealElement* magnitude);
~CVEAngleCone();
bool GetValue(int frame, CVector3f& valOut) const override;
};
2022-10-18 23:13:51 +00:00
#endif // _CVECTORELEMENT