Modules

GTX Extensions (Experimental)

Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. More...

Modules

 GLM_GTX_associated_min_max: Associated Min/Max
 

Min and max functions that return associated values not the compared onces. <glm/gtx/associated_min_max.hpp> need to be included to use these functionalities.


 GLM_GTX_bit: Extended bitwise operations
 

Allow to perform bit operations on integer values.


 GLM_GTX_closest_point: Find closest point
 

Find the point on a straight line which is the closet of a point.


 GLM_GTX_color_cast: Color conversion
 

Conversion between two color types.


 GLM_GTX_color_space: RGB to HSV conversion
 

Related to RGB to HSV conversions and operations.


 GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion
 

RGB to YCoCg conversions and operations.


 GLM_GTX_compatibility: Cg and HLSL compatibility
 

Provide functions to increase the compatibility with Cg and HLSL languages.


 GLM_GTX_component_wise: Component wise
 

Operations between components of a type.


 GLM_GTX_epsilon: Epsilon comparison
 

Comparison functions for a user defined epsilon values.


 GLM_GTX_euler_angles: Matrix from euler angles
 

Build matrices from Euler angles.


 GLM_GTX_extend: Position extending
 

Extend a position from a source to a position at a defined length.


 GLM_GTX_extented_min_max: Extended min max
 

Min and max functions for 3 to 4 parameters.


 GLM_GTX_fast_exponential: Fast exponentiation functions
 

Fast but less accurate implementations of exponential based functions.


 GLM_GTX_fast_square_root: Fast square root functions
 

Fast but less accurate implementations of square root based functions.


 GLM_GTX_fast_trigonometry: Fast trigonometric functions
 

Fast but less accurate implementations of trigonometric functions.


 GLM_GTX_handed_coordinate_space: Space Handedness
 

To know if a set of three basis vectors defines a right or left-handed coordinate system.


 GLM_GTX_inertia: Intertial matrix
 

Create inertia matrices.


 GLM_GTX_int_10_10_10_2: Packed integer
 

Pack vector to 1010102 integers. Storage only.


 GLM_GTX_integer: Extended integer functions
 

Add support for integer for core functions.


 GLM_GTX_intersect: Intersection tests
 

Add intersection functions.


 GLM_GTX_log_base: Log with base
 

Logarithm for any base. base can be a vector or a scalar.


 GLM_GTX_matrix_cross_product: Cross product matrix form
 

Build cross product matrices.


 GLM_GTX_matrix_major_storage: Build matrix
 

Build matrices with specific matrix order, row or column.


 GLM_GTX_matrix_operation: Extended matrix operations
 

Build diagonal matrices from vectors.


 GLM_GTX_matrix_query: Query matrix properties
 

Query to evaluate matrix properties.


 GLM_GTX_mixed_producte: Mixed product
 

Mixed product of 3 vectors.


 GLM_GTX_multiple: Multiples
 

Find the closest number of a number multiple of other number.


 GLM_GTX_norm: Vector norm calculations
 

Various way to compute vector norms.


 GLM_GTX_normal: Compute normals
 

Compute the normal of a triangle.


 GLM_GTX_normalize_dot: Normalize dot product
 

Dot product of vectors that need to be normalize with a single square root.


 GLM_GTX_number_precision: Number precision
 

Defined size types.


 GLM_GTX_ocl_type: OpenCL types
 

OpenCL types.


 GLM_GTX_optimum_pow: Optimum pow
 

Integer exponentiation of power functions.


 GLM_GTX_orthonormalize: Orthonormalize
 

Orthonormalize matrices.


 GLM_GTX_perpendicular: Perpendicular
 

Perpendicular of a vector from other one.


 GLM_GTX_polar_coordinates: Polar coordinates
 

Conversion from Euclidean space to polar space and revert.


 GLM_GTX_projection: Projection
 

Projection of a vector to other one.


 GLM_GTX_quaternion: Extented quaternion types and functions
 

Extented quaternion types and functions.


 GLM_GTX_random: Random
 

Generate random number from various distribution methods.


 GLM_GTX_raw_data: Raw data
 

Projection of a vector to other one.


 GLM_GTX_reciprocal: Reciprocal
 

Define secant, cosecant and cotangent functions.


 GLM_GTX_rotate_vector: Rotate vector
 

Function to directly rotate a vector.


 GLM_GTX_simd_mat4: SIMD mat4 type and functions
 

SIMD implementation of mat4 type.


 GLM_GTX_simd_vec4: SIMD vec4 type and functions
 

SIMD implementation of vec4 type.


 GLM_GTX_spline: Spline
 

Spline functions.


 GLM_GTX_string_cast: String cast
 

Setup strings for GLM type values.


 GLM_GTX_transform: Extented transformation matrices
 

Add transformation matrices.


 GLM_GTX_transform2: Extra transformation matrices
 

Add extra transformation matrices.


 GLM_GTX_unsigned_int: Unsigned int
 

Add support for unsigned integer for core functions.


 GLM_GTX_vector_angle: Vector access
 

Function to set values to vectors.


 GLM_GTX_vector_angle: Vector angle
 

Compute angle between vectors.


 GLM_GTX_vector_query: Vector query
 

Query informations of vector types.


 GLM_GTX_verbose_operator: Verbose operator
 

Use words to replace operators.


 GLM_GTX_wrap: Texture coordinate wrap modes
 

Wrapping mode of texture coordinates.



Detailed Description

Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.

Experimental extensions are useful functions and types, but the development of their API and functionality is not necessarily stable. They can change substantially between versions. Backwards compatibility is not much of an issue for them.

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.