Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes

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 algebra::vec< n, C > argument
typedef Function_v2v< void > category
typedef algebra::vec< n, C >::coord coord
typedef rotation< n, C > exact_t
typedef rotation< n, C > invert
 Type of the inverse function.
typedef algebra::h_mat< dim,
coord
matrix
typedef void mutable_result
typedef algebra::vec< n, C > result

Public Member Functions

invert inv () const
 Return the invere function.
const matrixmat () 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

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.


Member Typedef Documentation

typedef algebra::vec< n, C > mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , rotation< n, C > >::argument [inherited]
typedef Function_v2v<void> mln::Function_v2v< rotation< n, C > >::category [inherited]

Reimplemented from mln::Function< rotation< n, C > >.

typedef algebra::vec< n, C > ::coord mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , rotation< n, C > >::coord [inherited]
typedef rotation< n, C > mln::Object< rotation< n, C > >::exact_t [inherited]
template<unsigned n, typename C>
typedef rotation<n,C> mln::fun::x2x::rotation< n, C >::invert

Type of the inverse function.

typedef void mln::Function_v2v< rotation< n, C > >::mutable_result [inherited]
typedef algebra::vec< n, C > mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , rotation< n, C > >::result [inherited]

Constructor & Destructor Documentation

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

Constructor without argument.

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

References mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C >, rotation< n, C > >::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]

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]
const matrix& mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , rotation< n, C > >::mat (  )  const [inherited]
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.

References mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C >, rotation< n, C > >::m_.

algebra::vec< n, C > mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , rotation< n, C > >::operator() ( const algebra::vec< n, C > &  x  )  const [inline, inherited]
template<unsigned n, typename C >
void mln::fun::x2x::rotation< n, C >::set_alpha ( alpha  )  [inline]
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]
const unsigned mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , rotation< n, C > >::dim [static, inherited]
matrix mln::fun::internal::x2x_linear_impl_< algebra::vec< n, C > , rotation< n, C > >::m_ [protected, inherited]