/**
 * @class kQuat
 * @brief Quaternions used to represent rotations
 */

class kQuat
{
public:

	kQuat(float x, float y, float z, float w);
	kQuat(float w, kVec3 &in point);
	kQuat(const kQuat &in other);
	kQuat opMul(const kQuat &in other);
	kQuat opSub(const kQuat &in other);
	kQuat opAdd(const kQuat &in other);
	kQuat &Normalize();
	kQuat ToQuaternion();
	const kVec3 &opMulAssign(const kQuat &in other);
	kVec3 opMul(const kQuat &in other);
	kQuat &opAssign(const kQuat &in other);
	float w;
};
