source: flair-dev/trunk/include/FlairCore/OneAxisRotation.h@ 50

Last change on this file since 50 was 50, checked in by Sanahuja Guillaume, 7 years ago

doc

File size: 1.9 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 OneAxisRotation.h
7 * \brief Class defining a rotation around one axis
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2013/04/17
10 * \version 4.0
11 */
12
13#ifndef ONEAXISROTATION_H
14#define ONEAXISROTATION_H
15
16#include <GroupBox.h>
17#include <Vector3D.h>
18
19class OneAxisRotation_impl;
20
21namespace flair {
22namespace gui {
23class LayoutPosition;
24}
25
26namespace core {
27class Euler;
28class Quaternion;
29class RotationMatrix;
30
31/*! \class OneAxisRotation
32*
33* \brief Class defining a rotation around one axis
34*
35* Axe and value of the rotation are placed in a GroupBox on ground station.
36*
37*/
38class OneAxisRotation : public gui::GroupBox {
39public:
40 /*!
41 * \brief Constructor
42 *
43 * Construct a OneAxisRotation at given position.
44 *
45 * \param position position to place the GroupBox
46 * \param name name
47 */
48 OneAxisRotation(const gui::LayoutPosition *position, std::string namel);
49
50 /*!
51 * \brief Destructor
52 *
53 */
54 ~OneAxisRotation();
55
56 /*!
57 * \brief Compute rotation
58 *
59 * \param vector Vector3Df to rotate
60 */
61 template <typename T> void ComputeRotation(core::Vector3D<T> &vector) const;
62
63 /*!
64 * \brief Compute rotation
65 *
66 * \param euler Euler angle to rotate
67 */
68 void ComputeRotation(core::Euler &euler) const;
69
70 /*!
71 * \brief Compute rotation
72 *
73 * \param quaternion Quaternion to rotate
74 */
75 void ComputeRotation(core::Quaternion &quaternion) const;
76
77 /*!
78 * \brief Compute rotation
79 *
80 * \param matrix RotationMatrix to rotate
81 */
82 void ComputeRotation(core::RotationMatrix &matrix) const;
83
84 /*!
85 * \brief Get angle
86 *
87 * \return angle in radians
88 */
89 float GetAngle() const;
90 int GetAxis() const;
91
92private:
93 const class OneAxisRotation_impl *pimpl_;
94};
95
96} // end namespace core
97} // end namespace flair
98
99#endif // ONEAXISROTATION_H
Note: See TracBrowser for help on using the repository browser.