Krig Game Engine
Loading...
Searching...
No Matches
Quaternion.h
Go to the documentation of this file.
1
12#ifndef _QUATERNION_H_
13#define _QUATERNION_H_
14
15#include "Matrix.h"
16#include "Vector.h"
17
18class Quaternion {
19 public:
20 Quaternion();
22 Quaternion(const Vector&);
24 Quaternion(const float&, const float&, const float&);
29 Quaternion(const Vector&, const float&);
30 Quaternion(const float&, const float&, const float&, const float&);
31 Quaternion(const Quaternion &);
32 ~Quaternion() {}
33
35 void normalize();
36
38 void buildFromEuler(const Vector&);
40 void buildFromEuler(const float&, const float&, const float&);
45 void buildFromAxis(const Vector&, const float&);
46
47 void loadMultIdentity();
48 void loadAddIdentity();
49
57
58 void buildRotationMatrix(Matrix&);
59
65 void slerp(const Quaternion &, const float&, const Quaternion&);
66
67 // accessor functions
68 float getX() const { return(x); }
69 float getY() const { return(y); }
70 float getZ() const { return(z); }
71 float getW() const { return(w); }
72
73 // overloaded operators
74 Quaternion operator+(const Quaternion&) const;
76 Quaternion operator*(const Quaternion&) const;
77 Quaternion& operator=(const Quaternion&);
78
79 private:
80 float x, y, z, w;
81};
82
83#endif
Representation of 4x4 matrix with common matrix operations.
Represent and operate on vectors.
Definition Matrix.h:16
void getEulerAngles(Vector &)
Definition Quaternion.cpp:121
void normalize()
Definition Quaternion.cpp:93
void buildFromAxis(const Vector &, const float &)
Definition Quaternion.cpp:82
void slerp(const Quaternion &, const float &, const Quaternion &)
Definition Quaternion.cpp:183
void buildFromEuler(const Vector &)
Definition Quaternion.cpp:40
Quaternion operator*(const Quaternion &) const
Definition Quaternion.cpp:241
Definition Vector.h:15