From f1a56a6ba126f4550e216f4f9623f92d7a952ed1 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 18 Jun 2011 13:27:58 +0100 Subject: [PATCH] Created doxygen modules for core functions --- glm/core/func_common.hpp | 65 +++++++++---------- glm/core/func_exponential.hpp | 9 +-- glm/core/func_geometric.hpp | 81 +++++++++++++----------- glm/core/func_integer.hpp | 55 +++++++++------- glm/core/func_matrix.hpp | 97 ++++++++++++++++------------- glm/core/func_noise.hpp | 47 ++++++++------ glm/core/func_packing.hpp | 47 ++++++++------ glm/core/func_trigonometric.hpp | 79 +++++++++++++---------- glm/core/func_vector_relational.hpp | 20 ++++-- 9 files changed, 275 insertions(+), 225 deletions(-) diff --git a/glm/core/func_common.hpp b/glm/core/func_common.hpp index a8f17b22..5e06e24d 100644 --- a/glm/core/func_common.hpp +++ b/glm/core/func_common.hpp @@ -33,8 +33,8 @@ /// These all operate component-wise. The description is per component. /////////////////////////////////////////////////////////////////////////////////// -#ifndef glm_core_func_common -#define glm_core_func_common +#ifndef GLM_CORE_func_common +#define GLM_CORE_func_common GLM_VERSION #include "_fixes.hpp" @@ -45,7 +45,6 @@ namespace glm /// Returns x if x >= 0; otherwise, it returns -x. /// - /// @see /// @see - GLSL abs man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -53,7 +52,6 @@ namespace glm /// Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. /// - /// @see /// @see - GLSL sign man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -61,7 +59,6 @@ namespace glm //! Returns a value equal to the nearest integer that is less then or equal to x. //! - /// @see /// @see - GLSL floor man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -70,7 +67,6 @@ namespace glm //! Returns a value equal to the nearest integer to x //! whose absolute value is not larger than the absolute value of x. //! - /// @see /// @see - GLSL trunc man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -82,7 +78,6 @@ namespace glm //! This includes the possibility that round(x) returns the //! same value as roundEven(x) for all values of x. //! - /// @see /// @see - GLSL round man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -92,7 +87,6 @@ namespace glm //! A fractional part of 0.5 will round toward the nearest even //! integer. (Both 3.5 and 4.5 for x will return 4.0.) //! - /// @see /// @see - GLSL roundEven man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -101,7 +95,6 @@ namespace glm //! Returns a value equal to the nearest integer //! that is greater than or equal to x. //! - /// @see /// @see - GLSL ceil man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -109,7 +102,6 @@ namespace glm //! Return x - floor(x). //! - /// @see /// @see - GLSL fract man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -118,7 +110,6 @@ namespace glm //! Modulus. Returns x - y * floor(x / y) //! for each component in x using the floating point value y. //! - /// @see /// @see - GLSL mod man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -129,7 +120,6 @@ namespace glm //! Modulus. Returns x - y * floor(x / y) //! for each component in x using the floating point value y. //! - /// @see /// @see - GLSL mod man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -142,7 +132,6 @@ namespace glm //! return value and the output parameter will have the same //! sign as x. //! - /// @see /// @see - GLSL modf man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -152,7 +141,6 @@ namespace glm /// Returns y if y < x; otherwise, it returns x. /// - /// @see /// @see - GLSL min man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -167,7 +155,6 @@ namespace glm /// Returns y if x < y; otherwise, it returns x. /// - /// @see /// @see - GLSL max man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -183,7 +170,6 @@ namespace glm //! Returns min(max(x, minVal), maxVal) for each component in x //! using the floating-point values minVal and maxVal. //! - /// @see /// @see - GLSL clamp man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -214,22 +200,37 @@ namespace glm //! provides different functionality than //! genType mix(genType x, genType y, genType(a)) //! where a is a Boolean vector. - //! - //! @see + /// /// @see - GLSL mix man page /// @see - GLSL 4.10.6 specification, section 8.3 - //! - //! @param[in] x Floating point scalar or vector. - //! @param[in] y Floating point scalar or vector. - //! @param[in] a Floating point or boolean scalar or vector. - //! - //! @todo Test when 'a' is a boolean. + /// + /// @param[in] x Value to interpolate. + /// @param[in] y Value to interpolate. + /// @param[in] a Interpolant. + /// + /// @tparam genTypeT Floating point scalar or vector. + /// @tparam genTypeU Floating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT. + /// + /// @code + /// #include + /// ... + /// float a; + /// bool b; + /// glm::dvec3 e; + /// glm::dvec3 f; + /// glm::vec4 g; + /// glm::vec4 h; + /// ... + /// glm::vec4 r = glm::mix(g, h, a); // Interpolate with a floating-point scalar two vectors. + /// glm::vec4 s = glm::mix(g, h, b); // Teturns g or h; + /// glm::dvec3 t = glm::mix(e, f, a); // Types of the third parameter is not required to match with the first and the second. + /// glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter. + /// @endcode template genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a); //! Returns 0.0 if x < edge, otherwise it returns 1.0. - //! - //! @see + //! /// @see - GLSL step man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -252,7 +253,6 @@ namespace glm //! return t * t * (3 – 2 * t); //! Results are undefined if edge0 >= edge1. //! - //! @see /// @see - GLSL smoothstep man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -273,7 +273,6 @@ namespace glm //! including for implementations with no NaN //! representations. //! - //! @see /// @see - GLSL isnan man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -285,7 +284,6 @@ namespace glm //! otherwise, including for implementations with no infinity //! representations. //! - //! @see /// @see - GLSL isinf man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -295,7 +293,6 @@ namespace glm //! the encoding of a floating-point value. The floatingpoint //! value's bit-level representation is preserved. //! - //! @see /// @see - GLSL floatBitsToInt man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -305,7 +302,6 @@ namespace glm //! the encoding of a floating-point value. The floatingpoint //! value's bit-level representation is preserved. //! - //! @see /// @see - GLSL floatBitsToUint man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -317,7 +313,6 @@ namespace glm //! resulting floating point value is unspecified. Otherwise, //! the bit-level representation is preserved. //! - //! @see /// @see - GLSL intBitsToFloat man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -329,7 +324,6 @@ namespace glm //! resulting floating point value is unspecified. Otherwise, //! the bit-level representation is preserved. //! - //! @see /// @see - GLSL uintBitsToFloat man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -337,7 +331,6 @@ namespace glm //! Computes and returns a * b + c. //! - //! @see /// @see - GLSL fma man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -353,7 +346,6 @@ namespace glm //! are both zero. For a floating-point value that is an //! infinity or is not a number, the results are undefined. //! - //! @see /// @see - GLSL frexp man page /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -366,7 +358,6 @@ namespace glm //! If this product is too large to be represented in the //! floating-point type, the result is undefined. //! - //! @see /// @see - GLSL ldexp man page; /// @see - GLSL 4.10.6 specification, section 8.3 template @@ -377,4 +368,4 @@ namespace glm #include "func_common.inl" -#endif//glm_core_func_common +#endif//GLM_CORE_func_common diff --git a/glm/core/func_exponential.hpp b/glm/core/func_exponential.hpp index 222c0285..37e1053e 100644 --- a/glm/core/func_exponential.hpp +++ b/glm/core/func_exponential.hpp @@ -34,7 +34,7 @@ /////////////////////////////////////////////////////////////////////////////////// #ifndef glm_core_func_exponential -#define glm_core_func_exponential +#define glm_core_func_exponential GLM_VERSION namespace glm { @@ -43,7 +43,6 @@ namespace glm /// Returns x raised to the y power. /// - /// @see /// @see - GLSL pow man page /// @see - GLSL 4.10.6 specification, section 8.2 template @@ -51,7 +50,6 @@ namespace glm /// Returns the natural exponentiation of x, i.e., e^x. /// - /// @see /// @see - GLSL exp man page /// @see - GLSL 4.10.6 specification, section 8.2 template @@ -61,7 +59,6 @@ namespace glm /// returns the value y which satisfies the equation x = e^y. /// Results are undefined if x <= 0. /// - /// @see /// @see - GLSL log man page /// @see - GLSL 4.10.6 specification, section 8.2 template @@ -69,7 +66,6 @@ namespace glm /// Returns 2 raised to the x power. /// - /// @see /// @see - GLSL exp2 man page /// @see - GLSL 4.10.6 specification, section 8.2 template @@ -78,7 +74,6 @@ namespace glm /// Returns the base 2 log of x, i.e., returns the value y, /// which satisfies the equation x = 2 ^ y. /// - /// @see /// @see - GLSL log2 man page /// @see - GLSL 4.10.6 specification, section 8.2 template @@ -86,7 +81,6 @@ namespace glm /// Returns the positive square root of x. /// - /// @see /// @see - GLSL sqrt man page /// @see - GLSL 4.10.6 specification, section 8.2 template @@ -94,7 +88,6 @@ namespace glm /// Returns the reciprocal of the positive square root of x. /// - /// @see /// @see - GLSL inversesqrt man page /// @see - GLSL 4.10.6 specification, section 8.2 template diff --git a/glm/core/func_geometric.hpp b/glm/core/func_geometric.hpp index 849bbe15..c0f03b88 100644 --- a/glm/core/func_geometric.hpp +++ b/glm/core/func_geometric.hpp @@ -24,85 +24,92 @@ /// @file glm/core/func_geometric.hpp /// @date 2008-08-03 / 2011-06-14 /// @author Christophe Riccio +/// +/// @see - GLSL 4.10.6 specification, section 8.5 +/// +/// @defgroup core_func_geometric Geometric functions +/// @ingroup core +/// +/// These operate on vectors as vectors, not component-wise. /////////////////////////////////////////////////////////////////////////////////// #ifndef glm_core_func_geometric -#define glm_core_func_geometric +#define glm_core_func_geometric GLM_VERSION namespace glm { - /// \addtogroup core_funcs + /// @addtogroup core_func_geometric /// @{ - //! Returns the length of x, i.e., sqrt(x * x). - //! - //! \li GLSL length man page - //! \li GLSL 1.30.08 specification, section 8.4 + /// Returns the length of x, i.e., sqrt(x * x). + /// + /// @see - GLSL length man page + /// @see - GLSL 4.10.6 specification, section 8.5 template typename genType::value_type length( genType const & x); - //! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). - //! - //! \li GLSL distance man page - //! \li GLSL 1.30.08 specification, section 8.4 + /// Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). + /// + /// @see - GLSL distance man page + /// @see - GLSL 4.10.6 specification, section 8.5 template typename genType::value_type distance( genType const & p0, genType const & p1); - //! Returns the dot product of x and y, i.e., result = x * y. - //! - //! \li GLSL dot man page - //! \li GLSL 1.30.08 specification, section 8.4 + /// Returns the dot product of x and y, i.e., result = x * y. + /// + /// @see - GLSL dot man page + /// @see - GLSL 4.10.6 specification, section 8.5 template typename genType::value_type dot( genType const & x, genType const & y); - //! Returns the cross product of x and y. - //! - //! \li GLSL cross man page - //! \li GLSL 1.30.08 specification, section 8.4 + /// Returns the cross product of x and y. + /// + /// @see - GLSL cross man page + /// @see - GLSL 4.10.6 specification, section 8.5 template detail::tvec3 cross( detail::tvec3 const & x, detail::tvec3 const & y); - //! Returns a vector in the same direction as x but with length of 1. - //! - //! \li GLSL normalize man page - //! \li GLSL 1.30.08 specification, section 8.4 + /// Returns a vector in the same direction as x but with length of 1. + /// + /// @see - GLSL normalize man page + /// @see - GLSL 4.10.6 specification, section 8.5 template genType normalize( genType const & x); - //! If dot(Nref, I) < 0.0, return N, otherwise, return -N. - //! - //! \li GLSL faceforward man page - //! \li GLSL 1.30.08 specification, section 8.4 + /// If dot(Nref, I) < 0.0, return N, otherwise, return -N. + /// + /// @see - GLSL faceforward man page + /// @see - GLSL 4.10.6 specification, section 8.5 template genType faceforward( genType const & N, genType const & I, genType const & Nref); - //! For the incident vector I and surface orientation N, - //! returns the reflection direction : result = I - 2.0 * dot(N, I) * N. - //! - //! \li GLSL reflect man page - //! \li GLSL 1.30.08 specification, section 8.4 + /// For the incident vector I and surface orientation N, + /// returns the reflection direction : result = I - 2.0 * dot(N, I) * N. + /// + /// @see - GLSL reflect man page + /// @see - GLSL 4.10.6 specification, section 8.5 template genType reflect( genType const & I, genType const & N); - //! For the incident vector I and surface normal N, - //! and the ratio of indices of refraction eta, - //! return the refraction vector. - //! - //! \li GLSL refract man page - //! \li GLSL 1.30.08 specification, section 8.4 + /// For the incident vector I and surface normal N, + /// and the ratio of indices of refraction eta, + /// return the refraction vector. + /// + /// @see - GLSL refract man page + /// @see - GLSL 4.10.6 specification, section 8.5 template genType refract( genType const & I, diff --git a/glm/core/func_integer.hpp b/glm/core/func_integer.hpp index a856c781..700f5ec4 100644 --- a/glm/core/func_integer.hpp +++ b/glm/core/func_integer.hpp @@ -22,24 +22,33 @@ /// /// @ref core /// @file glm/core/func_integer.hpp -/// @date 2010-03-17 / 2011-06-14 +/// @date 2010-03-17 / 2011-06-18 /// @author Christophe Riccio +/// +/// @see - GLSL 4.10.6 specification, section 8.8 +/// +/// @defgroup core_func_integer Integer functions +/// @ingroup core +/// +/// These all operate component-wise. The description is per component. +/// The notation [a, b] means the set of bits from bit-number a through bit-number +/// b, inclusive. The lowest-order bit is bit 0. /////////////////////////////////////////////////////////////////////////////////// #ifndef glm_core_func_integer -#define glm_core_func_integer +#define glm_core_func_integer GLM_VERSION namespace glm { - /// @addtogroup core_funcs + /// @addtogroup core_func_integer /// @{ //! Adds 32-bit unsigned integer x and y, returning the sum //! modulo pow(2, 32). The value carry is set to 0 if the sum was //! less than pow(2, 32), or to 1 otherwise. //! - //! \li GLSL uaddCarry man page - //! \li GLSL 4.00.08 specification, section 8.8 + /// @see - GLSL uaddCarry man page + /// @see - GLSL 4.10.6 specification, section 8.8 template genUType uaddCarry( genUType const & x, @@ -50,8 +59,8 @@ namespace glm //! the difference if non-negative, or pow(2, 32) plus the difference //! otherwise. The value borrow is set to 0 if x >= y, or to 1 otherwise. //! - //! \li GLSL usubBorrow man page - //! \li GLSL 4.00.08 specification, section 8.8 + /// @see - GLSL usubBorrow man page + /// @see - GLSL 4.10.6 specification, section 8.8 template genUType usubBorrow( genUType const & x, @@ -62,8 +71,8 @@ namespace glm //! result. The 32 least-significant bits are returned in lsb. //! The 32 most-significant bits are returned in msb. //! - //! \li GLSL umulExtended man page - //! \li GLSL 4.00.08 specification, section 8.8 + /// @see - GLSL umulExtended man page + /// @see - GLSL 4.10.6 specification, section 8.8 template void umulExtended( genUType const & x, @@ -75,8 +84,8 @@ namespace glm //! result. The 32 least-significant bits are returned in lsb. //! The 32 most-significant bits are returned in msb. //! - //! \li GLSL imulExtended man page - //! \li GLSL 4.00.08 specification, section 8.8 + /// @see - GLSL imulExtended man page + /// @see - GLSL 4.10.6 specification, section 8.8 template void imulExtended( genIType const & x, @@ -95,8 +104,8 @@ namespace glm //! offset and bits is greater than the number of bits used //! to store the operand. //! - //! \li GLSL bitfieldExtract man page - //! \li GLSL 4.00.08 specification, section 8.8 + /// @see - GLSL bitfieldExtract man page + /// @see - GLSL 4.10.6 specification, section 8.8 template genIUType bitfieldExtract( genIUType const & Value, @@ -113,8 +122,8 @@ namespace glm //! offset and bits is greater than the number of bits used to //! store the operand. //! - //! \li GLSL bitfieldInsert man page - //! \li GLSL 4.00.08 specification, section 8.8 + /// @see - GLSL bitfieldInsert man page + /// @see - GLSL 4.10.6 specification, section 8.8 template genIUType bitfieldInsert( genIUType const & Base, @@ -126,15 +135,15 @@ namespace glm //! The bit numbered n of the result will be taken from bit (bits - 1) - n of value, //! where bits is the total number of bits used to represent value. //! - //! \li GLSL bitfieldReverse man page - //! \li GLSL 4.00.08 specification, section 8.8 + /// @see - GLSL bitfieldReverse man page + /// @see - GLSL 4.10.6 specification, section 8.8 template genIUType bitfieldReverse(genIUType const & value); //! Returns the number of bits set to 1 in the binary representation of value. //! - //! \li GLSL bitCount man page - //! \li GLSL 4.00.08 specification, section 8.8 + /// @see - GLSL bitCount man page + /// @see - GLSL 4.10.6 specification, section 8.8 template class C> typename C::signed_type bitCount(C const & Value); @@ -142,8 +151,8 @@ namespace glm //! 1 in the binary representation of value. //! If value is zero, -1 will be returned. //! - //! \li GLSL findLSB man page - //! \li GLSL 4.00.08 specification, section 8.8 + /// @see - GLSL findLSB man page + /// @see - GLSL 4.10.6 specification, section 8.8 template class C> typename C::signed_type findLSB(C const & Value); @@ -152,8 +161,8 @@ namespace glm //! For negative integers, the result will be the bit number of the most significant //! bit set to 0. For a value of zero or negative one, -1 will be returned. //! - //! \li GLSL findMSB man page - //! \li GLSL 4.00.08 specification, section 8.8 + /// @see - GLSL findMSB man page + /// @see - GLSL 4.10.6 specification, section 8.8 template class C> typename C::signed_type findMSB(C const & Value); diff --git a/glm/core/func_matrix.hpp b/glm/core/func_matrix.hpp index c40a4e82..01aa08ad 100644 --- a/glm/core/func_matrix.hpp +++ b/glm/core/func_matrix.hpp @@ -24,89 +24,100 @@ /// @file glm/core/func_matrix.hpp /// @date 2008-08-03 / 2011-06-15 /// @author Christophe Riccio +/// +/// @see - GLSL 4.10.6 specification, section 8.6 +/// +/// @defgroup core_func_matrix Matrix functions +/// @ingroup core +/// +/// 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. Only the single-precision +/// floating point version is shown. /////////////////////////////////////////////////////////////////////////////////// -#ifndef glm_core_func_matrix -#define glm_core_func_matrix +#ifndef GLM_CORE_func_matrix +#define GLM_CORE_func_matrix GLM_VERSION namespace glm { - /// @addtogroup core_funcs + /// @addtogroup core_func_matrix /// @{ - //! Multiply matrix x by matrix y component-wise, i.e., - //! result[i][j] is the scalar product of x[i][j] and y[i][j]. - //! - //! \li GLSL matrixCompMult man page - //! \li GLSL 1.30.08 specification, section 8.5 + /// Multiply matrix x by matrix y component-wise, i.e., + /// result[i][j] is the scalar product of x[i][j] and y[i][j]. + /// + /// @see - GLSL matrixCompMult man page + /// @see - GLSL 4.10.6 specification, section 8.6 template matType matrixCompMult( matType const & x, matType const & y); - //! Treats the first parameter c as a column vector - //! and the second parameter r as a row vector - //! and does a linear algebraic matrix multiply c * r. - //! - //! \li GLSL outerProduct man page - //! \li GLSL 1.30.08 specification, section 8.5 + /// Treats the first parameter c as a column vector + /// and the second parameter r as a row vector + /// and does a linear algebraic matrix multiply c * r. + /// + /// @see - GLSL outerProduct man page + /// @see - GLSL 4.10.6 specification, section 8.6 template matType outerProduct( vecType const & c, vecType const & r); - //! Returns the transposed matrix of x - //! - //! \li GLSL transpose man page - //! \li GLSL 1.30.08 specification, section 8.5 + /// Returns the transposed matrix of x + /// + /// @see - GLSL transpose man page + /// @see - GLSL 4.10.6 specification, section 8.6 template typename matType::transpose_type transpose( matType const & x); - //! Return the determinant of a mat2 matrix. - //! - //! \li GLSL determinant man page - //! \li GLSL 1.30.08 specification, section 8.5 + /// Return the determinant of a mat2 matrix. + /// + /// @see - GLSL determinant man page + /// @see - GLSL 4.10.6 specification, section 8.6 template typename detail::tmat2x2::value_type determinant( detail::tmat2x2 const & m); - //! Return the determinant of a mat3 matrix. - //! - //! \li GLSL determinant man page - //! \li GLSL 1.30.08 specification, section 8.5 + /// Return the determinant of a mat3 matrix. + /// + /// @see - GLSL determinant man page + /// @see - GLSL 4.10.6 specification, section 8.6 template typename detail::tmat3x3::value_type determinant( detail::tmat3x3 const & m); - //! Return the determinant of a mat4 matrix. - //! - //! \li GLSL determinant man page - //! \li GLSL 1.30.08 specification, section 8.5 + /// Return the determinant of a mat4 matrix. + /// + /// @see - GLSL determinant man page + /// @see - GLSL 4.10.6 specification, section 8.6 template typename detail::tmat4x4::value_type determinant( detail::tmat4x4 const & m); - //! Return the inverse of a mat2 matrix. - //! - //! \li GLSL inverse man page - //! \li GLSL 1.40.07 specification, section 8.5 + /// Return the inverse of a mat2 matrix. + /// + /// @see - GLSL inverse man page + /// @see - GLSL 4.10.6 specification, section 8.6 template detail::tmat2x2 inverse( detail::tmat2x2 const & m); - //! Return the inverse of a mat3 matrix. - //! - //! \li GLSL inverse man page - //! \li GLSL 1.40.07 specification, section 8.5 + /// Return the inverse of a mat3 matrix. + /// + /// @see - GLSL inverse man page + /// @see - GLSL 4.10.6 specification, section 8.6 template detail::tmat3x3 inverse( detail::tmat3x3 const & m); - //! Return the inverse of a mat4 matrix. - //! - //! \li GLSL inverse man page - //! \li GLSL 1.40.07 specification, section 8.5 + /// Return the inverse of a mat4 matrix. + /// + /// @see - GLSL inverse man page + /// @see - GLSL 4.10.6 specification, section 8.6 template detail::tmat4x4 inverse( detail::tmat4x4 const & m); @@ -116,4 +127,4 @@ namespace glm #include "func_matrix.inl" -#endif//glm_core_func_matrix +#endif//GLM_CORE_func_matrix diff --git a/glm/core/func_noise.hpp b/glm/core/func_noise.hpp index 3b818151..1ed23442 100644 --- a/glm/core/func_noise.hpp +++ b/glm/core/func_noise.hpp @@ -22,43 +22,52 @@ /// /// @ref core /// @file glm/core/func_noise.hpp -/// @date 2008-08-01 / 2011-06-15 +/// @date 2008-08-01 / 2011-06-18 /// @author Christophe Riccio +/// +/// @see - GLSL 4.10.6 specification, section 8.11 +/// +/// @defgroup core_func_noise Noise functions +/// @ingroup core +/// +/// Noise functions are stochastic functions that can be used to increase visual +/// complexity. Values returned by the following noise functions give the +/// appearance of randomness, but are not truly random. /////////////////////////////////////////////////////////////////////////////////// #ifndef glm_core_func_noise -#define glm_core_func_noise +#define glm_core_func_noise GLM_VERSION namespace glm { - /// @addtogroup core_funcs + /// @addtogroup core_func_noise /// @{ - //! Returns a 1D noise value based on the input value x. - //! - //! \li GLSL noise1 man page - //! \li GLSL 1.30.08 specification, section 8.9 + /// Returns a 1D noise value based on the input value x. + /// + /// @see - GLSL noise1 man page + /// @see - GLSL 4.10.6 specification, section 8.11 template typename genType::value_type noise1(genType const & x); - //! Returns a 2D noise value based on the input value x. - //! - //! \li GLSL noise2 man page - //! \li GLSL 1.30.08 specification, section 8.9 + /// Returns a 2D noise value based on the input value x. + /// + /// @see - GLSL noise2 man page + /// @see - GLSL 4.10.6 specification, section 8.11 template detail::tvec2 noise2(genType const & x); - //! Returns a 3D noise value based on the input value x. - //! - //! \li GLSL noise3 man page - //! \li GLSL 1.30.08 specification, section 8.9 + /// Returns a 3D noise value based on the input value x. + /// + /// @see - GLSL noise3 man page + /// @see - GLSL 4.10.6 specification, section 8.11 template detail::tvec3 noise3(genType const & x); - //! Returns a 4D noise value based on the input value x. - //! - //! \li GLSL noise4 man page - //! \li GLSL 1.30.08 specification, section 8.9 + /// Returns a 4D noise value based on the input value x. + /// + /// @see - GLSL noise4 man page + /// @see - GLSL 4.10.6 specification, section 8.11 template detail::tvec4 noise4(genType const & x); diff --git a/glm/core/func_packing.hpp b/glm/core/func_packing.hpp index 759e649f..7907eadc 100644 --- a/glm/core/func_packing.hpp +++ b/glm/core/func_packing.hpp @@ -24,14 +24,21 @@ /// @file glm/core/func_packing.hpp /// @date 2010-03-17 / 2011-06-15 /// @author Christophe Riccio +/// +/// @see - GLSL 4.10.6 specification, section 8.4 +/// +/// @defgroup core_func_packing Floating-Point Pack and Unpack Functions +/// @ingroup core +/// +/// These functions do not operate component-wise, rather as described in each case. /////////////////////////////////////////////////////////////////////////////////// -#ifndef glm_core_func_packing -#define glm_core_func_packing +#ifndef GLM_CORE_func_packing +#define GLM_CORE_func_packing GLM_VERSION namespace glm { - /// @addtogroup core_funcs + /// @addtogroup core_func_packing /// @{ //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. @@ -43,8 +50,8 @@ namespace glm //! The first component of the vector will be written to the least significant bits of the output; //! the last component will be written to the most significant bits. //! - //! \li GLSL packUnorm2x16 man page - //! \li GLSL 4.00.08 specification, section 8.4 + /// @see - GLSL packUnorm2x16 man page + /// @see - GLSL 4.10.6 specification, section 8.4 detail::uint32 packUnorm2x16(detail::tvec2 const & v); //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. @@ -56,8 +63,8 @@ namespace glm //! The first component of the vector will be written to the least significant bits of the output; //! the last component will be written to the most significant bits. //! - //! \li GLSL packUnorm4x8 man page - //! \li GLSL 4.00.08 specification, section 8.4 + /// @see - GLSL packUnorm4x8 man page + /// @see - GLSL 4.10.6 specification, section 8.4 detail::uint32 packUnorm4x8(detail::tvec4 const & v); //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. @@ -69,8 +76,8 @@ namespace glm //! The first component of the vector will be written to the least significant bits of the output; //! the last component will be written to the most significant bits. //! - //! \li GLSL packSnorm4x8 man page - //! \li GLSL 4.00.08 specification, section 8.4 + /// @see - GLSL packSnorm4x8 man page + /// @see - GLSL 4.10.6 specification, section 8.4 detail::uint32 packSnorm4x8(detail::tvec4 const & v); //! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. @@ -82,8 +89,8 @@ namespace glm //! The first component of the returned vector will be extracted from the least significant bits of the input; //! the last component will be extracted from the most significant bits. //! - //! \li GLSL unpackUnorm2x16 man page - //! \li GLSL 4.00.08 specification, section 8.4 + /// @see - GLSL unpackUnorm2x16 man page + /// @see - GLSL 4.10.6 specification, section 8.4 detail::tvec2 unpackUnorm2x16(detail::uint32 const & p); //! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. @@ -95,8 +102,8 @@ namespace glm //! The first component of the returned vector will be extracted from the least significant bits of the input; //! the last component will be extracted from the most significant bits. //! - //! \li GLSL unpackUnorm4x8 man page - //! \li GLSL 4.00.08 specification, section 8.4 + /// @see - GLSL unpackUnorm4x8 man page + /// @see - GLSL 4.10.6 specification, section 8.4 detail::tvec4 unpackUnorm4x8(detail::uint32 const & p); //! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. @@ -108,8 +115,8 @@ namespace glm //! The first component of the returned vector will be extracted from the least significant bits of the input; //! the last component will be extracted from the most significant bits. //! - //! \li GLSL unpackSnorm4x8 man page - //! \li GLSL 4.00.08 specification, section 8.4 + /// @see - GLSL unpackSnorm4x8 man page + /// @see - GLSL 4.10.6 specification, section 8.4 detail::tvec4 unpackSnorm4x8(detail::uint32 const & p); //! Returns a double-precision value obtained by packing the components of v into a 64-bit value. @@ -118,8 +125,8 @@ namespace glm //! The first vector component specifies the 32 least significant bits; //! the second component specifies the 32 most significant bits. //! - //! \li GLSL packDouble2x32 man page - //! \li GLSL 4.00.08 specification, section 8.4 + /// @see - GLSL packDouble2x32 man page + /// @see - GLSL 4.10.6 specification, section 8.4 double packDouble2x32(detail::tvec2 const & v); //! Returns a two-component unsigned integer vector representation of v. @@ -127,8 +134,8 @@ namespace glm //! The first component of the vector contains the 32 least significant bits of the double; //! the second component consists the 32 most significant bits. //! - //! \li GLSL unpackDouble2x32 man page - //! \li GLSL 4.00.08 specification, section 8.4 + /// @see - GLSL unpackDouble2x32 man page + /// @see - GLSL 4.10.6 specification, section 8.4 detail::tvec2 unpackDouble2x32(double const & v); /// @} @@ -136,5 +143,5 @@ namespace glm #include "func_packing.inl" -#endif//glm_core_func_packing +#endif//GLM_CORE_func_packing diff --git a/glm/core/func_trigonometric.hpp b/glm/core/func_trigonometric.hpp index 64af71a4..36613aa0 100644 --- a/glm/core/func_trigonometric.hpp +++ b/glm/core/func_trigonometric.hpp @@ -24,50 +24,61 @@ /// @file glm/core/func_trigonometric.hpp /// @date 2008-08-01 / 2011-06-15 /// @author Christophe Riccio +/// +/// @see - GLSL 4.10.6 specification, section 8.1 +/// +/// @defgroup core_func_trigonometric Angle and Trigonometry Functions +/// @ingroup core +/// +/// Function parameters specified as angle are assumed to be in units of radians. +/// In no case will any of these functions result in a divide by zero error. If +/// the divisor of a ratio is 0, then results will be undefined. +/// +/// These all operate component-wise. The description is per component. /////////////////////////////////////////////////////////////////////////////////// -#ifndef glm_core_func_trigonometric -#define glm_core_func_trigonometric +#ifndef GLM_CORE_func_trigonometric +#define GLM_CORE_func_trigonometric GLM_VERSION namespace glm { - /// @addtogroup core_funcs + /// @addtogroup core_func_trigonometric /// @{ //! Converts degrees to radians and returns the result. //! - //! \li GLSL radians man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL radians man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType radians(genType const & degrees); //! Converts radians to degrees and returns the result. //! - //! \li GLSL degrees man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL degrees man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType degrees(genType const & radians); //! The standard trigonometric sine function. //! The values returned by this function will range from [-1, 1]. //! - //! \li GLSL sin man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL sin man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType sin(genType const & angle); //! The standard trigonometric cosine function. //! The values returned by this function will range from [-1, 1]. //! - //! \li GLSL cos man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL cos man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType cos(genType const & angle); //! The standard trigonometric tangent function. //! - //! \li GLSL tan man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL tan man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType tan(genType const & angle); @@ -75,8 +86,8 @@ namespace glm //! The range of values returned by this function is [-PI/2, PI/2]. //! Results are undefined if |x| > 1. //! - //! \li GLSL asin man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL asin man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType asin(genType const & x); @@ -84,8 +95,8 @@ namespace glm //! The range of values returned by this function is [0, PI]. //! Results are undefined if |x| > 1. //! - //! \li GLSL acos man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL acos man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType acos(genType const & x); @@ -95,60 +106,60 @@ namespace glm //! by this function is [-PI, PI]. Results are undefined //! if x and y are both 0. //! - //! \li GLSL atan man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL atan man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType atan(genType const & y, genType const & x); //! Arc tangent. Returns an angle whose tangent is y_over_x. //! The range of values returned by this function is [-PI/2, PI/2]. //! - //! \li GLSL atan man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL atan man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType atan(genType const & y_over_x); //! Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2 //! - //! \li GLSL sinh man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL sinh man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType sinh(genType const & angle); //! Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2 //! - //! \li GLSL cosh man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL cosh man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType cosh(genType const & angle); //! Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) //! - //! \li GLSL tanh man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL tanh man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType tanh(genType const & angle); //! Arc hyperbolic sine; returns the inverse of sinh. //! - //! \li GLSL asinh man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL asinh man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType asinh(genType const & x); //! Arc hyperbolic cosine; returns the non-negative inverse //! of cosh. Results are undefined if x < 1. //! - //! \li GLSL acosh man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL acosh man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType acosh(genType const & x); //! Arc hyperbolic tangent; returns the inverse of tanh. //! Results are undefined if abs(x) >= 1. //! - //! \li GLSL atanh man page - //! \li GLSL 1.30.08 specification, section 8.1 + /// @see - GLSL atanh man page + /// @see - GLSL 4.10.6 specification, section 8.1 template genType atanh(genType const & x); @@ -157,6 +168,6 @@ namespace glm #include "func_trigonometric.inl" -#endif//glm_core_func_trigonometric +#endif//GLM_CORE_func_trigonometric diff --git a/glm/core/func_vector_relational.hpp b/glm/core/func_vector_relational.hpp index b5434e5c..df80aba0 100644 --- a/glm/core/func_vector_relational.hpp +++ b/glm/core/func_vector_relational.hpp @@ -24,16 +24,28 @@ /// @file glm/core/func_vector_relational.hpp /// @date 2008-08-03 / 2011-06-15 /// @author Christophe Riccio +/// +/// @see - GLSL 4.10.6 specification, section 8.7 +/// +/// @defgroup core_func_vector_relational Vector Relational Functions +/// @ingroup core +/// +/// Relational and equality operators (<, <=, >, >=, ==, !=) are defined to +/// operate on scalars and produce scalar Boolean results. For vector results, +/// use the following built-in functions. +/// +/// In all cases, the sizes of all the input and return vectors for any particular +/// call must match. /////////////////////////////////////////////////////////////////////////////////// -#ifndef glm_core_func_vector_relational -#define glm_core_func_vector_relational +#ifndef GLM_CORE_func_vector_relational +#define GLM_CORE_func_vector_relational GLM_VERSION #include "_detail.hpp" namespace glm { - /// @addtogroup core_funcs + /// @addtogroup core_func_vector_relational /// @{ //! Returns the component-wise comparison result of x < y. @@ -219,4 +231,4 @@ namespace glm #include "func_vector_relational.inl" -#endif//glm_core_func_vector_relational +#endif//GLM_CORE_func_vector_relational