prime/include/Kyoto/Particles/CVectorElement.hpp

77 lines
1.8 KiB
C++

#ifndef _CVECTORELEMENT
#define _CVECTORELEMENT
#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);
~CVEFastConstant();
bool GetValue(int frame, CVector3f& valOut) const override;
bool IsFastConstant() const;
private:
CVector3f x4_val;
};
class CVEParticleLocation : public CVectorElement {
public:
~CVEParticleLocation();
bool GetValue(int frame, CVector3f& valOut) const;
};
class CVEParticleColor : public CVectorElement {
public:
~CVEParticleColor();
bool GetValue(int frame, CVector3f& valOut) const;
};
class CVEParticleVelocity : public CVectorElement {
public:
~CVEParticleVelocity();
bool GetValue(int frame, CVector3f& valOut) const;
};
class CVEParticleSystemOrientationFront : public CVectorElement {
public:
~CVEParticleSystemOrientationFront();
bool GetValue(int frame, CVector3f& valOut) const override;
};
class CVEParticleSystemOrientationUp : public CVectorElement {
public:
~CVEParticleSystemOrientationUp();
bool GetValue(int frame, CVector3f& valOut) const override;
};
class CVEParticleSystemOrientationRight : public CVectorElement {
public:
~CVEParticleSystemOrientationRight();
bool GetValue(int frame, CVector3f& valOut) const override;
};
class CVEParticleSystemTranslation : public CVectorElement {
public:
~CVEParticleSystemTranslation();
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;
};
#endif // _CVECTORELEMENT