mirror of
https://github.com/g-truc/glm.git
synced 2024-11-30 03:44:38 +00:00
499 lines
12 KiB
Plaintext
499 lines
12 KiB
Plaintext
/*!
|
|
\defgroup gtx GTX Extensions (Experimental)
|
|
|
|
\brief 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.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_associated_min_max GLM_GTX_associated_min_max: Associated Min/Max
|
|
\ingroup gtx
|
|
|
|
\brief 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.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_bit GLM_GTX_bit: Extended bitwise operations
|
|
\ingroup gtx
|
|
|
|
\brief Allow to perform bit operations on integer values
|
|
|
|
<glm/gtx/bit.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_closest_point GLM_GTX_closest_point: Find closest point
|
|
\ingroup gtx
|
|
|
|
\brief Find the point on a straight line which is the closet of a point.
|
|
|
|
<glm/gtx/closest_point.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_color_cast GLM_GTX_color_cast: Color conversion
|
|
\ingroup gtx
|
|
|
|
\brief Conversion between two color types.
|
|
|
|
<glm/gtx/color_cast.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_color_space GLM_GTX_color_space: RGB to HSV conversion
|
|
\ingroup gtx
|
|
|
|
\brief Related to RGB to HSV conversions and operations.
|
|
|
|
<glm/gtx/color_space.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_color_space_YCoCg GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion
|
|
\ingroup gtx
|
|
|
|
\brief RGB to YCoCg conversions and operations
|
|
|
|
<glm/gtx/color_space_YCoCg.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_compatibility GLM_GTX_compatibility: Cg and HLSL compatibility
|
|
\ingroup gtx
|
|
|
|
\brief Provide functions to increase the compatibility with Cg and HLSL languages
|
|
|
|
<glm/gtx/compatibility.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_component_wise GLM_GTX_component_wise: Component wise
|
|
\ingroup gtx
|
|
|
|
\brief Operations between components of a type
|
|
|
|
<glm/gtx/component_wise.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_epsilon GLM_GTX_epsilon: Epsilon comparison
|
|
\ingroup gtx
|
|
|
|
\brief Comparison functions for a user defined epsilon values.
|
|
|
|
<glm/gtx/epsilon.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_euler_angles GLM_GTX_euler_angles: Matrix from euler angles
|
|
\ingroup gtx
|
|
|
|
\brief Build matrices from Euler angles.
|
|
|
|
<glm/gtx/euler_angles.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_extend GLM_GTX_extend: Position extending
|
|
\ingroup gtx
|
|
|
|
\brief Extend a position from a source to a position at a defined length.
|
|
|
|
<glm/gtx/extend.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_extented_min_max GLM_GTX_extented_min_max: Extended min max
|
|
\ingroup gtx
|
|
|
|
\brief Min and max functions for 3 to 4 parameters.
|
|
|
|
<glm/gtx/extented_min_max.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_fast_exponential GLM_GTX_fast_exponential: Fast exponentiation functions
|
|
\ingroup gtx
|
|
|
|
\brief Fast but less accurate implementations of exponential based functions.
|
|
|
|
<glm/gtx/fast_exponential.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_fast_square_root GLM_GTX_fast_square_root: Fast square root functions
|
|
\ingroup gtx
|
|
|
|
\brief Fast but less accurate implementations of square root based functions.
|
|
|
|
<glm/gtx/fast_square_root.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_fast_trigonometry GLM_GTX_fast_trigonometry: Fast trigonometric functions
|
|
\ingroup gtx
|
|
|
|
\brief Fast but less accurate implementations of trigonometric functions.
|
|
|
|
<glm/gtx/fast_trigonometry.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_handed_coordinate_space GLM_GTX_handed_coordinate_space: Space Handedness
|
|
\ingroup gtx
|
|
|
|
\brief To know if a set of three basis vectors defines a right or left-handed coordinate system.
|
|
|
|
<glm/gtx/handed_coordinate_system.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_inertia GLM_GTX_inertia: Intertial matrix
|
|
\ingroup gtx
|
|
|
|
\brief Create inertia matrices
|
|
|
|
<glm/gtx/inertia.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_int_10_10_10_2 GLM_GTX_int_10_10_10_2: Packed integer
|
|
\ingroup gtx
|
|
|
|
\brief Pack vector to 1010102 integers. Storage only.
|
|
|
|
<glm/gtx/int_10_10_10_2.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_integer GLM_GTX_integer: Extended integer functions
|
|
\ingroup gtx
|
|
|
|
\brief Add support for integer for core functions
|
|
|
|
<glm/gtx/integer.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_intersect GLM_GTX_intersect: Intersection tests
|
|
\ingroup gtx
|
|
|
|
\brief Add intersection functions
|
|
|
|
<glm/gtx/intersect.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_log_base GLM_GTX_log_base: Log with base
|
|
\ingroup gtx
|
|
|
|
\brief Logarithm for any base. base can be a vector or a scalar.
|
|
|
|
<glm/gtx/log_base.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_matrix_cross_product GLM_GTX_matrix_cross_product: Cross product matrix form
|
|
\ingroup gtx
|
|
|
|
\brief Build cross product matrices
|
|
|
|
<glm/gtx/matrix_cross_product.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_matrix_major_storage GLM_GTX_matrix_major_storage: Build matrix
|
|
\ingroup gtx
|
|
|
|
\brief Build matrices with specific matrix order, row or column
|
|
|
|
<glm/gtx/matrix_major_storage.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_matrix_operation GLM_GTX_matrix_operation: Extended matrix operations
|
|
\ingroup gtx
|
|
|
|
\brief Build diagonal matrices from vectors.
|
|
|
|
<glm/gtx/matrix_operation.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_matrix_query GLM_GTX_matrix_query: Query matrix properties
|
|
\ingroup gtx
|
|
|
|
\brief Query to evaluate matrix properties
|
|
|
|
<glm/gtx/matrix_query.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_mixed_product GLM_GTX_mixed_producte: Mixed product
|
|
\ingroup gtx
|
|
|
|
\brief Mixed product of 3 vectors.
|
|
|
|
<glm/gtx/mixed_product.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_multiple GLM_GTX_multiple: Multiples
|
|
\ingroup gtx
|
|
|
|
\brief Find the closest number of a number multiple of other number.
|
|
|
|
<glm/gtx/multiple.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_norm GLM_GTX_norm: Vector norm calculations
|
|
\ingroup gtx
|
|
|
|
\brief Various way to compute vector norms.
|
|
|
|
<glm/gtx/norm.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_normal GLM_GTX_normal: Compute normals
|
|
\ingroup gtx
|
|
|
|
\brief Compute the normal of a triangle.
|
|
|
|
<glm/gtx/normal.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_normalize_dot GLM_GTX_normalize_dot: Normalize dot product
|
|
\ingroup gtx
|
|
|
|
\brief Dot product of vectors that need to be normalize with a single square root.
|
|
|
|
<glm/gtx/normalized_dot.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_number_precision GLM_GTX_number_precision: Number precision
|
|
\ingroup gtx
|
|
|
|
\brief Defined size types.
|
|
|
|
<glm/gtx/number_precision.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_ocl_type GLM_GTX_ocl_type: OpenCL types
|
|
\ingroup gtx
|
|
|
|
\brief OpenCL types.
|
|
|
|
<glm/gtx/ocl_type.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_optimum_pow GLM_GTX_optimum_pow: Optimum pow
|
|
\ingroup gtx
|
|
|
|
\brief Integer exponentiation of power functions.
|
|
|
|
<glm/gtx/optimum_pow.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_orthonormalize GLM_GTX_orthonormalize: Orthonormalize
|
|
\ingroup gtx
|
|
|
|
\brief Orthonormalize matrices.
|
|
|
|
<glm/gtx/orthonormalize.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_perpendicular GLM_GTX_perpendicular: Perpendicular
|
|
\ingroup gtx
|
|
|
|
\brief Perpendicular of a vector from other one
|
|
|
|
<glm/gtx/perpendicular.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_polar_coordinates GLM_GTX_polar_coordinates: Polar coordinates
|
|
\ingroup gtx
|
|
|
|
\brief Conversion from Euclidean space to polar space and revert.
|
|
|
|
<glm/gtx/polar_coordinates.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_projection GLM_GTX_projection: Projection
|
|
\ingroup gtx
|
|
|
|
\brief Projection of a vector to other one
|
|
|
|
<glm/gtx/projection.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_quaternion GLM_GTX_quaternion: Extented quaternion types and functions
|
|
\ingroup gtx
|
|
|
|
\brief Extented quaternion types and functions
|
|
|
|
<glm/gtx/quaternion.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_random GLM_GTX_random: Random
|
|
\ingroup gtx
|
|
|
|
\brief Generate random number from various distribution methods
|
|
|
|
<glm/gtx/random.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_raw_data GLM_GTX_raw_data: Raw data
|
|
\ingroup gtx
|
|
|
|
\brief Projection of a vector to other one
|
|
|
|
<glm/gtx/raw_data.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_reciprocal GLM_GTX_reciprocal: Reciprocal
|
|
\ingroup gtx
|
|
|
|
\brief Define secant, cosecant and cotangent functions.
|
|
|
|
<glm/gtx/reciprocal.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_rotate_vector GLM_GTX_rotate_vector: Rotate vector
|
|
\ingroup gtx
|
|
|
|
\brief Function to directly rotate a vector
|
|
|
|
<glm/gtx/rotate_vector.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_simd_mat4 GLM_GTX_simd_mat4: SIMD mat4 type and functions
|
|
\ingroup gtx
|
|
|
|
\brief SIMD implementation of mat4 type.
|
|
|
|
<glm/gtx/simd_mat4.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_simd_vec4 GLM_GTX_simd_vec4: SIMD vec4 type and functions
|
|
\ingroup gtx
|
|
|
|
\brief SIMD implementation of vec4 type.
|
|
|
|
<glm/gtx/simd_vec4.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_spline GLM_GTX_spline: Spline
|
|
\ingroup gtx
|
|
|
|
\brief Spline functions
|
|
|
|
<glm/gtx/spline.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_string_cast GLM_GTX_string_cast: String cast
|
|
\ingroup gtx
|
|
|
|
\brief Setup strings for GLM type values
|
|
|
|
<glm/gtx/string_cast.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_transform GLM_GTX_transform: Extented transformation matrices
|
|
\ingroup gtx
|
|
|
|
\brief Add transformation matrices
|
|
|
|
<glm/gtx/transform.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_transform2 GLM_GTX_transform2: Extra transformation matrices
|
|
\ingroup gtx
|
|
|
|
\brief Add extra transformation matrices
|
|
|
|
<glm/gtx/transform2.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_unsigned_int GLM_GTX_unsigned_int: Unsigned int
|
|
\ingroup gtx
|
|
|
|
\brief Add support for unsigned integer for core functions
|
|
|
|
<glm/gtx/unsigned_int.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_vector_access GLM_GTX_vector_access: Vector access
|
|
\ingroup gtx
|
|
|
|
\brief Function to set values to vectors
|
|
|
|
<glm/gtx/vector_access.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_vector_angle GLM_GTX_vector_angle: Vector angle
|
|
\ingroup gtx
|
|
|
|
\brief Compute angle between vectors
|
|
|
|
<glm/gtx/vector_angle.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_vector_query GLM_GTX_vector_query: Vector query
|
|
\ingroup gtx
|
|
|
|
\brief Query informations of vector types
|
|
|
|
<glm/gtx/vector_query.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_verbose_operator GLM_GTX_verbose_operator: Verbose operator
|
|
\ingroup gtx
|
|
|
|
\brief Use words to replace operators
|
|
|
|
<glm/gtx/verbose_operator.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|
|
/*!
|
|
\defgroup gtx_wrap GLM_GTX_wrap: Texture coordinate wrap modes
|
|
\ingroup gtx
|
|
|
|
\brief Wrapping mode of texture coordinates.
|
|
|
|
<glm/gtx/wrap.hpp> need to be included to use these functionalities.
|
|
**/
|
|
|