43 #include "../gtx/transform.hpp" 
   45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) 
   46 #       pragma message("GLM: GLM_GTX_rotate_vector extension included") 
   61         template <
typename T, precision P>
 
   62         GLM_FUNC_DECL tvec3<T, P> 
slerp(
 
   63                 tvec3<T, P> 
const & x,
 
   64                 tvec3<T, P> 
const & y,
 
   69         template <
typename T, precision P>
 
   70         GLM_FUNC_DECL tvec2<T, P> 
rotate(
 
   71                 tvec2<T, P> 
const & v,
 
   76         template <
typename T, precision P>
 
   77         GLM_FUNC_DECL tvec3<T, P> 
rotate(
 
   78                 tvec3<T, P> 
const & v,
 
   80                 tvec3<T, P> 
const & normal);
 
   84         template <
typename T, precision P>
 
   85         GLM_FUNC_DECL tvec4<T, P> 
rotate(
 
   86                 tvec4<T, P> 
const & v,
 
   88                 tvec3<T, P> 
const & normal);
 
   92         template <
typename T, precision P>
 
   93         GLM_FUNC_DECL tvec3<T, P> 
rotateX(
 
   94                 tvec3<T, P> 
const & v,
 
   99         template <
typename T, precision P>
 
  100         GLM_FUNC_DECL tvec3<T, P> 
rotateY(
 
  101                 tvec3<T, P> 
const & v,
 
  106         template <
typename T, precision P>
 
  107         GLM_FUNC_DECL tvec3<T, P> 
rotateZ(
 
  108                 tvec3<T, P> 
const & v,
 
  113         template <
typename T, precision P>
 
  114         GLM_FUNC_DECL tvec4<T, P> 
rotateX(
 
  115                 tvec4<T, P> 
const & v,
 
  120         template <
typename T, precision P>
 
  121         GLM_FUNC_DECL tvec4<T, P> 
rotateY(
 
  122                 tvec4<T, P> 
const & v,
 
  127         template <
typename T, precision P>
 
  128         GLM_FUNC_DECL tvec4<T, P> 
rotateZ(
 
  129                 tvec4<T, P> 
const & v,
 
  134         template <
typename T, precision P>
 
  136                 tvec3<T, P> 
const & Normal,
 
  137                 tvec3<T, P> 
const & Up);
 
  142 #include "rotate_vector.inl" 
GLM_FUNC_DECL tvec4< T, P > rotate(tvec4< T, P > const &v, T const &angle, tvec3< T, P > const &normal)
Rotate a four dimensional vector around an axis. 
GLM_FUNC_DECL tvec3< T, P > slerp(tvec3< T, P > const &x, tvec3< T, P > const &y, T const &a)
Returns Spherical interpolation between two vectors. 
GLM_FUNC_DECL tvec4< T, P > rotateX(tvec4< T, P > const &v, T const &angle)
Rotate a four dimentionnals vector around the X axis. 
GLM_FUNC_DECL tvec4< T, P > rotateZ(tvec4< T, P > const &v, T const &angle)
Rotate a four dimensional vector around the X axis. 
GLM_FUNC_DECL tvec4< T, P > rotateY(tvec4< T, P > const &v, T const &angle)
Rotate a four dimensional vector around the X axis. 
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle. 
GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)
Build a rotation matrix from a normal and a up vector.