USGS

Isis 3.0 Developer's Reference (API)

Home

Quaternion.h
Go to the documentation of this file.
1 #ifndef Quaternion_h
2 #define Quaternion_h
3 
27 #include <string>
28 #include <vector>
29 
30 #include <SpiceUsr.h>
31 #include <SpiceZfc.h>
32 #include <SpiceZmc.h>
33 
34 namespace Isis {
51  class Quaternion {
52  public:
53  // constructors
54  Quaternion();
55  Quaternion(const std::vector<double> matrix);
56 
57  // destructor
58  ~Quaternion();
59 
60  //Methods
61 
62  std::vector<double> ToMatrix();
63 
64  std::vector<double> ToAngles(int axis3, int axis2, int axis1);
65 
66  void Set(std::vector<double>);
67 
69  std::vector<double> GetQuaternion() const {
70  return p_quaternion;
71  }
72  ;
73  Quaternion &operator=(const Quaternion &quat);
74 
75  Quaternion &operator*=(const Quaternion &quat);
76 
77  Quaternion operator*(const Quaternion &quat) const;
78 
79  Quaternion operator*(const double &scalar);
80 
94  double &operator[](int index) {
95  return p_quaternion.at(index);
96  };
97 
98 
99 
100  std::vector<double> Qxv(const std::vector<double> &vin);
101 
103 
104 
105 
106 
107  private:
108  std::vector<double> p_quaternion;
109  void Polish(Quaternion &quat);
110  };
111 };
112 
113 #endif
114