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.