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

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

initial commit flaircore

File size: 2.2 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
20
21namespace flair
22{
23namespace gui
24{
25    class LayoutPosition;
26}
27
28namespace core
29{
30    class Vector3D;
31    class Euler;
32    class Quaternion;
33    class RotationMatrix;
34
35    /*! \class OneAxisRotation
36    *
37    * \brief Class defining a rotation around one axis
38    *
39    * Axe and value of the rotation are placed in a GroupBox on ground station.
40    *
41    */
42    class OneAxisRotation: public gui::GroupBox
43    {
44        public:
45            /*!
46            * \brief Constructor
47            *
48            * Construct a OneAxisRotation at given position.
49            *
50            * \param position position to place the GroupBox
51            * \param name name
52            */
53            OneAxisRotation(const gui::LayoutPosition* position,std::string namel);
54
55            /*!
56            * \brief Destructor
57            *
58            */
59            ~OneAxisRotation();
60
61            /*!
62            * \brief Compute rotation
63            *
64            * \param vector Vector3D to rotate
65            */
66            void ComputeRotation(core::Vector3D& vector) const;
67
68            /*!
69            * \brief Compute rotation
70            *
71            * \param euler Euler angle to rotate
72            */
73            void ComputeRotation(core::Euler& euler) const;
74
75            /*!
76            * \brief Compute rotation
77            *
78            * \param quaternion Quaternion to rotate
79            */
80            void ComputeRotation(core::Quaternion& quaternion) const;
81
82            /*!
83            * \brief Compute rotation
84            *
85            * \param matrix RotationMatrix to rotate
86            */
87            void ComputeRotation(core::RotationMatrix& matrix) const;
88
89        private:
90            const class OneAxisRotation_impl* pimpl_;
91
92    };
93
94} // end namespace core
95} // end namespace flair
96
97#endif // ONEAXISROTATION_H
Note: See TracBrowser for help on using the repository browser.