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