source: flair-dev/trunk/include/FlairCore/Euler.h@ 12

Last change on this file since 12 was 2, checked in by Sanahuja Guillaume, 9 years ago

initial commit flaircore

File size: 3.6 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5/*!
6 * \file Euler.h
7 * \brief Class defining euler angles
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2013/05/02
10 * \version 4.0
11 */
12
13#ifndef EULER_H
14#define EULER_H
15
16namespace flair { namespace core {
17 class Quaternion;
18
19 /*! \class Euler
20 *
21 * \brief Class defining euler angles
22 *
23 * Euler angles are expressed in radians.
24 *
25 */
26 class Euler {
27 public:
28 /*!
29 * \brief Constructor
30 *
31 * Construct euler angles using specified values.
32 *
33 * \param roll roll value
34 * \param pitch pitch value
35 * \param yaw yaw value
36 */
37 Euler(float roll=0,float pitch=0,float yaw=0);
38
39 /*!
40 * \brief Destructor
41 *
42 */
43 ~Euler();
44
45 /*!
46 * \brief x axis rotation
47 *
48 * \param value rotation value in radians
49 */
50 //todo: passer par un quaternion
51 //void RotateX(float value);
52
53 /*!
54 * \brief x axis rotation
55 *
56 * \param value rotation value in degrees
57 */
58 //void RotateXDeg(float value);
59
60 /*!
61 * \brief y axis rotation
62 *
63 * \param value rotation value in radians
64 */
65 //void RotateY(float value);
66
67 /*!
68 * \brief y axis rotation
69 *
70 * \param value rotation value in degrees
71 */
72 //void RotateYDeg(float value);
73
74 /*!
75 * \brief z axis rotation
76 *
77 * \param value rotation value in radians
78 */
79 //void RotateZ(float value);
80
81 /*!
82 * \brief z axis rotation
83 *
84 * \param value rotation value in degrees
85 */
86 //void RotateZDeg(float value);
87
88 /*!
89 * \brief Convert to quaternion
90 *
91 * \param quaternion output quaternion
92 */
93 void ToQuaternion(Quaternion &quaternion) const;
94
95 /*!
96 * \brief Convert to quaternion
97 *
98 * \return quaternion
99 */
100 Quaternion ToQuaternion(void) const;
101 /*!
102 * \brief Convert from radian to degree
103 *
104 * \param radianValue value in radian
105 *
106 * \return value in degree
107 */
108 static float ToDegree(float radianValue);
109
110 /*!
111 * \brief Convert from degree to radian
112 *
113 * \param degreeValue value in degree
114 *
115 * \return value in radian
116 */
117 static float ToRadian(float degreeValue);
118
119 /*!
120 * \brief Compute yaw distance
121 *
122 * Compute yaw distance from given angle. This is the minimum distance.
123 *
124 * \param angle starting angle
125 *
126 * \return value distance in radian
127 */
128 float YawDistanceFrom(float angle) const;
129
130 /*!
131 * \brief roll value
132 */
133 float roll;
134
135 /*!
136 * \brief pitch value
137 */
138 float pitch;
139
140 /*!
141 * \brief yaw value
142 */
143 float yaw;
144
145 Euler& operator=(const Euler &euler);
146
147 };
148
149} // end namespace core
150} // end namespace flair
151
152#endif // EULER_H
Note: See TracBrowser for help on using the repository browser.