Euler.h 739 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef _EULER_H_
  2. #define _EULER_H_
  3. #include "Common.h"
  4. #include "MathForwardDecls.h"
  5. namespace M {
  6. /// Used for rotations. It cannot describe a rotation accurately though
  7. class Euler
  8. {
  9. public:
  10. // data members
  11. float x, y, z;
  12. // accessors
  13. float& operator [](uint i);
  14. float operator [](uint i) const;
  15. float& bank();
  16. float bank() const;
  17. float& heading();
  18. float heading() const;
  19. float& attitude();
  20. float attitude() const;
  21. // constructors & distructors
  22. explicit Euler();
  23. explicit Euler(float x, float y, float z);
  24. Euler(const Euler& b);
  25. explicit Euler(const Quat& q);
  26. explicit Euler(const Mat3& m3);
  27. // other
  28. void print() const;
  29. };
  30. } // end namespace
  31. #include "Euler.inl.h"
  32. #endif