27 #ifndef _QUATERNION_H_
28 #define _QUATERNION_H_
35 template<
class fpType>
37 template<
class fpType>
48 template<
class fpType>
52 friend std::istream& operator>>(std::istream &stream,
53 Quaternion<fpT> &quat);
133 virtual void set(
const fpType *
data);
148 virtual void get(fpType *storage)
const;
171 virtual fpType
getNorm()
const;
185 virtual bool isUnit()
const;
229 virtual const fpType &
operator[](
int ind)
const;
268 const fpType &precision =
PRECISION)
const;
348 template<
class fpType>
349 std::ostream& operator<<(std::ostream &stream, const Quaternion<fpType> &quat);
358 template<
class fpType>
377 #endif // _QUATERNION_H_
virtual void operator*=(const Quaternion< fpType > &quat)
virtual void set(const fpType *data)
virtual bool compare(const Quaternion< fpType > &quat, const fpType &precision=PRECISION) const
virtual bool compareRotations(const Quaternion< fpType > &quat, fpType precision=PRECISION) const
virtual Vector3< fpType > getAxis() const
A class to store vectors of 3 elements.
Definition: Matrix3.h:35
virtual Quaternion< fpType > operator*(const Quaternion< fpType > &quat) const
std::istream & operator>>(std::istream &stream, Matrix3< fpType > &mat)
fpType & x
Definition: Quaternion.h:61
fpType & w
Definition: Quaternion.h:67
fpType & z
Definition: Quaternion.h:65
virtual void operator=(const Quaternion< fpType > &quat)
virtual fpType getNorm() const
virtual bool operator==(const Quaternion< fpType > &quat) const
A class to store 3x3 rotation matrices.
Definition: Matrix3.h:48
fpType data[4]
Definition: Quaternion.h:57
fpType & y
Definition: Quaternion.h:63
virtual Quaternion< fpType > getSqrtRotation() const
Quaternion< float > QuaternionF
Definition: Quaternion.h:373
#define PRECISION
Definition: global.h:51
virtual fpType getAngle() const
virtual Quaternion< fpType > getSqrtRotationTowards(const Quaternion< fpType > &quat) const
Quaternion< double > QuaternionD
Definition: Quaternion.h:366
virtual bool operator!=(const Quaternion< fpType > &quat) const
A class to store quaternions.
Definition: Matrix3.h:37
virtual Quaternion< fpType > getScaledAngleRotation(const fpType &mult) const
virtual const fpType & operator[](int ind) const
virtual void scaleAngle(const fpType &mult)
virtual bool isUnit() const
virtual Quaternion< fpType > inv() const