Attempted to correct template/friend wackiness.

This commit is contained in:
Chris Laurel 2001-04-30 04:00:00 +00:00
parent de29947385
commit c7d2bd9f7d

View file

@ -16,6 +16,18 @@
#include "vecmath.h"
template<class T> class Quaternion;
template<class T> Quaternion<T> operator+(Quaternion<T>, Quaternion<T>);
template<class T> Quaternion<T> operator-(Quaternion<T>, Quaternion<T>);
template<class T> Quaternion<T> operator*(Quaternion<T>, Quaternion<T>);
template<class T> Quaternion<T> operator*(T, Quaternion<T>);
template<class T> Quaternion<T> operator*(Vector3<T>, Quaternion<T>);
template<class T> bool operator==(Quaternion<T>, Quaternion<T>);
template<class T> bool operator!=(Quaternion<T>, Quaternion<T>);
template<class T> T real(Quaternion<T>);
template<class T> Vector3<T> imag(Quaternion<T>);
template<class T> class Quaternion
{
public:
@ -54,17 +66,17 @@ public:
bool isReal() const;
T normalize();
friend Quaternion operator+(Quaternion, Quaternion);
friend Quaternion operator-(Quaternion, Quaternion);
friend Quaternion operator*(Quaternion, Quaternion);
friend Quaternion operator*(T, Quaternion);
friend Quaternion operator*(Vector3<T>, Quaternion);
friend Quaternion<T> operator+(Quaternion<T>, Quaternion<T>);
friend Quaternion<T> operator-(Quaternion<T>, Quaternion<T>);
friend Quaternion<T> operator*(Quaternion<T>, Quaternion<T>);
friend Quaternion<T> operator*(T, Quaternion<T>);
friend Quaternion<T> operator*(Vector3<T>, Quaternion<T>);
friend bool operator==(Quaternion, Quaternion);
friend bool operator!=(Quaternion, Quaternion);
friend bool operator==(Quaternion<T>, Quaternion<T>);
friend bool operator!=(Quaternion<T>, Quaternion<T>);
friend T real(Quaternion);
friend Vector3<T> imag(Quaternion);
friend T real(Quaternion<T>);
friend Vector3<T> imag(Quaternion<T>);
// private:
T w, x, y, z;