mirror of
https://github.com/ENSL/NS.git
synced 2024-12-11 05:11:27 +00:00
44 lines
792 B
C
44 lines
792 B
C
|
#ifndef UTIL_QUAT_H
|
||
|
#define UTIL_QUAT_H
|
||
|
|
||
|
/**
|
||
|
* Quaternion class.
|
||
|
*/
|
||
|
class Quat
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
|
||
|
Quat();
|
||
|
Quat(float x, float y, float z, float w);
|
||
|
Quat(const float angles[3]);
|
||
|
Quat(const float xAxis[3], const float yAxis[3], const float zAxis[3]);
|
||
|
Quat(float angle, const float axis[3]);
|
||
|
|
||
|
/**
|
||
|
* For a unit quaternion, the conjugate is the inverse.
|
||
|
*/
|
||
|
Quat Conjugate() const;
|
||
|
|
||
|
Quat Unit() const;
|
||
|
|
||
|
void GetVectors(float xAxis[3], float yAxis[3], float zAxis[3]) const;
|
||
|
|
||
|
void GetAngles(float outAngles[3]) const;
|
||
|
|
||
|
public:
|
||
|
|
||
|
float x;
|
||
|
float y;
|
||
|
float z;
|
||
|
float w;
|
||
|
|
||
|
};
|
||
|
|
||
|
Quat operator*(const Quat& q1, const Quat& q2);
|
||
|
|
||
|
Quat ConstantRateLerp(const Quat& src, const Quat& dst, float amount);
|
||
|
|
||
|
#endif
|
||
|
|