NS/main/source/util/Quat.h
Karl 8552ac617c Import from old repository
git-svn-id: https://unknownworlds.svn.cloudforge.com/ns1@1 67975925-1194-0748-b3d5-c16f83f1a3a1
2005-03-09 01:31:56 +00:00

43 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