GLM_GTC_quaternion
Recommended extensions

## Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > | eulerAngles (qua< T, Q > const &x)
| Returns euler angles, pitch as x, yaw as y, roll as z. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< 4, bool, Q > | greaterThan (qua< T, Q > const &x, qua< T, Q > const &y)
| Returns the component-wise comparison of result x > y. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< 4, bool, Q > | greaterThanEqual (qua< T, Q > const &x, qua< T, Q > const &y)
| Returns the component-wise comparison of result x >= y. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< 4, bool, Q > | lessThan (qua< T, Q > const &x, qua< T, Q > const &y)
| Returns the component-wise comparison result of x < y. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< 4, bool, Q > | lessThanEqual (qua< T, Q > const &x, qua< T, Q > const &y)
| Returns the component-wise comparison of result x <= y. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > | mat3_cast (qua< T, Q > const &x)
| Converts a quaternion to a 3 * 3 matrix. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > | mat4_cast (qua< T, Q > const &x)
| Converts a quaternion to a 4 * 4 matrix. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL T | pitch (qua< T, Q > const &x)
| Returns pitch value of euler angles expressed in radians. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > | quat_cast (mat< 3, 3, T, Q > const &x)
| Converts a pure rotation 3 * 3 matrix to a quaternion. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > | quat_cast (mat< 4, 4, T, Q > const &x)
| Converts a pure rotation 4 * 4 matrix to a quaternion. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > | quatLookAt (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
| Build a look at quaternion based on the default handedness. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > | quatLookAtLH (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
| Build a left-handed look at quaternion. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > | quatLookAtRH (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
| Build a right-handed look at quaternion. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL T | roll (qua< T, Q > const &x)
| Returns roll value of euler angles expressed in radians. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL T | yaw (qua< T, Q > const &x)
| Returns yaw value of euler angles expressed in radians. More...

## Detailed Description

Include <glm/gtc/quaternion.hpp> to use the features of this extension.

Defines a templated quaternion type and several quaternion operations.

## Function Documentation

## eulerAngles()

GLM_FUNC_DECL vec<3, T, Q> glm::eulerAngles | ( | qua< T, Q > const & | x | ) |

Returns euler angles, pitch as x, yaw as y, roll as z.

The result is expressed in radians.

Template Parameters

  T | Floating-point scalar types.

See also
  GLM_GTC_quaternion

## greaterThan()

GLM_FUNC_DECL GLM_CONSTEXPR vec<4, bool, Q> glm::greaterThan | ( | qua< T, Q > const & | x,
|  | qua< T, Q > const & | y
| ) |  |

Returns the component-wise comparison of result x > y.

Template Parameters

  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLM_EXT_quaternion_relational

## greaterThanEqual()

GLM_FUNC_DECL GLM_CONSTEXPR vec<4, bool, Q> glm::greaterThanEqual | ( | qua< T, Q > const & | x,
|  | qua< T, Q > const & | y
| ) |  |

Returns the component-wise comparison of result x >= y.

Template Parameters

  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLM_EXT_quaternion_relational

## lessThan()

GLM_FUNC_DECL GLM_CONSTEXPR vec<4, bool, Q> glm::lessThan | ( | qua< T, Q > const & | x,
|  | qua< T, Q > const & | y
| ) |  |

Returns the component-wise comparison result of x < y.

Template Parameters

  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLM_EXT_quaternion_relational

## lessThanEqual()

GLM_FUNC_DECL GLM_CONSTEXPR vec<4, bool, Q> glm::lessThanEqual | ( | qua< T, Q > const & | x,
|  | qua< T, Q > const & | y
| ) |  |

Returns the component-wise comparison of result x <= y.

Template Parameters

  T | Floating-point scalar types
  Q | Value from qualifier enum

See also
  GLM_EXT_quaternion_relational

## mat3_cast()

GLM_FUNC_DECL mat<3, 3, T, Q> glm::mat3_cast | ( | qua< T, Q > const & | x | ) |

Converts a quaternion to a 3 * 3 matrix.

Template Parameters

  T | Floating-point scalar types.

See also
  GLM_GTC_quaternion

Referenced by glm::toMat3().

## mat4_cast()

GLM_FUNC_DECL mat<4, 4, T, Q> glm::mat4_cast | ( | qua< T, Q > const & | x | ) |

Converts a quaternion to a 4 * 4 matrix.

Template Parameters

  T | Floating-point scalar types.

See also
  GLM_GTC_quaternion

Referenced by glm::toMat4().

## pitch()

GLM_FUNC_DECL T glm::pitch | ( | qua< T, Q > const & | x | ) |

Returns pitch value of euler angles expressed in radians.

Template Parameters

  T | Floating-point scalar types.

See also
  GLM_GTC_quaternion

## quat_cast() [1/2]

GLM_FUNC_DECL qua<T, Q> glm::quat_cast | ( | mat< 3, 3, T, Q > const & | x | ) |

Converts a pure rotation 3 * 3 matrix to a quaternion.

Template Parameters

  T | Floating-point scalar types.

See also
  GLM_GTC_quaternion

Referenced by glm::toQuat().

## quat_cast() [2/2]

GLM_FUNC_DECL qua<T, Q> glm::quat_cast | ( | mat< 4, 4, T, Q > const & | x | ) |

Converts a pure rotation 4 * 4 matrix to a quaternion.

Template Parameters

  T | Floating-point scalar types.

See also
  GLM_GTC_quaternion

## quatLookAt()

GLM_FUNC_DECL qua<T, Q> glm::quatLookAt | ( | vec< 3, T, Q > const & | direction,
|  | vec< 3, T, Q > const & | up
| ) |  |

Build a look at quaternion based on the default handedness.

Parameters

  direction | Desired forward direction. Needs to be normalized.
  up | Up vector, how the camera is oriented. Typically (0, 1, 0).

## quatLookAtLH()

GLM_FUNC_DECL qua<T, Q> glm::quatLookAtLH | ( | vec< 3, T, Q > const & | direction,
|  | vec< 3, T, Q > const & | up
| ) |  |

Build a left-handed look at quaternion.

Parameters

  direction | Desired forward direction onto which the +z-axis gets mapped. Needs to be normalized.
  up | Up vector, how the camera is oriented. Typically (0, 1, 0).

## quatLookAtRH()

GLM_FUNC_DECL qua<T, Q> glm::quatLookAtRH | ( | vec< 3, T, Q > const & | direction,
|  | vec< 3, T, Q > const & | up
| ) |  |

Build a right-handed look at quaternion.

Parameters

  direction | Desired forward direction onto which the -z-axis gets mapped. Needs to be normalized.
  up | Up vector, how the camera is oriented. Typically (0, 1, 0).

## roll()

GLM_FUNC_DECL T glm::roll | ( | qua< T, Q > const & | x | ) |

Returns roll value of euler angles expressed in radians.

Template Parameters

  T | Floating-point scalar types.

See also
  GLM_GTC_quaternion

## yaw()

GLM_FUNC_DECL T glm::yaw | ( | qua< T, Q > const & | x | ) |

Returns yaw value of euler angles expressed in radians.

Template Parameters

  T | Floating-point scalar types.

See also
  GLM_GTC_quaternion