GLM_GTX_rotate_vector
Experimental extensions

## Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > | orientation (vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
| Build a rotation matrix from a normal and a up vector. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > | rotate (vec< 2, T, Q > const &v, T const &angle)
| Rotate a two dimensional vector. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > | rotate (vec< 3, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
| Rotate a three dimensional vector around an axis. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > | rotate (vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
| Rotate a four dimensional vector around an axis. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > | rotateX (vec< 3, T, Q > const &v, T const &angle)
| Rotate a three dimensional vector around the X axis. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > | rotateX (vec< 4, T, Q > const &v, T const &angle)
| Rotate a four dimensional vector around the X axis. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > | rotateY (vec< 3, T, Q > const &v, T const &angle)
| Rotate a three dimensional vector around the Y axis. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > | rotateY (vec< 4, T, Q > const &v, T const &angle)
| Rotate a four dimensional vector around the Y axis. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > | rotateZ (vec< 3, T, Q > const &v, T const &angle)
| Rotate a three dimensional vector around the Z axis. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > | rotateZ (vec< 4, T, Q > const &v, T const &angle)
| Rotate a four dimensional vector around the Z axis. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > | slerp (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)
| Returns Spherical interpolation between two vectors. More...

## Detailed Description

Include <glm/gtx/rotate_vector.hpp> to use the features of this extension.

Function to directly rotate a vector

## Function Documentation

## orientation()

GLM_FUNC_DECL mat<4, 4, T, Q> glm::orientation | ( | vec< 3, T, Q > const & | Normal,
|  | vec< 3, T, Q > const & | Up
| ) |  |

Build a rotation matrix from a normal and a up vector.

From GLM_GTX_rotate_vector extension.

## rotate() [1/3]

GLM_FUNC_DECL vec<2, T, Q> glm::rotate | ( | vec< 2, T, Q > const & | v,
|  | T const & | angle
| ) |  |

Rotate a two dimensional vector.

From GLM_GTX_rotate_vector extension.

## rotate() [2/3]

GLM_FUNC_DECL vec<3, T, Q> glm::rotate | ( | vec< 3, T, Q > const & | v,
|  | T const & | angle,
|  | vec< 3, T, Q > const & | normal
| ) |  |

Rotate a three dimensional vector around an axis.

From GLM_GTX_rotate_vector extension.

## rotate() [3/3]

GLM_FUNC_DECL vec<4, T, Q> glm::rotate | ( | vec< 4, T, Q > const & | v,
|  | T const & | angle,
|  | vec< 3, T, Q > const & | normal
| ) |  |

Rotate a four dimensional vector around an axis.

From GLM_GTX_rotate_vector extension.

## rotateX() [1/2]

GLM_FUNC_DECL vec<3, T, Q> glm::rotateX | ( | vec< 3, T, Q > const & | v,
|  | T const & | angle
| ) |  |

Rotate a three dimensional vector around the X axis.

From GLM_GTX_rotate_vector extension.

## rotateX() [2/2]

GLM_FUNC_DECL vec<4, T, Q> glm::rotateX | ( | vec< 4, T, Q > const & | v,
|  | T const & | angle
| ) |  |

Rotate a four dimensional vector around the X axis.

From GLM_GTX_rotate_vector extension.

## rotateY() [1/2]

GLM_FUNC_DECL vec<3, T, Q> glm::rotateY | ( | vec< 3, T, Q > const & | v,
|  | T const & | angle
| ) |  |

Rotate a three dimensional vector around the Y axis.

From GLM_GTX_rotate_vector extension.

## rotateY() [2/2]

GLM_FUNC_DECL vec<4, T, Q> glm::rotateY | ( | vec< 4, T, Q > const & | v,
|  | T const & | angle
| ) |  |

Rotate a four dimensional vector around the Y axis.

From GLM_GTX_rotate_vector extension.

## rotateZ() [1/2]

GLM_FUNC_DECL vec<3, T, Q> glm::rotateZ | ( | vec< 3, T, Q > const & | v,
|  | T const & | angle
| ) |  |

Rotate a three dimensional vector around the Z axis.

From GLM_GTX_rotate_vector extension.

## rotateZ() [2/2]

GLM_FUNC_DECL vec<4, T, Q> glm::rotateZ | ( | vec< 4, T, Q > const & | v,
|  | T const & | angle
| ) |  |

Rotate a four dimensional vector around the Z axis.

From GLM_GTX_rotate_vector extension.

## slerp()

GLM_FUNC_DECL vec<3, T, Q> glm::slerp | ( | vec< 3, T, Q > const & | x,
|  | vec< 3, T, Q > const & | y,
|  | T const & | a
| ) |  |

Returns Spherical interpolation between two vectors.

Parameters

  x | A first vector
  y | A second vector
  a | Interpolation factor. The interpolation is defined beyond the range [0, 1].

See also
  GLM_GTX_rotate_vector