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);
|
2023-02-06 17:01:01 +00:00
|
|
|
~CVEFastConstant() override;
|
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
|
|
|
bool IsFastConstant() const override { return true; }
|
2022-10-19 03:03:50 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
CVector3f x4_val;
|
|
|
|
};
|
|
|
|
|
|
|
|
class CVEParticleLocation : public CVectorElement {
|
|
|
|
public:
|
2023-02-06 17:01:01 +00:00
|
|
|
~CVEParticleLocation() override {}
|
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
2022-10-19 03:03:50 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CVEParticleColor : public CVectorElement {
|
|
|
|
public:
|
2023-02-06 17:01:01 +00:00
|
|
|
~CVEParticleColor() override {}
|
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
2022-10-19 03:03:50 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CVEParticleVelocity : public CVectorElement {
|
|
|
|
public:
|
2023-02-06 17:01:01 +00:00
|
|
|
~CVEParticleVelocity() override {}
|
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
2022-10-19 03:03:50 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CVEParticleSystemOrientationFront : public CVectorElement {
|
|
|
|
public:
|
2023-02-06 17:01:01 +00:00
|
|
|
~CVEParticleSystemOrientationFront() override {}
|
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
2022-10-19 03:03:50 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CVEParticleSystemOrientationUp : public CVectorElement {
|
|
|
|
public:
|
2023-02-06 17:01:01 +00:00
|
|
|
~CVEParticleSystemOrientationUp() override {}
|
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
2022-10-19 03:03:50 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CVEParticleSystemOrientationRight : public CVectorElement {
|
|
|
|
public:
|
2023-02-06 17:01:01 +00:00
|
|
|
~CVEParticleSystemOrientationRight() override {}
|
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
2022-10-19 03:03:50 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CVEParticleSystemTranslation : public CVectorElement {
|
|
|
|
public:
|
2023-02-06 17:01:01 +00:00
|
|
|
~CVEParticleSystemTranslation() override {}
|
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
2022-10-19 03:03:50 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CVEConstant : public CVectorElement {
|
|
|
|
public:
|
|
|
|
CVEConstant(CRealElement* x, CRealElement* y, CRealElement* z);
|
|
|
|
~CVEConstant();
|
2023-02-06 17:01:01 +00:00
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
2022-10-19 03:03:50 +00:00
|
|
|
|
|
|
|
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();
|
2023-02-06 17:01:01 +00:00
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
2022-10-19 03:51:49 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
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();
|
2023-02-06 17:01:01 +00:00
|
|
|
bool GetValue(int frame, CVector3f& valOut) const override;
|
2022-10-19 03:51:49 +00:00
|
|
|
};
|
|
|
|
|
2022-10-18 23:13:51 +00:00
|
|
|
#endif // _CVECTORELEMENT
|