47 #include "../gtx/transform.hpp" 
   49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) 
   50 #       pragma message("GLM: GLM_GTX_rotate_vector extension included") 
   65         template <
typename T, precision P>
 
   66         GLM_FUNC_DECL tvec3<T, P> 
slerp(
 
   67                 tvec3<T, P> 
const & x,
 
   68                 tvec3<T, P> 
const & y,
 
   73         template <
typename T, precision P>
 
   74         GLM_FUNC_DECL tvec2<T, P> 
rotate(
 
   75                 tvec2<T, P> 
const & v,
 
   80         template <
typename T, precision P>
 
   81         GLM_FUNC_DECL tvec3<T, P> 
rotate(
 
   82                 tvec3<T, P> 
const & v,
 
   84                 tvec3<T, P> 
const & normal);
 
   88         template <
typename T, precision P>
 
   89         GLM_FUNC_DECL tvec4<T, P> 
rotate(
 
   90                 tvec4<T, P> 
const & v,
 
   92                 tvec3<T, P> 
const & normal);
 
   96         template <
typename T, precision P>
 
   97         GLM_FUNC_DECL tvec3<T, P> 
rotateX(
 
   98                 tvec3<T, P> 
const & v,
 
  103         template <
typename T, precision P>
 
  104         GLM_FUNC_DECL tvec3<T, P> 
rotateY(
 
  105                 tvec3<T, P> 
const & v,
 
  110         template <
typename T, precision P>
 
  111         GLM_FUNC_DECL tvec3<T, P> 
rotateZ(
 
  112                 tvec3<T, P> 
const & v,
 
  117         template <
typename T, precision P>
 
  118         GLM_FUNC_DECL tvec4<T, P> 
rotateX(
 
  119                 tvec4<T, P> 
const & v,
 
  124         template <
typename T, precision P>
 
  125         GLM_FUNC_DECL tvec4<T, P> 
rotateY(
 
  126                 tvec4<T, P> 
const & v,
 
  131         template <
typename T, precision P>
 
  132         GLM_FUNC_DECL tvec4<T, P> 
rotateZ(
 
  133                 tvec4<T, P> 
const & v,
 
  138         template <
typename T, precision P>
 
  140                 tvec3<T, P> 
const & Normal,
 
  141                 tvec3<T, P> 
const & Up);
 
  146 #include "rotate_vector.inl" 
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 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. 
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 tvec4< T, P > rotateX(tvec4< T, P > const &v, T const &angle)
Rotate a four dimentionnals vector around the X axis. 
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle. 
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 > rotateY(tvec4< T, P > const &v, T const &angle)
Rotate a four dimensional vector around the X axis.