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
| 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_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_type_trait
| Defines traits for each type.
| GLM_GTX_vec_swizzle
| Functions to perform swizzle operation.
| 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.

## 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.