#include <rotation.hh>
Public Types | |
typedef V | argument |
typedef Function_v2v< void > | category |
typedef V::coord | coord |
typedef E | exact_t |
typedef rotation< n, C > | invert |
Type of the inverse function. | |
typedef algebra::h_mat< dim, coord > | matrix |
typedef void | mutable_result |
typedef V | result |
Public Member Functions | |
invert | inv () const |
Return the invere function. | |
const matrix & | mat () const |
V | operator() (const V &x) const |
algebra::vec< n, C > | operator() (const algebra::vec< n, C > &v) const |
Perform the rotation of the given vector. | |
rotation (const algebra::h_mat< n, C > &m) | |
Constructor with h_mat. | |
rotation (const algebra::quat &q) | |
Constructor with quaternion. | |
rotation (C alpha, const algebra::vec< n, C > &axis) | |
Constructor with radian alpha and a facultative direction (rotation axis). | |
rotation () | |
Constructor without argument. | |
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 = V::dim |
Protected Member Functions | |
bool | check_rotation (const algebra::quat &q) |
void | update () |
Protected Attributes | |
C | alpha_ |
FIXME: Is it useful? | |
algebra::vec< n, C > | axis_ |
matrix | m_ |
Definition at line 137 of file rotation.hh.
typedef V mln::fun::internal::x2x_linear_impl_< V, E >::argument [inherited] |
Definition at line 52 of file x2x_linear_impl.hh.
typedef Function_v2v<void> mln::Function_v2v< E >::category [inherited] |
Reimplemented from mln::Function< E >.
Reimplemented in mln::Function_v2b< E >, mln::Function_v2b< f_box2d_t >, mln::Function_v2b< mln::fun::v2b::lnot< V > >, mln::Function_v2b< mln::fun::p2b::antilogy >, mln::Function_v2b< mln::fun::p2b::has< I > >, mln::Function_v2b< mln::fun::p2b::tautology >, mln::Function_v2b< keep_specific_colors >, mln::Function_v2b< my_box2d >, mln::Function_v2b< mln::topo::is_simple_cell< I > >, mln::Function_v2b< mln::world::inter_pixel::dim2::is_edge >, mln::Function_v2b< mln::world::inter_pixel::dim2::is_row_odd >, mln::Function_v2b< mln::world::inter_pixel::dim2::is_pixel >, mln::Function_v2b< mln::fun::v2b::threshold< V > >, mln::Function_v2b< mln::world::inter_pixel::is_separator >, mln::Function_v2b< mln::topo::is_n_face< N > >, mln::Function_v2b< not_to_remove >, mln::Function_v2b< mln::fun::p2b::chess >, mln::Function_v2b< f_box1d_t >, mln::Function_v2b< mln::world::inter_pixel::dim2::is_dot >, mln::Function_v2b< mln::fun::p2b::big_chess< B > >, mln::Function_v2b< mln::world::inter_pixel::is_pixel >, and mln::Function_v2b< f_box3d_t >.
Definition at line 93 of file function.hh.
typedef V::coord mln::fun::internal::x2x_linear_impl_< V, E >::coord [inherited] |
Definition at line 54 of file x2x_linear_impl.hh.
typedef E mln::Object< E >::exact_t [inherited] |
typedef rotation<n,C> mln::fun::x2x::rotation< n, C >::invert |
typedef algebra::h_mat<dim, coord> mln::fun::internal::x2x_linear_impl_< V, E >::matrix [inherited] |
Definition at line 55 of file x2x_linear_impl.hh.
typedef void mln::Function_v2v< E >::mutable_result [inherited] |
typedef V mln::fun::internal::x2x_linear_impl_< V, E >::result [inherited] |
Definition at line 53 of file x2x_linear_impl.hh.
mln::fun::x2x::rotation< n, C >::rotation | ( | ) | [inline] |
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 186 of file rotation.hh.
References mln::fun::internal::x2x_linear_impl_< V, E >::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 196 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_< V, E >::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 227 of file rotation.hh.
References mln::fun::internal::x2x_linear_impl_< V, E >::m_.
bool mln::fun::x2x::rotation< n, C >::check_rotation | ( | const algebra::quat & | q | ) | [inline, protected] |
Definition at line 291 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 invere function.
Definition at line 254 of file rotation.hh.
References mln::fun::x2x::rotation< n, C >::alpha_, and mln::fun::x2x::rotation< n, C >::axis_.
const x2x_linear_impl_< V, E >::matrix & mln::fun::internal::x2x_linear_impl_< V, E >::mat | ( | ) | const [inline, inherited] |
Definition at line 85 of file x2x_linear_impl.hh.
References mln::fun::internal::x2x_linear_impl_< V, E >::m_.
V mln::fun::internal::x2x_linear_impl_< V, E >::operator() | ( | const V & | x | ) | const [inline, inherited] |
Definition at line 57 of file x2x_linear_impl.hh.
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 236 of file rotation.hh.
References mln::fun::internal::x2x_linear_impl_< V, E >::m_.
void mln::fun::x2x::rotation< n, C >::set_alpha | ( | C | alpha | ) | [inline] |
Set a new grade alpha.
Definition at line 263 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 272 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 283 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_< V, E >::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] |
FIXME: Is it useful?
Definition at line 171 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 172 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_< V, E >::dim = V::dim [static, inherited] |
Definition at line 50 of file x2x_linear_impl.hh.
matrix mln::fun::internal::x2x_linear_impl_< V, E >::m_ [protected, inherited] |
Definition at line 68 of file x2x_linear_impl.hh.
Referenced by mln::fun::internal::x2x_linear_impl_< V, E >::mat(), mln::fun::internal::x2x_linear_impl_< T2::result, E >::operator()(), mln::fun::x2x::rotation< n, C >::operator()(), mln::fun::x2x::rotation< n, C >::rotation(), mln::fun::x2x::translation< n, C >::update(), and mln::fun::x2x::rotation< n, C >::update().