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

Last change on this file since 12 was 2, checked in by Sanahuja Guillaume, 9 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.