18 #include "../gtx/transform.hpp" 
   20 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 
   21 #       pragma message("GLM: GLM_GTX_rotate_vector extension included") 
   36         template <
typename T, precision P>
 
   37         GLM_FUNC_DECL tvec3<T, P> 
slerp(
 
   38                 tvec3<T, P> 
const & x,
 
   39                 tvec3<T, P> 
const & y,
 
   44         template <
typename T, precision P>
 
   45         GLM_FUNC_DECL tvec2<T, P> 
rotate(
 
   46                 tvec2<T, P> 
const & v,
 
   51         template <
typename T, precision P>
 
   52         GLM_FUNC_DECL tvec3<T, P> 
rotate(
 
   53                 tvec3<T, P> 
const & v,
 
   55                 tvec3<T, P> 
const & normal);
 
   59         template <
typename T, precision P>
 
   60         GLM_FUNC_DECL tvec4<T, P> 
rotate(
 
   61                 tvec4<T, P> 
const & v,
 
   63                 tvec3<T, P> 
const & normal);
 
   67         template <
typename T, precision P>
 
   68         GLM_FUNC_DECL tvec3<T, P> 
rotateX(
 
   69                 tvec3<T, P> 
const & v,
 
   74         template <
typename T, precision P>
 
   75         GLM_FUNC_DECL tvec3<T, P> 
rotateY(
 
   76                 tvec3<T, P> 
const & v,
 
   81         template <
typename T, precision P>
 
   82         GLM_FUNC_DECL tvec3<T, P> 
rotateZ(
 
   83                 tvec3<T, P> 
const & v,
 
   88         template <
typename T, precision P>
 
   89         GLM_FUNC_DECL tvec4<T, P> 
rotateX(
 
   90                 tvec4<T, P> 
const & v,
 
   95         template <
typename T, precision P>
 
   96         GLM_FUNC_DECL tvec4<T, P> 
rotateY(
 
   97                 tvec4<T, P> 
const & v,
 
  102         template <
typename T, precision P>
 
  103         GLM_FUNC_DECL tvec4<T, P> 
rotateZ(
 
  104                 tvec4<T, P> 
const & v,
 
  109         template <
typename T, precision P>
 
  111                 tvec3<T, P> 
const & Normal,
 
  112                 tvec3<T, P> 
const & Up);
 
  117 #include "rotate_vector.inl" 
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 > 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 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 T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle. 
GLM_FUNC_DECL tvec4< T, P > rotateX(tvec4< T, P > const &v, T const &angle)
Rotate a four dimentionnals vector around the X axis.