mln::fun::x2x::rotation< n, C > Struct Template Reference

Represent a rotation function. More...

#include <rotation.hh>

Inheritance diagram for mln::fun::x2x::rotation< n, C >:

Inheritance graph

List of all members.

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 matrixmat () const
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

alpha_
 FIXME: Is it useful?
algebra::vec< n, C > axis_
matrix m_


Detailed Description

template<unsigned n, typename C>
struct mln::fun::x2x::rotation< n, C >

Represent a rotation function.

Definition at line 137 of file rotation.hh.


Member Typedef Documentation

template<typename V, typename E>
typedef V mln::fun::internal::x2x_linear_impl_< V, E >::argument [inherited]

Definition at line 52 of file x2x_linear_impl.hh.

template<typename E>
typedef Function_v2v<void> mln::Function_v2v< E >::category [inherited]

template<typename V, typename E>
typedef V::coord mln::fun::internal::x2x_linear_impl_< V, E >::coord [inherited]

Definition at line 54 of file x2x_linear_impl.hh.

template<typename E>
typedef E mln::Object< E >::exact_t [inherited]

Definition at line 172 of file object.hh.

template<unsigned n, typename C>
typedef rotation<n,C> mln::fun::x2x::rotation< n, C >::invert

Type of the inverse function.

Definition at line 144 of file rotation.hh.

template<typename V, typename E>
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.

template<typename E>
typedef void mln::Function_v2v< E >::mutable_result [inherited]

Reimplemented in mln::util::array< T >.

Definition at line 94 of file function.hh.

template<typename V, typename E>
typedef V mln::fun::internal::x2x_linear_impl_< V, E >::result [inherited]

Definition at line 53 of file x2x_linear_impl.hh.


Constructor & Destructor Documentation

template<unsigned n, typename C>
mln::fun::x2x::rotation< n, C >::rotation (  )  [inline]

Constructor without argument.

Definition at line 180 of file rotation.hh.

template<unsigned n, typename C>
mln::fun::x2x::rotation< n, C >::rotation ( 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().

template<unsigned n, typename C>
mln::fun::x2x::rotation< n, C >::rotation ( const algebra::quat q  )  [inline]

template<unsigned n, typename C>
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_.


Member Function Documentation

template<unsigned n, typename C>
bool mln::fun::x2x::rotation< n, C >::check_rotation ( const algebra::quat q  )  [inline, protected]

template<unsigned n, typename C>
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_.

template<typename V, typename E>
const x2x_linear_impl_< V, E >::matrix & mln::fun::internal::x2x_linear_impl_< V, E >::mat (  )  const [inline, inherited]

template<typename V, typename E>
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.

template<unsigned n, typename C>
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_.

template<unsigned n, typename C>
void mln::fun::x2x::rotation< n, C >::set_alpha ( 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().

template<unsigned n, typename C>
void mln::fun::x2x::rotation< n, C >::set_axis ( const algebra::vec< n, C > &  axis  )  [inline]

template<unsigned n, typename C>
void mln::fun::x2x::rotation< n, C >::update (  )  [inline, protected]


Member Data Documentation

template<unsigned n, typename C>
C mln::fun::x2x::rotation< n, C >::alpha_ [protected]

template<unsigned n, typename C>
algebra::vec<n,C> mln::fun::x2x::rotation< n, C >::axis_ [protected]

template<typename V, typename E>
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.

template<typename V, typename E>
matrix mln::fun::internal::x2x_linear_impl_< V, E >::m_ [protected, inherited]


Generated on Sun Apr 25 02:01:56 2010 for Milena (Olena) by  doxygen 1.5.6