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_angle: 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.
 | |
| **/
 | |
| 
 | 
