Public Member Functions | Protected Attributes
vgl_rotation_3d< T > Class Template Reference

#include <vgl_rotation_3d.h>

List of all members.

Public Member Functions

 vgl_rotation_3d ()
 Construct the identity rotation.
 vgl_rotation_3d (vnl_quaternion< T > const &q)
 Construct from a quaternion.
 vgl_rotation_3d (T const &rx, T const &ry, T const &rz)
 Construct from Euler angles.
 vgl_rotation_3d (vnl_vector_fixed< T, 3 > const &rvector)
 Construct from a Rodrigues vector.
vgl_rotation_3doperator= (vnl_vector_fixed< T, 3 > const &rvector)
 Construct from a Rodrigues vector.
 vgl_rotation_3d (vnl_matrix_fixed< T, 3, 3 > const &matrix)
 Construct from a 3x3 rotation matrix.
vgl_rotation_3doperator= (vnl_matrix_fixed< T, 3, 3 > const &matrix)
 Construct from a 3x3 rotation matrix.
 vgl_rotation_3d (vgl_h_matrix_3d< T > const &h)
 Construct from a vgl_h_matrix_3d.
vgl_rotation_3doperator= (vgl_h_matrix_3d< T > const &h)
 Construct from a vgl_h_matrix_3d.
 vgl_rotation_3d (vnl_vector_fixed< T, 3 > const &a, vnl_vector_fixed< T, 3 > const &b)
 Construct to rotate (direction of) vector a to vector b.
 vgl_rotation_3d (vgl_vector_3d< T > const &a, vgl_vector_3d< T > const &b)
 Construct to rotate (direction of) vector a to vector b.
vnl_quaternion< T > as_quaternion () const
 Output unit quaternion.
vnl_vector_fixed< T, 3 > as_euler_angles () const
 Output Euler angles.
vnl_vector_fixed< T, 3 > as_rodrigues () const
 Output Rodrigues vector.
vnl_matrix_fixed< T, 3, 3 > as_matrix () const
 Output the matrix representation of this rotation in 3x3 form.
vgl_h_matrix_3d< T > as_h_matrix_3d () const
 Output the matrix representation of this rotation in 4x4 form.
vnl_vector_fixed< T, 3 > axis () const
 Returns the axis of rotation (unit vector).
double angle () const
 Returns the magnitude of the angle of rotation.
vgl_rotation_3dset_identity ()
 Make the rotation the identity (i.e. no rotation).
vgl_rotation_3d< T > inverse () const
 The inverse rotation.
vgl_rotation_3d< T > transpose () const
 The transpose or conjugate of the rotation.
vgl_rotation_3d< T > operator* (vgl_rotation_3d< T > const &first_rotation) const
 Composition of two rotations.
vgl_homg_point_3d< T > operator* (vgl_homg_point_3d< T > const &p) const
 Rotate a homogeneous point.
vgl_homg_plane_3d< T > operator* (vgl_homg_plane_3d< T > const &p) const
 Rotate a homogeneous plane.
vgl_homg_line_3d_2_points< T > operator* (vgl_homg_line_3d_2_points< T > const &l) const
 Rotate a homogeneous line.
vgl_point_3d< T > operator* (vgl_point_3d< T > const &p) const
 Rotate a point.
vgl_plane_3d< T > operator* (vgl_plane_3d< T > const &p) const
 Rotate a plane.
vgl_line_3d_2_points< T > operator* (vgl_line_3d_2_points< T > const &l) const
 Rotate a line.
vgl_line_segment_3d< T > operator* (vgl_line_segment_3d< T > const &l) const
 Rotate a line segment.
vgl_vector_3d< T > operator* (vgl_vector_3d< T > const &v) const
 Rotate a vgl vector.
vnl_vector_fixed< T, 3 > operator* (vnl_vector_fixed< T, 3 > const &v) const
 Rotate a vnl vector.
bool operator== (vgl_rotation_3d< T > const &r) const
 comparison operator.

Protected Attributes

vnl_quaternion< T > q_
 The internal representation of the rotation is a quaternion.

Detailed Description

template<class T>
class vgl_rotation_3d< T >

Definition at line 37 of file vgl_rotation_3d.h.


Constructor & Destructor Documentation

template<class T>
vgl_rotation_3d< T >::vgl_rotation_3d ( ) [inline]

Construct the identity rotation.

Definition at line 43 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d< T >::vgl_rotation_3d ( vnl_quaternion< T > const &  q) [inline]

Construct from a quaternion.

Definition at line 46 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d< T >::vgl_rotation_3d ( T const &  rx,
T const &  ry,
T const &  rz 
) [inline]

Construct from Euler angles.

Definition at line 49 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d< T >::vgl_rotation_3d ( vnl_vector_fixed< T, 3 > const &  rvector) [inline, explicit]

Construct from a Rodrigues vector.

Definition at line 52 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d< T >::vgl_rotation_3d ( vnl_matrix_fixed< T, 3, 3 > const &  matrix) [inline, explicit]

Construct from a 3x3 rotation matrix.

Definition at line 73 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d< T >::vgl_rotation_3d ( vgl_h_matrix_3d< T > const &  h) [inline, explicit]

Construct from a vgl_h_matrix_3d.

Definition at line 81 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d< T >::vgl_rotation_3d ( vnl_vector_fixed< T, 3 > const &  a,
vnl_vector_fixed< T, 3 > const &  b 
) [inline]

Construct to rotate (direction of) vector a to vector b.

The input vectors need not be of unit length

Definition at line 90 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d< T >::vgl_rotation_3d ( vgl_vector_3d< T > const &  a,
vgl_vector_3d< T > const &  b 
) [inline]

Construct to rotate (direction of) vector a to vector b.

The input vectors need not be of unit length

Definition at line 127 of file vgl_rotation_3d.h.


Member Function Documentation

template<class T>
double vgl_rotation_3d< T >::angle ( ) const [inline]

Returns the magnitude of the angle of rotation.

Definition at line 180 of file vgl_rotation_3d.h.

template<class T>
vnl_vector_fixed<T,3> vgl_rotation_3d< T >::as_euler_angles ( ) const [inline]

Output Euler angles.

The first element is the rotation about the x-axis The second element is the rotation about the y-axis The third element is the rotation about the z-axis The total rotation is a composition of these rotations in this order

Definition at line 148 of file vgl_rotation_3d.h.

template<class T>
vgl_h_matrix_3d<T> vgl_rotation_3d< T >::as_h_matrix_3d ( ) const [inline]

Output the matrix representation of this rotation in 4x4 form.

Definition at line 171 of file vgl_rotation_3d.h.

template<class T>
vnl_matrix_fixed<T,3,3> vgl_rotation_3d< T >::as_matrix ( ) const [inline]

Output the matrix representation of this rotation in 3x3 form.

Definition at line 165 of file vgl_rotation_3d.h.

template<class T>
vnl_quaternion<T> vgl_rotation_3d< T >::as_quaternion ( ) const [inline]

Output unit quaternion.

Definition at line 138 of file vgl_rotation_3d.h.

template<class T>
vnl_vector_fixed<T,3> vgl_rotation_3d< T >::as_rodrigues ( ) const [inline]

Output Rodrigues vector.

The direction of this vector is the axis of rotation The length of this vector is the angle of rotation in radians

Definition at line 156 of file vgl_rotation_3d.h.

template<class T>
vnl_vector_fixed<T,3> vgl_rotation_3d< T >::axis ( ) const [inline]

Returns the axis of rotation (unit vector).

Definition at line 177 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d<T> vgl_rotation_3d< T >::inverse ( ) const [inline]

The inverse rotation.

Definition at line 188 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d<T> vgl_rotation_3d< T >::operator* ( vgl_rotation_3d< T > const &  first_rotation) const [inline]

Composition of two rotations.

Definition at line 194 of file vgl_rotation_3d.h.

template<class T>
vgl_homg_point_3d<T> vgl_rotation_3d< T >::operator* ( vgl_homg_point_3d< T > const &  p) const [inline]

Rotate a homogeneous point.

Definition at line 200 of file vgl_rotation_3d.h.

template<class T>
vgl_homg_plane_3d<T> vgl_rotation_3d< T >::operator* ( vgl_homg_plane_3d< T > const &  p) const [inline]

Rotate a homogeneous plane.

Definition at line 207 of file vgl_rotation_3d.h.

template<class T>
vgl_homg_line_3d_2_points<T> vgl_rotation_3d< T >::operator* ( vgl_homg_line_3d_2_points< T > const &  l) const [inline]

Rotate a homogeneous line.

Definition at line 214 of file vgl_rotation_3d.h.

template<class T>
vgl_point_3d<T> vgl_rotation_3d< T >::operator* ( vgl_point_3d< T > const &  p) const [inline]

Rotate a point.

Definition at line 221 of file vgl_rotation_3d.h.

template<class T>
vgl_plane_3d<T> vgl_rotation_3d< T >::operator* ( vgl_plane_3d< T > const &  p) const [inline]

Rotate a plane.

Definition at line 228 of file vgl_rotation_3d.h.

template<class T>
vgl_line_3d_2_points<T> vgl_rotation_3d< T >::operator* ( vgl_line_3d_2_points< T > const &  l) const [inline]

Rotate a line.

Definition at line 235 of file vgl_rotation_3d.h.

template<class T>
vgl_line_segment_3d<T> vgl_rotation_3d< T >::operator* ( vgl_line_segment_3d< T > const &  l) const [inline]

Rotate a line segment.

Definition at line 242 of file vgl_rotation_3d.h.

template<class T>
vgl_vector_3d<T> vgl_rotation_3d< T >::operator* ( vgl_vector_3d< T > const &  v) const [inline]

Rotate a vgl vector.

Definition at line 249 of file vgl_rotation_3d.h.

template<class T>
vnl_vector_fixed<T, 3> vgl_rotation_3d< T >::operator* ( vnl_vector_fixed< T, 3 > const &  v) const [inline]

Rotate a vnl vector.

Definition at line 256 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d& vgl_rotation_3d< T >::operator= ( vnl_vector_fixed< T, 3 > const &  rvector) [inline]

Construct from a Rodrigues vector.

Definition at line 62 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d& vgl_rotation_3d< T >::operator= ( vnl_matrix_fixed< T, 3, 3 > const &  matrix) [inline]

Construct from a 3x3 rotation matrix.

Definition at line 77 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d& vgl_rotation_3d< T >::operator= ( vgl_h_matrix_3d< T > const &  h) [inline]

Construct from a vgl_h_matrix_3d.

Definition at line 85 of file vgl_rotation_3d.h.

template<class T>
bool vgl_rotation_3d< T >::operator== ( vgl_rotation_3d< T > const &  r) const [inline]

comparison operator.

Definition at line 262 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d& vgl_rotation_3d< T >::set_identity ( ) [inline]

Make the rotation the identity (i.e. no rotation).

Definition at line 185 of file vgl_rotation_3d.h.

template<class T>
vgl_rotation_3d<T> vgl_rotation_3d< T >::transpose ( ) const [inline]

The transpose or conjugate of the rotation.

Definition at line 191 of file vgl_rotation_3d.h.


Member Data Documentation

template<class T>
vnl_quaternion<T> vgl_rotation_3d< T >::q_ [protected]

The internal representation of the rotation is a quaternion.

Definition at line 266 of file vgl_rotation_3d.h.


The documentation for this class was generated from the following file: