cheshirekow  v0.1.0
euler_angles.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 Josh Bialkowski (jbialk@mit.edu)
3  *
4  * This file is part of fiber.
5  *
6  * fiber is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * fiber is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with fiber. If not, see <http://www.gnu.org/licenses/>.
18  */
24 #ifndef FIBER_EULER_ANGLES_H_
25 #define FIBER_EULER_ANGLES_H_
26 
27 namespace fiber {
28 namespace euler {
29 
31 
39 template <typename Scalar, int Axis1, int Axis2, int Axis3>
40 class Angles : public Matrix<Scalar, 3, 1> {
41  public:
43 
44  Angles() {}
45 
48  Angles(Scalar a, Scalar b, Scalar c)
49  : MatrixBase(a, b, c) {
50  }
51 
53  static_assert(
55  "There is no conversion from quaternions to this euler angle set");
57  }
58 
59  friend void EulerAnglesToQuaternion<Scalar, Axis1, Axis2, Axis3>(
62 };
63 
67 
71 
72 } // namespace euler
73 } // namespace fiber
74 
75 #endif // FIBER_EULER_ANGLES_H_
Angles< float, _1, _2, _1 > Angles121f
Definition: euler_angles.h:68
construction euler angles from quaternion, only certain sequences can be constructed this way ...
Angles< float, _1, _2, _3 > Angles123f
Definition: euler_angles.h:69
Angles< float, _3, _1, _3 > Angles313f
Definition: euler_angles.h:70
Angles< double, _3, _1, _3 > Angles313d
Definition: euler_angles.h:66
Angles< double, _1, _2, _3 > Angles123d
Definition: euler_angles.h:65
Angles(const Quaternion< Scalar > &q)
Definition: euler_angles.h:52
A vector of euler angles.
Definition: euler_angles.h:40
Angles(Scalar a, Scalar b, Scalar c)
We require at least two values so as to disambiguate the constructor from the construct-by-rvalue con...
Definition: euler_angles.h:48
Matrix< Scalar, 3, 1 > MatrixBase
Definition: euler_angles.h:42
Angles< double, _1, _2, _1 > Angles121d
Definition: euler_angles.h:64