11/01/2014 GLM released

One of the annoying aspect of GLM is that sometime angles are expressed in degrees and sometime angles are expressed in radians. Angles expressed in radians are features coming from GLSL where all the angles are expressed in radians and angles expressed in degrees are features coming from OpenGL compatibility profile.

GLM provides the define GLM_FORCE_RADIANS to enforce all the angles to be radians. GLM 0.9.5 deprecates degrees so that in GLM 0.9.6 those will be removed. Starting with GLM, warnings will be prompt for each instance of usage degrees. This is designed to help transitioning user code. Defining GLM_FORCE_RADIANS will quiet these messages.

Transitioning degrees to radians:
  • #include <glm/gtc/matrix_tansform.hpp>
  • #include <glm/gtc/constants.hpp>
  • void transitioning_to_radians()
  • {
  • ...
  • glm::mat4 m1 = glm::rotate(glm::mat4(1.f), glm::radians(45.0f), glm::vec3(0.0, 0.0, 1.0));
  • glm::mat4 m2 = glm::rotate(glm::mat4(1.f), glm::pi<float>() * 0.25f, glm::vec3(0.0, 0.0, 1.0));
  • ...
  • }

GLM is also fixing multiple bugs essentially related to the new approach allowing to include each feature individually.

  • Fixed angle and orientedAngle that sometimes return NaN values (#145)
  • Deprecated degrees for function parameters and display a message
  • Added possible static_cast conversion of GLM types (#72)
  • Fixed error 'inverse' is not a member of 'glm' from glm::unProject (#146)
  • Fixed mismatch between some declarations and definitions
  • Fixed inverse link error when using namespace glm; (#147)
  • Optimized matrix inverse and division code (#149)
  • Added intersectRayPlane function (#153)
  • Fixed outerProduct return type (#155)


  • GLM (ZIP, 4.1 MB) (7Z, 2.7 MB)
  • GLM 0.9.5 manual
  • GLM 0.9.5 api documentation
  • Submit a bug report
  • GLI released >
    < GLM released
    Copyright Christophe Riccio 2002-2016 all rights reserved
    Designed for Chrome 9, Firefox 4, Opera 11 and Safari 5