source: flair-src/trunk/lib/FlairCore/src/OneAxisRotation.h@ 144

Last change on this file since 144 was 144, checked in by Bayard Gildas, 5 years ago

Go!

File size: 1.8 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
18class OneAxisRotation_impl;
19
20namespace flair {
21namespace gui {
22class LayoutPosition;
23}
24
25namespace core {
26class Vector3D;
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 Vector3D to rotate
60 */
61 void ComputeRotation(core::Vector3D &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 float GetAngle() const;
85 int GetAxis() const;
86
87private:
88 const class OneAxisRotation_impl *pimpl_;
89};
90
91} // end namespace core
92} // end namespace flair
93
94#endif // ONEAXISROTATION_H
Note: See TracBrowser for help on using the repository browser.