#ifndef __QUATERNION_H__
#define __QUATERNION_H__

#include <iostream>
#include <cassert>
#include <cmath>

#include "vector4.h"

#include "public.h"


namespace xrt {

class Matrix4;

class PUBLIC Quaternion: public Vector4
{
public:
	Quaternion (void) : Vector4 () { }
	Quaternion (float x, float y, float z, float w) : Vector4 (x, y, z, w) { }
	Quaternion (const Matrix4&);
	Matrix4 toMatrix () const;
	friend Quaternion slerp (float, const Quaternion&, const Quaternion&);
};


};  /* end namespace xrt */


#endif  /* !defined(__QUATERNION_H__) */