[2] | 1 | // %flair:license{ |
---|

[13] | 2 | // This file is part of the Flair framework distributed under the |
---|

| 3 | // CECILL-C License, Version 1.0. |
---|

[2] | 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 | |
---|

| 18 | class OneAxisRotation_impl; |
---|

| 19 | |
---|

[13] | 20 | namespace flair { |
---|

| 21 | namespace gui { |
---|

| 22 | class LayoutPosition; |
---|

[2] | 23 | } |
---|

| 24 | |
---|

[13] | 25 | namespace core { |
---|

| 26 | class Vector3D; |
---|

| 27 | class Euler; |
---|

| 28 | class Quaternion; |
---|

| 29 | class RotationMatrix; |
---|

[2] | 30 | |
---|

[13] | 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 | */ |
---|

| 38 | class OneAxisRotation : public gui::GroupBox { |
---|

| 39 | public: |
---|

| 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); |
---|

[2] | 49 | |
---|

[13] | 50 | /*! |
---|

| 51 | * \brief Destructor |
---|

| 52 | * |
---|

| 53 | */ |
---|

| 54 | ~OneAxisRotation(); |
---|

[2] | 55 | |
---|

[13] | 56 | /*! |
---|

| 57 | * \brief Compute rotation |
---|

| 58 | * |
---|

| 59 | * \param vector Vector3D to rotate |
---|

| 60 | */ |
---|

| 61 | void ComputeRotation(core::Vector3D &vector) const; |
---|

[2] | 62 | |
---|

[13] | 63 | /*! |
---|

| 64 | * \brief Compute rotation |
---|

| 65 | * |
---|

| 66 | * \param euler Euler angle to rotate |
---|

| 67 | */ |
---|

| 68 | void ComputeRotation(core::Euler &euler) const; |
---|

[2] | 69 | |
---|

[13] | 70 | /*! |
---|

| 71 | * \brief Compute rotation |
---|

| 72 | * |
---|

| 73 | * \param quaternion Quaternion to rotate |
---|

| 74 | */ |
---|

| 75 | void ComputeRotation(core::Quaternion &quaternion) const; |
---|

[2] | 76 | |
---|

[13] | 77 | /*! |
---|

| 78 | * \brief Compute rotation |
---|

| 79 | * |
---|

| 80 | * \param matrix RotationMatrix to rotate |
---|

| 81 | */ |
---|

| 82 | void ComputeRotation(core::RotationMatrix &matrix) const; |
---|

[2] | 83 | |
---|

[13] | 84 | private: |
---|

| 85 | const class OneAxisRotation_impl *pimpl_; |
---|

| 86 | }; |
---|

[2] | 87 | |
---|

| 88 | } // end namespace core |
---|

| 89 | } // end namespace flair |
---|

| 90 | |
---|

| 91 | #endif // ONEAXISROTATION_H |
---|