▼GTC Extensions (Stable) | Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program |
GLM_GTC_bitfield | Allow to perform bit operations on integer values |
GLM_GTC_color_space | Allow to perform bit operations on integer values |
GLM_GTC_constants | Provide a list of constants and precomputed useful values |
GLM_GTC_epsilon | Comparison functions for a user defined epsilon values |
GLM_GTC_integer | Allow to perform bit operations on integer values |
GLM_GTC_matrix_access | Defines functions to access rows or columns of a matrix easily |
GLM_GTC_matrix_integer | Defines a number of matrices with integer types |
GLM_GTC_matrix_inverse | Defines additional matrix inverting functions |
GLM_GTC_matrix_transform | Defines functions that generate common transformation matrices |
GLM_GTC_noise | Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": https://github.com/ashima/webgl-noise Following Stefan Gustavson's paper "Simplex noise demystified": http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf <glm/gtc/noise.hpp> need to be included to use these functionalities |
GLM_GTC_packing | This extension provides a set of function to convert vertors to packed formats |
GLM_GTC_quaternion | Defines a templated quaternion type and several quaternion operations |
GLM_GTC_random | Generate random number from various distribution methods |
GLM_GTC_reciprocal | Define secant, cosecant and cotangent functions |
GLM_GTC_round | Rounding value to specific boundings |
GLM_GTC_type_precision | Defines specific C++-based precision types |
GLM_GTC_type_ptr | Handles the interaction between pointers and vector, matrix types |
GLM_GTC_ulp | Allow the measurement of the accuracy of a function against a reference implementation |
GLM_GTC_vec1 | Add vec1, ivec1, uvec1 and bvec1 types |
▼GTX Extensions (Experimental) | Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program |
GLM_GTX_associated_min_max | Min and max functions that return associated values not the compared onces |
GLM_GTX_bit | Allow to perform bit operations on integer values |
GLM_GTX_closest_point | Find the point on a straight line which is the closet of a point |
GLM_GTX_color_space | Related to RGB to HSV conversions and operations |
GLM_GTX_color_space_YCoCg | RGB to YCoCg conversions and operations |
GLM_GTX_common | Provide functions to increase the compatibility with Cg and HLSL languages |
GLM_GTX_compatibility | Provide functions to increase the compatibility with Cg and HLSL languages |
GLM_GTX_component_wise | Operations between components of a type |
GLM_GTX_dual_quaternion | Defines a templated dual-quaternion type and several dual-quaternion operations |
GLM_GTX_euler_angles | Build matrices from Euler angles |
GLM_GTX_extend | Extend a position from a source to a position at a defined length |
GLM_GTX_extented_min_max | Min and max functions for 3 to 4 parameters |
GLM_GTX_fast_exponential | Fast but less accurate implementations of exponential based functions |
GLM_GTX_fast_square_root | Fast but less accurate implementations of square root based functions |
GLM_GTX_fast_trigonometry | Fast but less accurate implementations of trigonometric functions |
GLM_GTX_gradient_paint | Functions that return the color of procedural gradient for specific coordinates |
GLM_GTX_handed_coordinate_space | To know if a set of three basis vectors defines a right or left-handed coordinate system |
GLM_GTX_hash | Add std::hash support for glm types |
GLM_GTX_integer | Add support for integer for core functions |
GLM_GTX_intersect | Add intersection functions |
GLM_GTX_io | Std::[w]ostream support for glm types |
GLM_GTX_log_base | Logarithm for any base |
GLM_GTX_matrix_cross_product | Build cross product matrices |
GLM_GTX_matrix_decompose | Decomposes a model matrix to translations, rotation and scale components |
GLM_GTX_matrix_interpolation | Allows to directly interpolate two exiciting matrices |
GLM_GTX_matrix_major_storage | Build matrices with specific matrix order, row or column |
GLM_GTX_matrix_operation | Build diagonal matrices from vectors |
GLM_GTX_matrix_query | Query to evaluate matrix properties |
GLM_GTX_matrix_transform_2d | Defines functions that generate common 2d transformation matrices |
GLM_GTX_mixed_producte | Mixed product of 3 vectors |
GLM_GTX_norm | Various ways to compute vector norms |
GLM_GTX_normal | Compute the normal of a triangle |
GLM_GTX_normalize_dot | Dot product of vectors that need to be normalize with a single square root |
GLM_GTX_number_precision | Defined size types |
GLM_GTX_optimum_pow | Integer exponentiation of power functions |
GLM_GTX_orthonormalize | Orthonormalize matrices |
GLM_GTX_perpendicular | Perpendicular of a vector from other one |
GLM_GTX_polar_coordinates | Conversion from Euclidean space to polar space and revert |
GLM_GTX_projection | Projection of a vector to other one |
GLM_GTX_quaternion | Extented quaternion types and functions |
GLM_GTX_range | Defines begin and end for vectors and matrices |
GLM_GTX_raw_data | Projection of a vector to other one |
GLM_GTX_rotate_normalized_axis | Quaternions and matrices rotations around normalized axis |
GLM_GTX_rotate_vector | Function to directly rotate a vector |
GLM_GTX_scalar_relational | Extend a position from a source to a position at a defined length |
GLM_GTX_simd_mat4 | SIMD implementation of mat4 type |
GLM_GTX_simd_quat | SIMD implementation of quat type |
GLM_GTX_simd_vec4 | SIMD implementation of vec4 type |
GLM_GTX_spline | Spline functions |
GLM_GTX_std_based_type | Adds vector types based on STL value types |
GLM_GTX_string_cast | Setup strings for GLM type values |
GLM_GTX_transform | Add transformation matrices |
GLM_GTX_transform2 | Add extra transformation matrices |
GLM_GTX_type_aligned | Defines aligned types |
GLM_GTX_vector_angle | Compute angle between vectors |
GLM_GTX_vector_query | Query informations of vector types |
GLM_GTX_wrap | Wrapping mode of texture coordinates |
▼GLM Core | The core of GLM, which implements exactly and only the GLSL specification to the degree possible |
Common functions | These all operate component-wise |
Exponential functions | These all operate component-wise |
Geometric functions | These operate on vectors as vectors, not component-wise |
Integer functions | These all operate component-wise |
Matrix functions | For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision |
Noise functions | Noise functions are stochastic functions that can be used to increase visual complexity |
Floating-Point Pack and Unpack Functions | These functions do not operate component-wise, rather as described in each case |
Angle and Trigonometry Functions | Function parameters specified as angle are assumed to be in units of radians |
Vector Relational Functions | Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results |
▼Types | The standard types defined by the specification |
Precision types | Non-GLSL types that are used to define precision-based types |
Precision types | Non-GLSL types that are used to define precision-based types |
Template types | The generic template types used as the basis for the core types |