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

Last change on this file since 167 was 167, checked in by Sanahuja Guillaume, 4 years ago

modifs pour template vectors

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.