Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.

QVM: Quaternions, Vectors, Matrices

rot_mat

#include <boost/qvm/mat_operations.hpp>

namespace qvm
{
    //Only enabled if:
    //  is_vec<A>::value && vec_traits<A>::dim==3
    template <int Dim,class A,class Angle>
    -unspecified-return-type-
    rot_mat( A const & axis, Angle angle );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_xzy( Angle x1, Angle z2, Angle y3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_xyz( Angle x1, Angle y2, Angle z3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_yxz( Angle y1, Angle x2, Angle z3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_yzx( Angle y1, Angle z2, Angle x3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_zyx( Angle z1, Angle y2, Angle x3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_zxy( Angle z1, Angle x2, Angle y3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_xzx( Angle x1, Angle z2, Angle x3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_xyx( Angle x1, Angle y2, Angle x3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_yxy( Angle y1, Angle x2, Angle y3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_yzy( Angle y1, Angle z2, Angle y3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_zyz( Angle z1, Angle y2, Angle z3 );
    
    template <int Dim,class Angle>
    -unspecified-return-type-
    rot_mat_zxz( Angle z1, Angle y2, Angle z3 );
}

Returns:

A matrix of unspecified type, of Dim rows and Dim columns parameter, which performs a rotation around the axis at angle radians, or Tait–Bryan angles (x-y-z, y-z-x, z-x-y, x-z-y, z-y-x, y-x-z), or proper Euler angles (z-x-z, x-y-x, y-z-y, z-y-z, x-z-x, y-x-y). See Euler angles.

Throws:

In case the axis vector has zero magnitude, throws zero_magnitude_error.

Note:

These functions are not view proxies; they return a temp object.