Represent a rotation function. More...
#include <rotation.hh>

Public Types | |
| typedef algebra::vec< n, C > | argument |
| typedef Function_v2v< void > | category |
| typedef C | data_t |
| Type of the underlying data stored in vectors and matrices. | |
| typedef rotation< n, C > | exact_t |
| typedef rotation< n, C > | invert |
| Type of the inverse function. | |
| typedef algebra::h_mat< dim, C > | matrix |
| typedef void | mutable_result |
| typedef algebra::vec< n, C > | result |
Public Member Functions | |
| invert | inv () const |
| Return the inverse function. | |
| const matrix & | mat () const |
| algebra::vec< n, C > | operator() (const algebra::vec< n, C > &x) const |
| algebra::vec< n, C > | operator() (const algebra::vec< n, C > &v) const |
| Perform the rotation of the given vector. | |
| rotation (const algebra::quat &q) | |
| Constructor with quaternion. | |
| rotation () | |
| Constructor without argument. | |
| rotation (const algebra::h_mat< n, C > &m) | |
| Constructor with h_mat. | |
| rotation (C alpha, const algebra::vec< n, C > &axis) | |
| Constructor with radian alpha and a facultative direction (rotation axis). | |
| void | set_alpha (C alpha) |
| Set a new grade alpha. | |
| void | set_axis (const algebra::vec< n, C > &axis) |
| Set a new rotation axis. | |
Static Public Attributes | |
| static const unsigned | dim |
Protected Member Functions | |
| bool | check_rotation (const algebra::quat &q) |
| void | update () |
Protected Attributes | |
| C | alpha_ |
| algebra::vec< n, C > | axis_ |
| matrix | m_ |
Represent a rotation function.
Definition at line 147 of file rotation.hh.
typedef algebra::vec< n, C > mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , C, rotation< n, C > >::argument [inherited] |
Definition at line 53 of file x2x_linear_impl.hh.
typedef Function_v2v<void> mln::Function_v2v< rotation< n, C > >::category [inherited] |
Reimplemented from mln::Function< rotation< n, C > >.
Definition at line 126 of file function.hh.
| typedef C mln::fun::x2x::rotation< n, C >::data_t |
Type of the underlying data stored in vectors and matrices.
Definition at line 152 of file rotation.hh.
typedef rotation< n, C > mln::Object< rotation< n, C > >::exact_t [inherited] |
| typedef rotation<n,C> mln::fun::x2x::rotation< n, C >::invert |
Type of the inverse function.
Definition at line 155 of file rotation.hh.
typedef algebra::h_mat<dim, C> mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , C, rotation< n, C > >::matrix [inherited] |
Definition at line 55 of file x2x_linear_impl.hh.
typedef void mln::Function_v2v< rotation< n, C > >::mutable_result [inherited] |
Definition at line 127 of file function.hh.
typedef algebra::vec< n, C > mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , C, rotation< n, C > >::result [inherited] |
Definition at line 54 of file x2x_linear_impl.hh.
| mln::fun::x2x::rotation< n, C >::rotation | ( | ) | [inline] |
Constructor without argument.
Definition at line 192 of file rotation.hh.
| mln::fun::x2x::rotation< n, C >::rotation | ( | C | alpha, | |
| const algebra::vec< n, C > & | axis | |||
| ) | [inline] |
Constructor with radian alpha and a facultative direction (rotation axis).
Definition at line 198 of file rotation.hh.
References mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C >, C, rotation< n, C > >::m_, and mln::fun::x2x::rotation< n, C >::update().
| mln::fun::x2x::rotation< n, C >::rotation | ( | const algebra::quat & | q | ) | [inline] |
Constructor with quaternion.
Update attributes.
Definition at line 208 of file rotation.hh.
References mln::fun::x2x::rotation< n, C >::alpha_, mln::fun::x2x::rotation< n, C >::axis_, mln::fun::x2x::rotation< n, C >::check_rotation(), mln::make::h_mat(), mln::algebra::quat::is_unit(), mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C >, C, rotation< n, C > >::m_, mln::algebra::vec< n, T >::normalize(), and mln::algebra::quat::to_vec().
| mln::fun::x2x::rotation< n, C >::rotation | ( | const algebra::h_mat< n, C > & | m | ) | [inline] |
Constructor with h_mat.
Definition at line 238 of file rotation.hh.
References mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C >, C, rotation< n, C > >::m_.
| bool mln::fun::x2x::rotation< n, C >::check_rotation | ( | const algebra::quat & | q | ) | [inline, protected] |
Definition at line 302 of file rotation.hh.
References mln::algebra::quat::is_unit(), mln::algebra::quat::rotate(), and mln::make::vec().
Referenced by mln::fun::x2x::rotation< n, C >::rotation().
| rotation< n, C > mln::fun::x2x::rotation< n, C >::inv | ( | ) | const [inline] |
Return the inverse function.
Definition at line 265 of file rotation.hh.
References mln::fun::x2x::rotation< n, C >::alpha_, and mln::fun::x2x::rotation< n, C >::axis_.
| const matrix& mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , C, rotation< n, C > >::mat | ( | ) | const [inherited] |
| algebra::vec< n, C > mln::fun::x2x::rotation< n, C >::operator() | ( | const algebra::vec< n, C > & | v | ) | const [inline] |
Perform the rotation of the given vector.
Definition at line 247 of file rotation.hh.
References mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C >, C, rotation< n, C > >::m_.
| algebra::vec< n, C > mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , C, rotation< n, C > >::operator() | ( | const algebra::vec< n, C > & | x | ) | const [inline, inherited] |
Definition at line 57 of file x2x_linear_impl.hh.
| void mln::fun::x2x::rotation< n, C >::set_alpha | ( | C | alpha | ) | [inline] |
Set a new grade alpha.
Definition at line 274 of file rotation.hh.
References mln::fun::x2x::rotation< n, C >::alpha_, and mln::fun::x2x::rotation< n, C >::update().
| void mln::fun::x2x::rotation< n, C >::set_axis | ( | const algebra::vec< n, C > & | axis | ) | [inline] |
Set a new rotation axis.
Definition at line 283 of file rotation.hh.
References mln::fun::x2x::rotation< n, C >::axis_, and mln::fun::x2x::rotation< n, C >::update().
| void mln::fun::x2x::rotation< n, C >::update | ( | ) | [inline, protected] |
Definition at line 294 of file rotation.hh.
References mln::fun::x2x::rotation< n, C >::alpha_, mln::fun::x2x::rotation< n, C >::axis_, mln::fun::x2x::internal::get_rot_h_mat(), and mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C >, C, rotation< n, C > >::m_.
Referenced by mln::fun::x2x::rotation< n, C >::rotation(), mln::fun::x2x::rotation< n, C >::set_alpha(), and mln::fun::x2x::rotation< n, C >::set_axis().
C mln::fun::x2x::rotation< n, C >::alpha_ [protected] |
Definition at line 183 of file rotation.hh.
Referenced by mln::fun::x2x::rotation< n, C >::inv(), mln::fun::x2x::rotation< n, C >::rotation(), mln::fun::x2x::rotation< n, C >::set_alpha(), and mln::fun::x2x::rotation< n, C >::update().
algebra::vec<n,C> mln::fun::x2x::rotation< n, C >::axis_ [protected] |
Definition at line 184 of file rotation.hh.
Referenced by mln::fun::x2x::rotation< n, C >::inv(), mln::fun::x2x::rotation< n, C >::rotation(), mln::fun::x2x::rotation< n, C >::set_axis(), and mln::fun::x2x::rotation< n, C >::update().
const unsigned mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , C, rotation< n, C > >::dim [static, inherited] |
Definition at line 51 of file x2x_linear_impl.hh.
matrix mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , C, rotation< n, C > >::m_ [protected, inherited] |
Definition at line 68 of file x2x_linear_impl.hh.
Referenced by mln::fun::x2x::rotation< n, C >::operator()(), mln::fun::x2x::rotation< n, C >::rotation(), and mln::fun::x2x::rotation< n, C >::update().
1.7.1