Apply 'basic grouping patch' Ticket #36

This commit is contained in:
Christophe Riccio 2011-02-05 00:49:50 +00:00
parent d92ffaa9ef
commit 2cf02a836c
90 changed files with 570 additions and 128 deletions

View File

@ -590,7 +590,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories # directories like "/usr/src/myproject". Separate the files or directories
# with spaces. # with spaces.
INPUT = ../glm INPUT = ../glm .
# This tag can be used to specify the character encoding of the source files # This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@ -607,7 +607,7 @@ INPUT_ENCODING = UTF-8
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
FILE_PATTERNS = *.hpp FILE_PATTERNS = *.hpp *.doxy
# The RECURSIVE tag can be used to turn specify whether or not subdirectories # The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO. # should be searched for input files as well. Possible values are YES and NO.
@ -641,7 +641,7 @@ EXCLUDE_PATTERNS =
# wildcard * is used, a substring. Examples: ANamespace, AClass, # wildcard * is used, a substring. Examples: ANamespace, AClass,
# AClass::ANamespace, ANamespace::*Test # AClass::ANamespace, ANamespace::*Test
EXCLUDE_SYMBOLS = detail EXCLUDE_SYMBOLS =
# The EXAMPLE_PATH tag can be used to specify one or more files or # The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see # directories that contain example code fragments that are included (see

View File

@ -21,6 +21,9 @@ namespace glm
//! Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace. //! Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace.
namespace common{ namespace common{
/// \addtogroup core_funcs
///@{
//! Returns x if x >= 0; otherwise, it returns -x. //! Returns x if x >= 0; otherwise, it returns -x.
//! (From GLSL 1.30.08 specification, section 8.3) //! (From GLSL 1.30.08 specification, section 8.3)
template <typename genFIType> template <typename genFIType>
@ -262,6 +265,8 @@ namespace glm
template <typename genType, typename genIType> template <typename genType, typename genIType>
genType ldexp(genType const & x, genIType const & exp); genType ldexp(genType const & x, genIType const & exp);
///@}
}//namespace common }//namespace common
}//namespace function }//namespace function
}//namespace core }//namespace core

View File

@ -21,6 +21,9 @@ namespace glm
//! Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace. //! Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace.
namespace exponential{ namespace exponential{
/// \addtogroup core_funcs
///@{
//! Returns x raised to the y power. //! Returns x raised to the y power.
//! (From GLSL 1.30.08 specification, section 8.2) //! (From GLSL 1.30.08 specification, section 8.2)
template <typename genType> template <typename genType>
@ -59,6 +62,8 @@ namespace glm
template <typename genType> template <typename genType>
genType inversesqrt(genType const & x); genType inversesqrt(genType const & x);
///@}
}//namespace exponential }//namespace exponential
}//namespace function }//namespace function
}//namespace core }//namespace core

View File

@ -21,6 +21,9 @@ namespace glm
//! Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace. //! Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace.
namespace geometric{ namespace geometric{
/// \addtogroup core_funcs
///@{
//! Returns the length of x, i.e., sqrt(x * x). //! Returns the length of x, i.e., sqrt(x * x).
//! (From GLSL 1.30.08 specification, section 8.4) //! (From GLSL 1.30.08 specification, section 8.4)
template <typename genType> template <typename genType>
@ -80,6 +83,8 @@ namespace glm
genType const & N, genType const & N,
typename genType::value_type const & eta); typename genType::value_type const & eta);
///@}
}//namespace geometric }//namespace geometric
}//namespace function }//namespace function
}//namespace core }//namespace core

View File

@ -21,6 +21,9 @@ namespace glm
//! Define integer functions from Section 8.8 of GLSL 4.00.8 specification. //! Define integer functions from Section 8.8 of GLSL 4.00.8 specification.
namespace integer{ namespace integer{
/// \addtogroup core_funcs
///@{
//! Adds 32-bit unsigned integer x and y, returning the sum //! 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 //! modulo pow(2, 32). The value carry is set to 0 if the sum was
//! less than pow(2, 32), or to 1 otherwise. //! less than pow(2, 32), or to 1 otherwise.
@ -128,6 +131,8 @@ namespace glm
template <typename T, template <typename> class C> template <typename T, template <typename> class C>
typename C<T>::signed_type findMSB(C<T> const & Value); typename C<T>::signed_type findMSB(C<T> const & Value);
///@}
}//namespace integer }//namespace integer
}//namespace function }//namespace function
}//namespace core }//namespace core

View File

@ -21,6 +21,9 @@ namespace glm
//! Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace. //! Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace.
namespace matrix{ namespace matrix{
/// \addtogroup core_funcs
///@{
//! Multiply matrix x by matrix y component-wise, i.e., //! 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]. //! result[i][j] is the scalar product of x[i][j] and y[i][j].
//! (From GLSL 1.30.08 specification, section 8.5) //! (From GLSL 1.30.08 specification, section 8.5)
@ -80,6 +83,8 @@ namespace glm
detail::tmat4x4<T> inverse( detail::tmat4x4<T> inverse(
detail::tmat4x4<T> const & m); detail::tmat4x4<T> const & m);
///@}
}//namespace matrix }//namespace matrix
}//namespace function }//namespace function
}//namespace core }//namespace core

View File

@ -21,6 +21,9 @@ namespace glm
// Define all noise functions from Section 8.9 of GLSL 1.30.8 specification. Included in glm namespace. // Define all noise functions from Section 8.9 of GLSL 1.30.8 specification. Included in glm namespace.
namespace noise{ namespace noise{
/// \addtogroup core_funcs
///@{
// Returns a 1D noise value based on the input value x. // Returns a 1D noise value based on the input value x.
// From GLSL 1.30.08 specification, section 8.9. // From GLSL 1.30.08 specification, section 8.9.
template <typename genType> template <typename genType>
@ -41,6 +44,8 @@ namespace glm
template <typename genType> template <typename genType>
detail::tvec4<typename genType::value_type> noise4(genType const & x); detail::tvec4<typename genType::value_type> noise4(genType const & x);
///@}
}//namespace noise }//namespace noise
}//namespace function }//namespace function
}//namespace core }//namespace core

View File

@ -21,6 +21,9 @@ namespace glm
//! Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification //! Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification
namespace packing namespace packing
{ {
/// \addtogroup core_funcs
///@{
detail::uint32 packUnorm2x16(detail::tvec2<detail::float32> const & v); detail::uint32 packUnorm2x16(detail::tvec2<detail::float32> const & v);
detail::uint32 packUnorm4x8(detail::tvec4<detail::float32> const & v); detail::uint32 packUnorm4x8(detail::tvec4<detail::float32> const & v);
detail::uint32 packSnorm4x8(detail::tvec4<detail::float32> const & v); detail::uint32 packSnorm4x8(detail::tvec4<detail::float32> const & v);
@ -32,6 +35,8 @@ namespace glm
double packDouble2x32(detail::tvec2<detail::uint32> const & v); double packDouble2x32(detail::tvec2<detail::uint32> const & v);
detail::tvec2<detail::uint32> unpackDouble2x32(double const & v); detail::tvec2<detail::uint32> unpackDouble2x32(double const & v);
///@}
}//namespace packing }//namespace packing
}//namespace function }//namespace function
}//namespace core }//namespace core

View File

@ -23,6 +23,9 @@ namespace glm
//! Included in glm namespace. //! Included in glm namespace.
namespace trigonometric{ namespace trigonometric{
/// \addtogroup core_funcs
///@{
//! Converts degrees to radians and returns the result. //! Converts degrees to radians and returns the result.
//! (From GLSL 1.30.08 specification, section 8.1) //! (From GLSL 1.30.08 specification, section 8.1)
template <typename genType> template <typename genType>
@ -111,6 +114,8 @@ namespace glm
template <typename genType> template <typename genType>
genType atanh(genType const & x); genType atanh(genType const & x);
///@}
}//namespace trigonometric }//namespace trigonometric
}//namespace function }//namespace function
}//namespace core }//namespace core

View File

@ -24,6 +24,9 @@ namespace glm
//! Included in glm namespace. //! Included in glm namespace.
namespace vector_relational namespace vector_relational
{ {
/// \addtogroup core_funcs
///@{
//! Returns the component-wise comparison result of x < y. //! Returns the component-wise comparison result of x < y.
//! (From GLSL 1.30.08 specification, section 8.6) //! (From GLSL 1.30.08 specification, section 8.6)
template <typename T, template <typename> class vecType> template <typename T, template <typename> class vecType>
@ -183,6 +186,8 @@ namespace glm
return Result; return Result;
} }
///@}
}//namespace vector_relational }//namespace vector_relational
}//namespace function }//namespace function
}//namespace core }//namespace core

View File

@ -80,64 +80,79 @@ namespace type
#else #else
//! 2 components vector of floating-point numbers. //! 2 components vector of floating-point numbers.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef precision::mediump_vec2 vec2; typedef precision::mediump_vec2 vec2;
//! 3 components vector of floating-point numbers. //! 3 components vector of floating-point numbers.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef precision::mediump_vec3 vec3; typedef precision::mediump_vec3 vec3;
//! 4 components vector of floating-point numbers. //! 4 components vector of floating-point numbers.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef precision::mediump_vec4 vec4; typedef precision::mediump_vec4 vec4;
//! 2 columns of 2 components matrix of floating-point numbers. //! 2 columns of 2 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef precision::mediump_mat2x2 mat2x2; typedef precision::mediump_mat2x2 mat2x2;
//! 2 columns of 3 components matrix of floating-point numbers. //! 2 columns of 3 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef precision::mediump_mat2x3 mat2x3; typedef precision::mediump_mat2x3 mat2x3;
//! 2 columns of 4 components matrix of floating-point numbers. //! 2 columns of 4 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef precision::mediump_mat2x4 mat2x4; typedef precision::mediump_mat2x4 mat2x4;
//! 3 columns of 2 components matrix of floating-point numbers. //! 3 columns of 2 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef precision::mediump_mat3x2 mat3x2; typedef precision::mediump_mat3x2 mat3x2;
//! 3 columns of 3 components matrix of floating-point numbers. //! 3 columns of 3 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef precision::mediump_mat3x3 mat3x3; typedef precision::mediump_mat3x3 mat3x3;
//! 3 columns of 4 components matrix of floating-point numbers. //! 3 columns of 4 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef precision::mediump_mat3x4 mat3x4; typedef precision::mediump_mat3x4 mat3x4;
//! 4 columns of 2 components matrix of floating-point numbers. //! 4 columns of 2 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef precision::mediump_mat4x2 mat4x2; typedef precision::mediump_mat4x2 mat4x2;
//! 4 columns of 3 components matrix of floating-point numbers. //! 4 columns of 3 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef precision::mediump_mat4x3 mat4x3; typedef precision::mediump_mat4x3 mat4x3;
//! 4 columns of 4 components matrix of floating-point numbers. //! 4 columns of 4 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef precision::mediump_mat4x4 mat4x4; typedef precision::mediump_mat4x4 mat4x4;
#endif//GLM_PRECISION #endif//GLM_PRECISION
//! 2 columns of 2 components matrix of floating-point numbers. //! 2 columns of 2 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef mat2x2 mat2; typedef mat2x2 mat2;
//! 3 columns of 3 components matrix of floating-point numbers. //! 3 columns of 3 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef mat3x3 mat3; typedef mat3x3 mat3;
//! 4 columns of 4 components matrix of floating-point numbers. //! 4 columns of 4 components matrix of floating-point numbers.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices)
//! \ingroup core_types
typedef mat4x4 mat4; typedef mat4x4 mat4;
////////////////////////// //////////////////////////
@ -158,14 +173,17 @@ namespace type
#else #else
//! 2 components vector of signed integer numbers. //! 2 components vector of signed integer numbers.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef precision::mediump_ivec2 ivec2; typedef precision::mediump_ivec2 ivec2;
//! 3 components vector of signed integer numbers. //! 3 components vector of signed integer numbers.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef precision::mediump_ivec3 ivec3; typedef precision::mediump_ivec3 ivec3;
//! 4 components vector of signed integer numbers. //! 4 components vector of signed integer numbers.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef precision::mediump_ivec4 ivec4; typedef precision::mediump_ivec4 ivec4;
#endif//GLM_PRECISION #endif//GLM_PRECISION
@ -187,14 +205,17 @@ namespace type
#else #else
//! 2 components vector of unsigned integer numbers. //! 2 components vector of unsigned integer numbers.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef precision::mediump_uvec2 uvec2; typedef precision::mediump_uvec2 uvec2;
//! 3 components vector of unsigned integer numbers. //! 3 components vector of unsigned integer numbers.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef precision::mediump_uvec3 uvec3; typedef precision::mediump_uvec3 uvec3;
//! 4 components vector of unsigned integer numbers. //! 4 components vector of unsigned integer numbers.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef precision::mediump_uvec4 uvec4; typedef precision::mediump_uvec4 uvec4;
#endif//GLM_PRECISION #endif//GLM_PRECISION
@ -203,14 +224,17 @@ namespace type
//! 2 components vector of boolean. //! 2 components vector of boolean.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef detail::tvec2<bool> bvec2; typedef detail::tvec2<bool> bvec2;
//! 3 components vector of boolean. //! 3 components vector of boolean.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef detail::tvec3<bool> bvec3; typedef detail::tvec3<bool> bvec3;
//! 4 components vector of boolean. //! 4 components vector of boolean.
//! From GLSL 1.30.8 specification, section 4.1.5 Vectors. //! From GLSL 1.30.8 specification, section 4.1.5 Vectors.
//! \ingroup core_types
typedef detail::tvec4<bool> bvec4; typedef detail::tvec4<bool> bvec4;
////////////////////////// //////////////////////////
@ -218,62 +242,77 @@ namespace type
//! Vector of 2 double-precision floating-point numbers. //! Vector of 2 double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tvec2<double> dvec2; typedef detail::tvec2<double> dvec2;
//! Vector of 3 double-precision floating-point numbers. //! Vector of 3 double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tvec3<double> dvec3; typedef detail::tvec3<double> dvec3;
//! Vector of 4 double-precision floating-point numbers. //! Vector of 4 double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tvec4<double> dvec4; typedef detail::tvec4<double> dvec4;
//! 2 * 2 matrix of double-precision floating-point numbers. //! 2 * 2 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat2x2<double> dmat2; typedef detail::tmat2x2<double> dmat2;
//! 3 * 3 matrix of double-precision floating-point numbers. //! 3 * 3 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat3x3<double> dmat3; typedef detail::tmat3x3<double> dmat3;
//! 4 * 4 matrix of double-precision floating-point numbers. //! 4 * 4 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat4x4<double> dmat4; typedef detail::tmat4x4<double> dmat4;
//! 2 * 2 matrix of double-precision floating-point numbers. //! 2 * 2 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat2x2<double> dmat2x2; typedef detail::tmat2x2<double> dmat2x2;
//! 2 * 3 matrix of double-precision floating-point numbers. //! 2 * 3 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat2x3<double> dmat2x3; typedef detail::tmat2x3<double> dmat2x3;
//! 2 * 4 matrix of double-precision floating-point numbers. //! 2 * 4 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat2x4<double> dmat2x4; typedef detail::tmat2x4<double> dmat2x4;
//! 3 * 2 matrix of double-precision floating-point numbers. //! 3 * 2 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat3x2<double> dmat3x2; typedef detail::tmat3x2<double> dmat3x2;
//! 3 * 3 matrix of double-precision floating-point numbers. //! 3 * 3 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat3x3<double> dmat3x3; typedef detail::tmat3x3<double> dmat3x3;
//! 3 * 4 matrix of double-precision floating-point numbers. //! 3 * 4 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat3x4<double> dmat3x4; typedef detail::tmat3x4<double> dmat3x4;
//! 4 * 2 matrix of double-precision floating-point numbers. //! 4 * 2 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat4x2<double> dmat4x2; typedef detail::tmat4x2<double> dmat4x2;
//! 4 * 3 matrix of double-precision floating-point numbers. //! 4 * 3 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat4x3<double> dmat4x3; typedef detail::tmat4x3<double> dmat4x3;
//! 4 * 4 matrix of double-precision floating-point numbers. //! 4 * 4 matrix of double-precision floating-point numbers.
//! From GLSL 4.00.8 specification, section 4.1 Basic Types. //! From GLSL 4.00.8 specification, section 4.1 Basic Types.
//! \ingroup core_types
typedef detail::tmat4x4<double> dmat4x4; typedef detail::tmat4x4<double> dmat4x4;
}//namespace type }//namespace type

View File

@ -38,16 +38,19 @@ namespace glm
typedef double highp_float_t; typedef double highp_float_t;
//! Low precision floating-point numbers. //! Low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification //! From GLSL 1.30.8 specification
//! \ingroup core_precision
typedef lowp_float_t lowp_float; typedef lowp_float_t lowp_float;
//! Medium precision floating-point numbers. //! Medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification //! From GLSL 1.30.8 specification
//! \ingroup core_precision
typedef mediump_float_t mediump_float; typedef mediump_float_t mediump_float;
//! High precision floating-point numbers. //! High precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification //! From GLSL 1.30.8 specification
//! \ingroup core_precision
typedef highp_float_t highp_float; typedef highp_float_t highp_float;
} }
//namespace precision //namespace precision

View File

@ -27,6 +27,8 @@ namespace glm
float toFloat32(hdata value); float toFloat32(hdata value);
hdata toFloat16(float const & value); hdata toFloat16(float const & value);
///16-bit floating point type.
/// \ingroup gtc_half_float
class thalf class thalf
{ {
public: public:

View File

@ -63,32 +63,39 @@ namespace glm
namespace core{ namespace core{
namespace type{ namespace type{
///namespace for precision stuff.
namespace precision namespace precision
{ {
//! Low precision signed integer. //! Low precision signed integer.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification. //! From GLSL 1.30.8 specification.
//! \ingroup core_precision
typedef detail::lowp_int_t lowp_int; typedef detail::lowp_int_t lowp_int;
//! Medium precision signed integer. //! Medium precision signed integer.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification. //! From GLSL 1.30.8 specification.
//! \ingroup core_precision
typedef detail::mediump_int_t mediump_int; typedef detail::mediump_int_t mediump_int;
//! High precision signed integer. //! High precision signed integer.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification. //! From GLSL 1.30.8 specification.
//! \ingroup core_precision
typedef detail::highp_int_t highp_int; typedef detail::highp_int_t highp_int;
//! Low precision unsigned integer. //! Low precision unsigned integer.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification. //! From GLSL 1.30.8 specification.
//! \ingroup core_precision
typedef detail::lowp_uint_t lowp_uint; typedef detail::lowp_uint_t lowp_uint;
//! Medium precision unsigned integer. //! Medium precision unsigned integer.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification. //! From GLSL 1.30.8 specification.
//! \ingroup core_precision
typedef detail::mediump_uint_t mediump_uint; typedef detail::mediump_uint_t mediump_uint;
//! High precision unsigned integer. //! High precision unsigned integer.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification. //! From GLSL 1.30.8 specification.
//! \ingroup core_precision
typedef detail::highp_uint_t highp_uint; typedef detail::highp_uint_t highp_uint;
} }
//namespace precision //namespace precision

View File

@ -35,7 +35,8 @@ namespace glm
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//!< \brief Template for 2 * 2 matrix of floating-point numbers. //! \brief Template for 2 * 2 matrix of floating-point numbers.
//! \ingroup core_template
template <typename T> template <typename T>
struct tmat2x2 struct tmat2x2
{ {
@ -222,16 +223,19 @@ namespace glm
namespace precision namespace precision
{ {
//! 2 columns of 2 components matrix of low precision floating-point numbers. //! 2 columns of 2 components matrix of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat2x2<lowp_float> lowp_mat2x2; typedef detail::tmat2x2<lowp_float> lowp_mat2x2;
//! 2 columns of 2 components matrix of medium precision floating-point numbers. //! 2 columns of 2 components matrix of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat2x2<mediump_float> mediump_mat2x2; typedef detail::tmat2x2<mediump_float> mediump_mat2x2;
//! 2 columns of 2 components matrix of high precision floating-point numbers. //! 2 columns of 2 components matrix of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat2x2<highp_float> highp_mat2x2; typedef detail::tmat2x2<highp_float> highp_mat2x2;
} }
//namespace precision //namespace precision

View File

@ -35,7 +35,8 @@ namespace glm
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//!< \brief Template for 2 columns and 3 rows matrix of floating-point numbers. //! \brief Template for 2 columns and 3 rows matrix of floating-point numbers.
//! \ingroup core_template
template <typename T> template <typename T>
struct tmat2x3 struct tmat2x3
{ {
@ -189,16 +190,19 @@ namespace glm
namespace precision namespace precision
{ {
//! 2 columns of 3 components matrix of low precision floating-point numbers. //! 2 columns of 3 components matrix of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat2x3<lowp_float> lowp_mat2x3; typedef detail::tmat2x3<lowp_float> lowp_mat2x3;
//! 2 columns of 3 components matrix of medium precision floating-point numbers. //! 2 columns of 3 components matrix of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat2x3<mediump_float> mediump_mat2x3; typedef detail::tmat2x3<mediump_float> mediump_mat2x3;
//! 2 columns of 3 components matrix of high precision floating-point numbers. //! 2 columns of 3 components matrix of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat2x3<highp_float> highp_mat2x3; typedef detail::tmat2x3<highp_float> highp_mat2x3;
} }
//namespace precision //namespace precision

View File

@ -35,7 +35,8 @@ namespace glm
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//!< \brief Template for 2 columns and 4 rows matrix of floating-point numbers. //! Template for 2 columns and 4 rows matrix of floating-point numbers.
//! \ingroup core_template
template <typename T> template <typename T>
struct tmat2x4 struct tmat2x4
{ {
@ -189,15 +190,15 @@ namespace glm
namespace precision namespace precision
{ {
//! 2 columns of 4 components matrix of low precision floating-point numbers. //! 2 columns of 4 components matrix of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
typedef detail::tmat2x4<lowp_float> lowp_mat2x4; typedef detail::tmat2x4<lowp_float> lowp_mat2x4;
//! 2 columns of 4 components matrix of medium precision floating-point numbers. //! 2 columns of 4 components matrix of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
typedef detail::tmat2x4<mediump_float> mediump_mat2x4; typedef detail::tmat2x4<mediump_float> mediump_mat2x4;
//! 2 columns of 4 components matrix of high precision floating-point numbers. //! 2 columns of 4 components matrix of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
typedef detail::tmat2x4<highp_float> highp_mat2x4; typedef detail::tmat2x4<highp_float> highp_mat2x4;
} }

View File

@ -35,7 +35,8 @@ namespace glm
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//!< \brief Template for 3 columns and 2 rows matrix of floating-point numbers. //! \brief Template for 3 columns and 2 rows matrix of floating-point numbers.
//! \ingroup core_template
template <typename T> template <typename T>
struct tmat3x2 struct tmat3x2
{ {
@ -191,15 +192,15 @@ namespace glm
namespace precision namespace precision
{ {
//! 3 columns of 2 components matrix of low precision floating-point numbers. //! 3 columns of 2 components matrix of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
typedef detail::tmat3x2<lowp_float> lowp_mat3x2; typedef detail::tmat3x2<lowp_float> lowp_mat3x2;
//! 3 columns of 2 components matrix of medium precision floating-point numbers. //! 3 columns of 2 components matrix of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
typedef detail::tmat3x2<mediump_float> mediump_mat3x2; typedef detail::tmat3x2<mediump_float> mediump_mat3x2;
//! 3 columns of 2 components matrix of high precision floating-point numbers. //! 3 columns of 2 components matrix of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
typedef detail::tmat3x2<highp_float> highp_mat3x2; typedef detail::tmat3x2<highp_float> highp_mat3x2;
} }

View File

@ -35,7 +35,8 @@ namespace glm
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//!< \brief Template for 3 * 3 matrix of floating-point numbers. //! \brief Template for 3 * 3 matrix of floating-point numbers.
//! \ingroup core_template
template <typename T> template <typename T>
struct tmat3x3 struct tmat3x3
{ {
@ -221,16 +222,19 @@ namespace glm
namespace precision namespace precision
{ {
//! 3 columns of 3 components matrix of low precision floating-point numbers. //! 3 columns of 3 components matrix of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat3x3<lowp_float> lowp_mat3x3; typedef detail::tmat3x3<lowp_float> lowp_mat3x3;
//! 3 columns of 3 components matrix of medium precision floating-point numbers. //! 3 columns of 3 components matrix of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat3x3<mediump_float> mediump_mat3x3; typedef detail::tmat3x3<mediump_float> mediump_mat3x3;
//! 3 columns of 3 components matrix of high precision floating-point numbers. //! 3 columns of 3 components matrix of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat3x3<highp_float> highp_mat3x3; typedef detail::tmat3x3<highp_float> highp_mat3x3;
} }
//namespace precision //namespace precision

View File

@ -35,7 +35,8 @@ namespace glm
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//!< \brief Template for 3 columns and 4 rows matrix of floating-point numbers. //! \brief Template for 3 columns and 4 rows matrix of floating-point numbers.
//! \ingroup core_template
template <typename T> template <typename T>
struct tmat3x4 struct tmat3x4
{ {
@ -191,15 +192,15 @@ namespace glm
namespace precision namespace precision
{ {
//! 3 columns of 4 components matrix of low precision floating-point numbers. //! 3 columns of 4 components matrix of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
typedef detail::tmat3x4<lowp_float> lowp_mat3x4; typedef detail::tmat3x4<lowp_float> lowp_mat3x4;
//! 3 columns of 4 components matrix of medium precision floating-point numbers. //! 3 columns of 4 components matrix of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
typedef detail::tmat3x4<mediump_float> mediump_mat3x4; typedef detail::tmat3x4<mediump_float> mediump_mat3x4;
//! 3 columns of 4 components matrix of high precision floating-point numbers. //! 3 columns of 4 components matrix of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
typedef detail::tmat3x4<highp_float> highp_mat3x4; typedef detail::tmat3x4<highp_float> highp_mat3x4;
} }

View File

@ -35,7 +35,8 @@ namespace glm
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//!< \brief Template for 4 columns and 2 rows matrix of floating-point numbers. //! \brief Template for 4 columns and 2 rows matrix of floating-point numbers.
//! \ingroup core_template
template <typename T> template <typename T>
struct tmat4x2 struct tmat4x2
{ {
@ -193,16 +194,19 @@ namespace glm
namespace precision namespace precision
{ {
//! 4 columns of 2 components matrix of low precision floating-point numbers. //! 4 columns of 2 components matrix of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat4x2<lowp_float> lowp_mat4x2; typedef detail::tmat4x2<lowp_float> lowp_mat4x2;
//! 4 columns of 2 components matrix of medium precision floating-point numbers. //! 4 columns of 2 components matrix of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat4x2<mediump_float> mediump_mat4x2; typedef detail::tmat4x2<mediump_float> mediump_mat4x2;
//! 4 columns of 2 components matrix of high precision floating-point numbers. //! 4 columns of 2 components matrix of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat4x2<highp_float> highp_mat4x2; typedef detail::tmat4x2<highp_float> highp_mat4x2;
} }
//namespace precision //namespace precision

View File

@ -35,7 +35,8 @@ namespace glm
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//!< \brief Template for 4 columns and 3 rows matrix of floating-point numbers. //! \brief Template for 4 columns and 3 rows matrix of floating-point numbers.
//! \ingroup core_template
template <typename T> template <typename T>
struct tmat4x3 struct tmat4x3
{ {
@ -193,16 +194,19 @@ namespace glm
namespace precision namespace precision
{ {
//! 4 columns of 3 components matrix of low precision floating-point numbers. //! 4 columns of 3 components matrix of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat4x3<lowp_float> lowp_mat4x3; typedef detail::tmat4x3<lowp_float> lowp_mat4x3;
//! 4 columns of 3 components matrix of medium precision floating-point numbers. //! 4 columns of 3 components matrix of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat4x3<mediump_float> mediump_mat4x3; typedef detail::tmat4x3<mediump_float> mediump_mat4x3;
//! 4 columns of 3 components matrix of high precision floating-point numbers. //! 4 columns of 3 components matrix of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat4x3<highp_float> highp_mat4x3; typedef detail::tmat4x3<highp_float> highp_mat4x3;
} }
//namespace precision //namespace precision

View File

@ -35,7 +35,8 @@ namespace glm
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//!< \brief Template for 4 * 4 matrix of floating-point numbers. //! \brief Template for 4 * 4 matrix of floating-point numbers.
//! \ingroup core_template
template <typename T> template <typename T>
struct tmat4x4 struct tmat4x4
{ {
@ -221,16 +222,19 @@ namespace glm
namespace precision namespace precision
{ {
//! 4 columns of 4 components matrix of low precision floating-point numbers. //! 4 columns of 4 components matrix of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat4x4<lowp_float> lowp_mat4x4; typedef detail::tmat4x4<lowp_float> lowp_mat4x4;
//! 4 columns of 4 components matrix of medium precision floating-point numbers. //! 4 columns of 4 components matrix of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat4x4<mediump_float> mediump_mat4x4; typedef detail::tmat4x4<mediump_float> mediump_mat4x4;
//! 4 columns of 4 components matrix of high precision floating-point numbers. //! 4 columns of 4 components matrix of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)
//! \ingroup core_precision
typedef detail::tmat4x4<highp_float> highp_mat4x4; typedef detail::tmat4x4<highp_float> highp_mat4x4;
} }
//namespace precision //namespace precision

View File

@ -32,6 +32,8 @@ namespace glm
template <typename T> struct tvec3; template <typename T> struct tvec3;
template <typename T> struct tvec4; template <typename T> struct tvec4;
//! The basic 2D vector type.
//! \ingroup core_template
template <typename T> template <typename T>
struct tvec2 struct tvec2
{ {
@ -203,42 +205,51 @@ namespace glm
namespace precision namespace precision
{ {
//! 2 components vector of high precision floating-point numbers. //! 2 components vector of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec2<highp_float> highp_vec2; typedef detail::tvec2<highp_float> highp_vec2;
//! 2 components vector of medium precision floating-point numbers. //! 2 components vector of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec2<mediump_float> mediump_vec2; typedef detail::tvec2<mediump_float> mediump_vec2;
//! 2 components vector of low precision floating-point numbers. //! 2 components vector of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec2<lowp_float> lowp_vec2; typedef detail::tvec2<lowp_float> lowp_vec2;
//! 2 components vector of high precision signed integer numbers. //! 2 components vector of high precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec2<highp_int> highp_ivec2; typedef detail::tvec2<highp_int> highp_ivec2;
//! 2 components vector of medium precision signed integer numbers. //! 2 components vector of medium precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec2<mediump_int> mediump_ivec2; typedef detail::tvec2<mediump_int> mediump_ivec2;
//! 2 components vector of low precision signed integer numbers. //! 2 components vector of low precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec2<lowp_int> lowp_ivec2; typedef detail::tvec2<lowp_int> lowp_ivec2;
//! 2 components vector of high precision unsigned integer numbers. //! 2 components vector of high precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec2<highp_uint> highp_uvec2; typedef detail::tvec2<highp_uint> highp_uvec2;
//! 2 components vector of medium precision unsigned integer numbers. //! 2 components vector of medium precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec2<mediump_uint> mediump_uvec2; typedef detail::tvec2<mediump_uint> mediump_uvec2;
//! 2 components vector of low precision unsigned integer numbers. //! 2 components vector of low precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec2<lowp_uint> lowp_uvec2; typedef detail::tvec2<lowp_uint> lowp_uvec2;
} }
//namespace precision //namespace precision

View File

@ -31,6 +31,8 @@ namespace glm
template <typename T> struct tvec2; template <typename T> struct tvec2;
template <typename T> struct tvec4; template <typename T> struct tvec4;
//! Basic 3D vector type.
//! \ingroup core_template
template <typename T> template <typename T>
struct tvec3 struct tvec3
{ {
@ -208,42 +210,51 @@ namespace glm
namespace precision namespace precision
{ {
//! 3 components vector of high precision floating-point numbers. //! 3 components vector of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec3<highp_float> highp_vec3; typedef detail::tvec3<highp_float> highp_vec3;
//! 3 components vector of medium precision floating-point numbers. //! 3 components vector of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec3<mediump_float> mediump_vec3; typedef detail::tvec3<mediump_float> mediump_vec3;
//! 3 components vector of low precision floating-point numbers. //! 3 components vector of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec3<lowp_float> lowp_vec3; typedef detail::tvec3<lowp_float> lowp_vec3;
//! 3 components vector of high precision signed integer numbers. //! 3 components vector of high precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec3<highp_int> highp_ivec3; typedef detail::tvec3<highp_int> highp_ivec3;
//! 3 components vector of medium precision signed integer numbers. //! 3 components vector of medium precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec3<mediump_int> mediump_ivec3; typedef detail::tvec3<mediump_int> mediump_ivec3;
//! 3 components vector of low precision signed integer numbers. //! 3 components vector of low precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec3<lowp_int> lowp_ivec3; typedef detail::tvec3<lowp_int> lowp_ivec3;
//! 3 components vector of high precision unsigned integer numbers. //! 3 components vector of high precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec3<highp_uint> highp_uvec3; typedef detail::tvec3<highp_uint> highp_uvec3;
//! 3 components vector of medium precision unsigned integer numbers. //! 3 components vector of medium precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec3<mediump_uint> mediump_uvec3; typedef detail::tvec3<mediump_uint> mediump_uvec3;
//! 3 components vector of low precision unsigned integer numbers. //! 3 components vector of low precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec3<lowp_uint> lowp_uvec3; typedef detail::tvec3<lowp_uint> lowp_uvec3;
} }
//namespace precision //namespace precision

View File

@ -32,6 +32,8 @@ namespace glm
template <typename T> struct tvec2; template <typename T> struct tvec2;
template <typename T> struct tvec3; template <typename T> struct tvec3;
///Basic 4D vector type.
//! \ingroup core_template
template <typename T> template <typename T>
struct tvec4 struct tvec4
{ {
@ -225,42 +227,51 @@ namespace glm
namespace precision namespace precision
{ {
//! 4 components vector of high precision floating-point numbers. //! 4 components vector of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec4<highp_float> highp_vec4; typedef detail::tvec4<highp_float> highp_vec4;
//! 4 components vector of medium precision floating-point numbers. //! 4 components vector of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec4<mediump_float> mediump_vec4; typedef detail::tvec4<mediump_float> mediump_vec4;
//! 4 components vector of low precision floating-point numbers. //! 4 components vector of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec4<lowp_float> lowp_vec4; typedef detail::tvec4<lowp_float> lowp_vec4;
//! 4 components vector of high precision signed integer numbers. //! 4 components vector of high precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec4<highp_int> highp_ivec4; typedef detail::tvec4<highp_int> highp_ivec4;
//! 4 components vector of medium precision signed integer numbers. //! 4 components vector of medium precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec4<mediump_int> mediump_ivec4; typedef detail::tvec4<mediump_int> mediump_ivec4;
//! 4 components vector of low precision signed integer numbers. //! 4 components vector of low precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec4<lowp_int> lowp_ivec4; typedef detail::tvec4<lowp_int> lowp_ivec4;
//! 4 components vector of high precision unsigned integer numbers. //! 4 components vector of high precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec4<highp_uint> highp_uvec4; typedef detail::tvec4<highp_uint> highp_uvec4;
//! 4 components vector of medium precision unsigned integer numbers. //! 4 components vector of medium precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec4<mediump_uint> mediump_uvec4; typedef detail::tvec4<mediump_uint> mediump_uvec4;
//! 4 components vector of low precision unsigned integer numbers. //! 4 components vector of low precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers. //! From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.
//! \ingroup core_precision
typedef detail::tvec4<lowp_uint> lowp_uvec4; typedef detail::tvec4<lowp_uint> lowp_uvec4;
} }
//namespace precision //namespace precision

View File

@ -7,26 +7,6 @@
// File : glm/glm.hpp // File : glm/glm.hpp
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
/*! \mainpage OpenGL Mathematics
*
* OpenGL Mathematics (GLM) is a C++ mathematics library for 3D applications based on the OpenGL Shading Language (GLSL) specification.
*
* GLM provides 3D programmers with math classes and functions that are similar to GLSL or any high level GPU programming language. The idea is to have a library that has identical naming conventions and functionalities than GLSL so that when developers know GLSL, they know how to use GLM.
*
* However, this project isn't limited by GLSL features. An extension system, based on the GLSL extension conventions, allows extended capabilities.
*
* This library can be used with OpenGL but also for software rendering (Raytracing / Rasterisation), image processing and as much contexts as a simple math library could be used for.
*
* GLM is written as a platform independent library and supports the following compilers:
* - GNU GCC 3.4 and higher
* - Microsoft Visual Studio 8.0 and higher
*
* The source code is under the MIT licence.
*
* Any feedback is welcome and can be sent to glm@g-truc.net.
*
*/
#ifndef glm_glm #ifndef glm_glm
#define glm_glm #define glm_glm

View File

@ -326,6 +326,9 @@ namespace glm
//! GLM_GTC_half_float extension: Add support for half precision floating-point types //! GLM_GTC_half_float extension: Add support for half precision floating-point types
namespace half_float namespace half_float
{ {
/// \addtogroup gtc_half_float
///@{
//! Type for half-precision floating-point numbers. //! Type for half-precision floating-point numbers.
//! From GLM_GTC_half_float extension. //! From GLM_GTC_half_float extension.
typedef detail::thalf half; typedef detail::thalf half;
@ -354,6 +357,8 @@ namespace glm
//! From GLM_GTC_half_float extension. //! From GLM_GTC_half_float extension.
typedef detail::tmat4x4<detail::thalf> hmat4; typedef detail::tmat4x4<detail::thalf> hmat4;
///@}
}//namespace half_float }//namespace half_float
}//namespace gtc }//namespace gtc
}//namespace glm }//namespace glm

View File

@ -25,6 +25,9 @@ namespace gtc{
//! GLM_GTC_matrix_access extension: Set a column or a row of a matrix //! GLM_GTC_matrix_access extension: Set a column or a row of a matrix
namespace matrix_access namespace matrix_access
{ {
/// \addtogroup gtc_matrix_access
///@{
//! Get a specific row of a matrix. //! Get a specific row of a matrix.
//! From GLM_GTC_matrix_access extension. //! From GLM_GTC_matrix_access extension.
template <typename genType> template <typename genType>
@ -55,6 +58,8 @@ namespace matrix_access
int index, int index,
typename genType::col_type const & x); typename genType::col_type const & x);
///@}
}//namespace matrix_access }//namespace matrix_access
}//namespace gtc }//namespace gtc
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTC_matrix_integer extension: Add integer matrices //! GLM_GTC_matrix_integer extension: Add integer matrices
namespace matrix_integer namespace matrix_integer
{ {
/// \addtogroup gtc_matrix_integer
///@{
typedef detail::tmat2x2<highp_int> highp_imat2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) typedef detail::tmat2x2<highp_int> highp_imat2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension)
typedef detail::tmat3x3<highp_int> highp_imat3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) typedef detail::tmat3x3<highp_int> highp_imat3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension)
typedef detail::tmat4x4<highp_int> highp_imat4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) typedef detail::tmat4x4<highp_int> highp_imat4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
@ -201,6 +204,8 @@ namespace glm
typedef mediump_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) typedef mediump_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension)
#endif//GLM_PRECISION #endif//GLM_PRECISION
///@}
}//namespace matrix_integer }//namespace matrix_integer
}//namespace gtc }//namespace gtc
}//namespace glm }//namespace glm

View File

@ -25,6 +25,9 @@ namespace gtc{
//! GLM_GTC_matrix_inverse extension: Inverse matrix functions //! GLM_GTC_matrix_inverse extension: Inverse matrix functions
namespace matrix_inverse namespace matrix_inverse
{ {
/// \addtogroup gtc_matrix_inverse
///@{
//! Fast matrix inverse for affine matrix. //! Fast matrix inverse for affine matrix.
//! From GLM_GTC_matrix_inverse extension. //! From GLM_GTC_matrix_inverse extension.
template <typename genType> template <typename genType>
@ -36,6 +39,8 @@ namespace matrix_inverse
inline typename genType::value_type inverseTranspose( inline typename genType::value_type inverseTranspose(
genType const & m); genType const & m);
///@}
}//namespace matrix_inverse }//namespace matrix_inverse
}//namespace gtc }//namespace gtc
}//namespace glm }//namespace glm

View File

@ -31,6 +31,9 @@ namespace glm
//! GLM_GTC_matrix_transform extension: Add transformation matrices //! GLM_GTC_matrix_transform extension: Add transformation matrices
namespace matrix_transform namespace matrix_transform
{ {
/// \addtogroup gtc_matrix_transform
///@{
//! Builds a translation 4 * 4 matrix created from a vector of 3 components. //! Builds a translation 4 * 4 matrix created from a vector of 3 components.
//! From GLM_GTC_matrix_transform extension. //! From GLM_GTC_matrix_transform extension.
template <typename T> template <typename T>
@ -141,6 +144,7 @@ namespace glm
detail::tvec3<T> const & center, detail::tvec3<T> const & center,
detail::tvec3<T> const & up); detail::tvec3<T> const & up);
///@}
}//namespace matrix_transform }//namespace matrix_transform
}//namespace gtc }//namespace gtc
}//namespace glm }//namespace glm

View File

@ -36,6 +36,7 @@ namespace glm
{ {
//! \brief Template for quaternion. //! \brief Template for quaternion.
//! From GLM_GTC_quaternion extension. //! From GLM_GTC_quaternion extension.
/// \ingroup gtc_quaternion
template <typename T> template <typename T>
struct tquat// : public genType<T, tquat> struct tquat// : public genType<T, tquat>
{ {
@ -119,6 +120,9 @@ namespace glm
//! GLM_GTC_quaternion extension: Quaternion types and functions //! GLM_GTC_quaternion extension: Quaternion types and functions
namespace quaternion namespace quaternion
{ {
/// \addtogroup gtc_quaternion
///@{
//! Returns the length of the quaternion x. //! Returns the length of the quaternion x.
//! From GLM_GTC_quaternion extension. //! From GLM_GTC_quaternion extension.
template <typename T> template <typename T>
@ -213,6 +217,8 @@ namespace glm
//! From GLM_GTC_quaternion extension. //! From GLM_GTC_quaternion extension.
typedef detail::tquat<double> dquat; typedef detail::tquat<double> dquat;
///@}
}//namespace quaternion }//namespace quaternion
}//namespace gtc }//namespace gtc
} //namespace glm } //namespace glm

View File

@ -43,6 +43,9 @@ namespace glm
/////////////////////////// ///////////////////////////
// Signed int vector types // Signed int vector types
/// \addtogroup gtc_type_precision
///@{
typedef detail::int8 int8; //!< \brief 8bit signed integer. (from GLM_GTC_type_precision extension) typedef detail::int8 int8; //!< \brief 8bit signed integer. (from GLM_GTC_type_precision extension)
typedef detail::int16 int16; //!< \brief 16bit signed integer. (from GLM_GTC_type_precision extension) typedef detail::int16 int16; //!< \brief 16bit signed integer. (from GLM_GTC_type_precision extension)
typedef detail::int32 int32; //!< \brief 32bit signed integer. (from GLM_GTC_type_precision extension) typedef detail::int32 int32; //!< \brief 32bit signed integer. (from GLM_GTC_type_precision extension)
@ -210,6 +213,8 @@ namespace glm
typedef detail::tquat<f32> f32quat; //!< \brief Single-precision floating-point quaternion. (from GLM_GTC_type_precision extension) typedef detail::tquat<f32> f32quat; //!< \brief Single-precision floating-point quaternion. (from GLM_GTC_type_precision extension)
typedef detail::tquat<f64> f64quat; //!< \brief Double-precision floating-point quaternion. (from GLM_GTC_type_precision extension) typedef detail::tquat<f64> f64quat; //!< \brief Double-precision floating-point quaternion. (from GLM_GTC_type_precision extension)
///@}
}//namespace type_precision }//namespace type_precision
}//namespace gtc }//namespace gtc
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTC_type_ptr extension: Get access to vectors & matrices value type address. //! GLM_GTC_type_ptr extension: Get access to vectors & matrices value type address.
namespace type_ptr{ namespace type_ptr{
/// \addtogroup gtc_type_ptr
///@{
//! Get the const address of the vector content. //! Get the const address of the vector content.
//! From GLM_GTC_type_ptr extension. //! From GLM_GTC_type_ptr extension.
template<typename T> template<typename T>
@ -291,6 +294,8 @@ namespace glm
return &(mat[0].x); return &(mat[0].x);
} }
///@}
}//namespace type_ptr }//namespace type_ptr
}//namespace gtc }//namespace gtc
}//namespace glm }//namespace glm

View File

@ -32,6 +32,9 @@ namespace glm
//! GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces. //! GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces.
namespace associated_min_max namespace associated_min_max
{ {
/// \addtogroup gtx_associated_min_max
///@{
//! \brief Min comparison between 2 variables //! \brief Min comparison between 2 variables
template<typename genTypeT, typename genTypeU> template<typename genTypeT, typename genTypeU>
genTypeU associatedMin( genTypeU associatedMin(
@ -73,6 +76,7 @@ namespace glm
const genTypeT& y, const genTypeU& b, const genTypeT& y, const genTypeU& b,
const genTypeT& z, const genTypeU& c, const genTypeT& z, const genTypeU& c,
const genTypeT& w, const genTypeU& d); const genTypeT& w, const genTypeU& d);
///@}
}//namespace associated_min_max }//namespace associated_min_max

View File

@ -34,6 +34,8 @@ namespace glm
{ {
using namespace gtc::half_float; using namespace gtc::half_float;
/// \addtogroup gtx_bit
///@{
//! Build a mask of 'count' bits //! Build a mask of 'count' bits
//! From GLM_GTX_bit extension. //! From GLM_GTX_bit extension.
template <typename genIType> template <typename genIType>
@ -97,6 +99,7 @@ namespace glm
//! From GLM_GTX_bit extension. //! From GLM_GTX_bit extension.
template <typename genType> template <typename genType>
genType bitRotateLeft(genType const & In, std::size_t Shift); genType bitRotateLeft(genType const & In, std::size_t Shift);
///@}
}//namespace bit }//namespace bit
}//namespace gtx }//namespace gtx

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point. //! GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point.
namespace closest_point{ namespace closest_point{
/// \addtogroup gtx_closest_point
///@{
//! Find the point on a straight line which is the closet of a point. //! Find the point on a straight line which is the closet of a point.
//! From GLM_GTX_closest_point extension. //! From GLM_GTX_closest_point extension.
template <typename T> template <typename T>
@ -37,6 +40,7 @@ namespace glm
detail::tvec3<T> const & point, detail::tvec3<T> const & point,
detail::tvec3<T> const & a, detail::tvec3<T> const & a,
detail::tvec3<T> const & b); detail::tvec3<T> const & b);
///@}
}//namespace closest_point }//namespace closest_point
}//namespace gtx }//namespace gtx

View File

@ -34,6 +34,9 @@ namespace glm
{ {
using namespace gtx::number_precision; using namespace gtx::number_precision;
/// \addtogroup gtx_color_cast
///@{
//! Conversion of a floating value into a 8bit unsigned int value. //! Conversion of a floating value into a 8bit unsigned int value.
//! From GLM_GTX_color_cast extension. //! From GLM_GTX_color_cast extension.
template <typename valType> gtc::type_precision::uint8 u8channel_cast(valType a); template <typename valType> gtc::type_precision::uint8 u8channel_cast(valType a);
@ -97,6 +100,8 @@ namespace glm
template <typename T> gtc::type_precision::f64vec4 f64_argb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension) template <typename T> gtc::type_precision::f64vec4 f64_argb_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
template <typename T> gtc::type_precision::f64vec4 f64_bgra_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension) template <typename T> gtc::type_precision::f64vec4 f64_bgra_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
template <typename T> gtc::type_precision::f64vec4 f64_abgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension) template <typename T> gtc::type_precision::f64vec4 f64_abgr_cast(T c); //!< \brief Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension)
///@}
}//namespace color_space }//namespace color_space
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations //! GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations
namespace color_space namespace color_space
{ {
/// \addtogroup gtx_color_space
///@{
//! Converts a color from HSV color space to its color in RGB color space. //! Converts a color from HSV color space to its color in RGB color space.
//! From GLM_GTX_color_space extension. //! From GLM_GTX_color_space extension.
template <typename valType> template <typename valType>
@ -68,6 +71,8 @@ namespace glm
valType luminosity( valType luminosity(
detail::tvec3<valType> const & color); detail::tvec3<valType> const & color);
///@}
}//namespace color_space }//namespace color_space
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations //! GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations
namespace color_space_YCoCg namespace color_space_YCoCg
{ {
/// \addtogroup gtx_color_space_YCoCg
///@{
//! Convert a color from RGB color space to YCoCg color space. //! Convert a color from RGB color space to YCoCg color space.
//! From GLM_GTX_color_space_YCoCg extension. //! From GLM_GTX_color_space_YCoCg extension.
template <typename valType> template <typename valType>
@ -56,6 +59,7 @@ namespace glm
detail::tvec3<valType> YCoCgR2rgb( detail::tvec3<valType> YCoCgR2rgb(
detail::tvec3<valType> const & YCoCgColor); detail::tvec3<valType> const & YCoCgColor);
///@}
}//namespace color_space_YCoCg }//namespace color_space_YCoCg
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -38,6 +38,9 @@ namespace glm
//! GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages //! GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages
namespace compatibility namespace compatibility
{ {
/// \addtogroup gtx_compatibility
///@{
template <typename T> inline T lerp(T x, T y, T a){return mix(x, y, a);} //!< \brief Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) template <typename T> inline T lerp(T x, T y, T a){return mix(x, y, a);} //!< \brief Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
template <typename T> inline detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, T a){return mix(x, y, a);} //!< \brief Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) template <typename T> inline detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, T a){return mix(x, y, a);} //!< \brief Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
template <typename T> inline detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, T a){return mix(x, y, a);} //!< \brief Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) template <typename T> inline detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, T a){return mix(x, y, a);} //!< \brief Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
@ -151,6 +154,8 @@ namespace glm
typedef detail::tmat4x3<double> double4x3; //!< \brief double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) typedef detail::tmat4x3<double> double4x3; //!< \brief double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
typedef detail::tmat4x4<double> double4x4; //!< \brief double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) typedef detail::tmat4x4<double> double4x4; //!< \brief double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
///@}
}//namespace compatibility }//namespace compatibility
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_component_wise extension: Operations between components of a type //! GLM_GTX_component_wise extension: Operations between components of a type
namespace component_wise namespace component_wise
{ {
/// \addtogroup gtx_component_wise
///@{
//! Add all vector components together. //! Add all vector components together.
//! From GLM_GTX_component_wise extension. //! From GLM_GTX_component_wise extension.
template <typename genType> template <typename genType>
@ -54,6 +57,8 @@ namespace glm
typename genType::value_type compMax( typename genType::value_type compMax(
genType const & v); genType const & v);
///@}
}//namespace component_wise }//namespace component_wise
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -29,9 +29,12 @@ namespace glm
}//namespace test }//namespace test
namespace gtx{ namespace gtx{
//! GLM_GTX_epsilon extension: Comparaison functions for a user defined epsilon values. //! GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values.
namespace epsilon namespace epsilon
{ {
/// \addtogroup gtx_epsilon
///@{
//! Returns the component-wise compare of |x - y| < epsilon. //! Returns the component-wise compare of |x - y| < epsilon.
//! From GLM_GTX_epsilon extension. //! From GLM_GTX_epsilon extension.
template <typename genTypeT, typename genTypeU> template <typename genTypeT, typename genTypeU>
@ -48,6 +51,8 @@ namespace glm
genTypeT const & y, genTypeT const & y,
genTypeU const & epsilon); genTypeU const & epsilon);
///@}
}//namespace epsilon }//namespace epsilon
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -29,9 +29,12 @@
namespace glm namespace glm
{ {
namespace gtx{ namespace gtx{
//! GLM_GTX_euler_angles extension: Build matrices from euler angles. //! GLM_GTX_euler_angles extension: Build matrices from Euler angles.
namespace euler_angles namespace euler_angles
{ {
/// \addtogroup gtx_euler_angles
///@{
//! Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. //! Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
//! From GLM_GTX_euler_angles extension. //! From GLM_GTX_euler_angles extension.
template <typename valType> template <typename valType>
@ -127,6 +130,8 @@ namespace glm
//! From GLM_GTX_euler_angles extension. //! From GLM_GTX_euler_angles extension.
template <typename T> template <typename T>
detail::tmat4x4<T> orientate4(detail::tvec3<T> const & angles); detail::tmat4x4<T> orientate4(detail::tvec3<T> const & angles);
///@}
}//namespace euler_angles }//namespace euler_angles
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_extend extension: Extend a position from a source to a position at a defined length. //! GLM_GTX_extend extension: Extend a position from a source to a position at a defined length.
namespace extend namespace extend
{ {
/// \addtogroup gtx_extend
///@{
//! Extends of Length the Origin position using the (Source - Origin) direction. //! Extends of Length the Origin position using the (Source - Origin) direction.
//! From GLM_GTX_extend extension. //! From GLM_GTX_extend extension.
template <typename genType> template <typename genType>
@ -38,6 +41,8 @@ namespace glm
genType const & Source, genType const & Source,
typename genType::value_type const Length); typename genType::value_type const Length);
///@}
}//namespace extend }//namespace extend
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -32,6 +32,9 @@ namespace glm
//! GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters. //! GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters.
namespace extented_min_max namespace extented_min_max
{ {
/// \addtogroup gtx_extented_min_max
///@{
//< Return the minimum component-wise values of 3 inputs //< Return the minimum component-wise values of 3 inputs
//< From GLM_GTX_extented_min_max extension //< From GLM_GTX_extented_min_max extension
template <typename T> template <typename T>
@ -166,6 +169,8 @@ namespace glm
C<T> const & z, C<T> const & z,
C<T> const & w); C<T> const & w);
///@}
}//namespace extented_min_max }//namespace extented_min_max
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -33,6 +33,8 @@ namespace glm
namespace fast_exponential namespace fast_exponential
{ {
using namespace gtc::half_float; using namespace gtc::half_float;
/// \addtogroup gtx_fast_exponential
///@{
//! Faster than the common pow function but less accurate. //! Faster than the common pow function but less accurate.
//! From GLM_GTX_fast_exponential extension. //! From GLM_GTX_fast_exponential extension.
@ -73,6 +75,8 @@ namespace glm
template <typename T> template <typename T>
T fastLn(const T& x); T fastLn(const T& x);
///@}
}//namespace fast_exponential }//namespace fast_exponential
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -34,6 +34,9 @@ namespace glm
//! GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions. //! GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions.
namespace fast_square_root namespace fast_square_root
{ {
/// \addtogroup gtx_fast_square_root
///@{
//! Faster than the common sqrt function but less accurate. //! Faster than the common sqrt function but less accurate.
//! From GLM_GTX_fast_square_root extension. //! From GLM_GTX_fast_square_root extension.
template <typename genType> template <typename genType>
@ -59,6 +62,8 @@ namespace glm
template <typename genType> template <typename genType>
genType fastNormalize(genType const & x); genType fastNormalize(genType const & x);
///@}
}//namespace fast_square_root }//namespace fast_square_root
}// namespace gtx }// namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions. //! GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions.
namespace fast_trigonometry namespace fast_trigonometry
{ {
/// \addtogroup gtx_fast_trigonometry
///@{
//! Faster than the common sin function but less accurate. //! Faster than the common sin function but less accurate.
//! Defined between -2pi and 2pi. //! Defined between -2pi and 2pi.
//! From GLM_GTX_fast_trigonometry extension. //! From GLM_GTX_fast_trigonometry extension.
@ -72,6 +75,8 @@ namespace glm
template <typename T> template <typename T>
T fastAtan(const T& angle); T fastAtan(const T& angle);
///@}
}//namespace fast_trigonometry }//namespace fast_trigonometry
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -23,9 +23,12 @@
namespace glm namespace glm
{ {
namespace gtx{ namespace gtx{
//! GLM_GTX_handed_coordinate_space extension: To know if a triedron is right or left handed //! GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system.
namespace handed_coordinate_space namespace handed_coordinate_space
{ {
/// \addtogroup gtx_handed_coordinate_space
///@{
//! Return if a trihedron right handed or not. //! Return if a trihedron right handed or not.
//! From GLM_GTX_handed_coordinate_space extension. //! From GLM_GTX_handed_coordinate_space extension.
template <typename T> template <typename T>
@ -42,6 +45,8 @@ namespace glm
detail::tvec3<T> const & binormal, detail::tvec3<T> const & binormal,
detail::tvec3<T> const & normal); detail::tvec3<T> const & normal);
///@}
}//namespace handed_coordinate_space }//namespace handed_coordinate_space
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -26,6 +26,9 @@ namespace glm
//! GLM_GTX_inertia extension: Create inertia matrices //! GLM_GTX_inertia extension: Create inertia matrices
namespace inertia namespace inertia
{ {
/// \addtogroup gtx_inertia
///@{
//! Build an inertia matrix for a box. //! Build an inertia matrix for a box.
//! From GLM_GTX_inertia extension. //! From GLM_GTX_inertia extension.
template <typename T> template <typename T>
@ -82,6 +85,8 @@ namespace glm
const T Mass, const T Mass,
const T Radius); const T Radius);
///@}
}//namespace inertia }//namespace inertia
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -29,10 +29,15 @@ namespace glm
{ {
using namespace gtx::raw_data; using namespace gtx::raw_data;
/// \addtogroup gtx_int_10_10_10_2
///@{
//! From GLM_GTX_int_10_10_10_2 extension. //! From GLM_GTX_int_10_10_10_2 extension.
//! Cast a vec4 to an u_10_10_10_2. //! Cast a vec4 to an u_10_10_10_2.
dword uint10_10_10_2_cast(glm::vec4 const & v); dword uint10_10_10_2_cast(glm::vec4 const & v);
///@}
}//namespace integer }//namespace integer
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -26,6 +26,9 @@ namespace glm
//! GLM_GTX_integer extension: Add support for integer for core functions //! GLM_GTX_integer extension: Add support for integer for core functions
namespace integer namespace integer
{ {
/// \addtogroup gtx_integer
///@{
//! Returns x raised to the y power. //! Returns x raised to the y power.
//! From GLM_GTX_integer extension. //! From GLM_GTX_integer extension.
int pow(int x, int y); int pow(int x, int y);
@ -43,6 +46,8 @@ namespace glm
template <typename genType> template <typename genType>
genType factorial(genType const & x); genType factorial(genType const & x);
///@}
}//namespace integer }//namespace integer
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -32,6 +32,9 @@ namespace glm
//! GLM_GTX_intersect extension: Add intersection functions //! GLM_GTX_intersect extension: Add intersection functions
namespace intersect namespace intersect
{ {
/// \addtogroup gtx_intersect
///@{
//! Compute the intersection of a ray and a triangle. //! Compute the intersection of a ray and a triangle.
//! From GLM_GTX_intersect extension. //! From GLM_GTX_intersect extension.
template <typename genType> template <typename genType>
@ -64,6 +67,8 @@ namespace glm
genType const & center, typename genType::value_type radius, genType const & center, typename genType::value_type radius,
genType & position, genType & normal); genType & position, genType & normal);
///@}
}//namespace intersect }//namespace intersect
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar. //! GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar.
namespace log_base namespace log_base
{ {
/// \addtogroup gtx_log_base
///@{
//! Logarithm for any base. //! Logarithm for any base.
//! From GLM_GTX_log_base. //! From GLM_GTX_log_base.
template <typename genType> template <typename genType>
@ -37,6 +40,8 @@ namespace glm
genType const & x, genType const & x,
genType const & base); genType const & base);
///@}
}//namespace extend }//namespace extend
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_matrix_cross_product: Build cross product matrices //! GLM_GTX_matrix_cross_product: Build cross product matrices
namespace matrix_cross_product namespace matrix_cross_product
{ {
/// \addtogroup gtx_matrix_cross_product
///@{
//! Build a cross product matrix. //! Build a cross product matrix.
//! From GLM_GTX_matrix_cross_product extension. //! From GLM_GTX_matrix_cross_product extension.
template <typename T> template <typename T>
@ -42,6 +45,8 @@ namespace glm
detail::tmat4x4<T> matrixCross4( detail::tmat4x4<T> matrixCross4(
detail::tvec3<T> const & x); detail::tvec3<T> const & x);
///@}
}//namespace matrix_cross_product }//namespace matrix_cross_product
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -23,9 +23,12 @@
namespace glm namespace glm
{ {
namespace gtx{ namespace gtx{
//! GLM_GTX_matrix_cross_product: Build matrices with specific matrix order, row or column //! GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column
namespace matrix_major_storage namespace matrix_major_storage
{ {
/// \addtogroup gtx_matrix_major_storage
///@{
//! Build a row major matrix from row vectors. //! Build a row major matrix from row vectors.
//! From GLM_GTX_matrix_major_storage extension. //! From GLM_GTX_matrix_major_storage extension.
template <typename T> template <typename T>
@ -110,6 +113,8 @@ namespace glm
detail::tmat4x4<T> colMajor4( detail::tmat4x4<T> colMajor4(
const detail::tmat4x4<T>& m); const detail::tmat4x4<T>& m);
///@}
}//namespace matrix_major_storage }//namespace matrix_major_storage
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -27,9 +27,12 @@ namespace glm
}//namespace test }//namespace test
namespace gtx{ namespace gtx{
//! GLM_GTX_matrix_operation: Build cross product matrices //! GLM_GTX_matrix_operation: Build diagonal matrices
namespace matrix_operation namespace matrix_operation
{ {
/// \addtogroup gtx_matrix_operation
///@{
//! Build a diagonal matrix. //! Build a diagonal matrix.
//! From GLM_GTX_matrix_operation extension. //! From GLM_GTX_matrix_operation extension.
template <typename valType> template <typename valType>
@ -84,6 +87,8 @@ namespace glm
detail::tmat4x4<valType> diagonal4x4( detail::tmat4x4<valType> diagonal4x4(
detail::tvec4<valType> const & v); detail::tvec4<valType> const & v);
///@}
}//namespace matrix_operation }//namespace matrix_operation
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -27,9 +27,12 @@ namespace glm
}//namespace test }//namespace test
namespace gtx{ namespace gtx{
//! GLM_GTX_matrix_query: Query to evaluate matrices properties //! GLM_GTX_matrix_query: Query to evaluate matrix properties
namespace matrix_query namespace matrix_query
{ {
/// \addtogroup gtx_matrix_query
///@{
//! Return if a matrix a null matrix. //! Return if a matrix a null matrix.
//! From GLM_GTX_matrix_query extension. //! From GLM_GTX_matrix_query extension.
template<typename T> template<typename T>
@ -86,6 +89,7 @@ namespace glm
const genType& m, const genType& m,
const typename genType::value_type epsilon = std::numeric_limits<typename genType::value_type>::epsilon()); const typename genType::value_type epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
///@}
}//namespace matrix_query }//namespace matrix_query
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,12 +30,17 @@ namespace glm
//! GLM_GTX_mixed_product extension: Mixed product of 3 vectors. //! GLM_GTX_mixed_product extension: Mixed product of 3 vectors.
namespace mixed_product namespace mixed_product
{ {
/// \addtogroup gtx_mixed_product
///@{
//! \brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) //! \brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
template <typename valType> template <typename valType>
valType mixedProduct( valType mixedProduct(
detail::tvec3<valType> const & v1, detail::tvec3<valType> const & v1,
detail::tvec3<valType> const & v2, detail::tvec3<valType> const & v2,
detail::tvec3<valType> const & v3); detail::tvec3<valType> const & v3);
///@}
}//namespace mixed_product }//namespace mixed_product
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_multiple: Find the closest number of a number multiple of other number. //! GLM_GTX_multiple: Find the closest number of a number multiple of other number.
namespace multiple namespace multiple
{ {
/// \addtogroup gtx_multiple
///@{
//! Higher Multiple number of Source. //! Higher Multiple number of Source.
//! From GLM_GTX_multiple extension. //! From GLM_GTX_multiple extension.
template <typename genType> template <typename genType>
@ -44,6 +47,8 @@ namespace glm
genType const & Source, genType const & Source,
genType const & Multiple); genType const & Multiple);
///@}
}//namespace multiple }//namespace multiple
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -32,9 +32,12 @@ namespace glm
}//namespace test }//namespace test
namespace gtx{ namespace gtx{
//! GLM_GTX_norm extension: Varius way to compute vector norms. //! GLM_GTX_norm extension: Various way to compute vector norms.
namespace norm namespace norm
{ {
/// \addtogroup gtx_norm
///@{
//! Returns the squared length of x. //! Returns the squared length of x.
//! From GLM_GTX_norm extension. //! From GLM_GTX_norm extension.
template <typename T> template <typename T>
@ -134,6 +137,8 @@ namespace glm
const detail::tvec3<T>& x, const detail::tvec3<T>& x,
unsigned int Depth); unsigned int Depth);
///@}
}//namespace norm }//namespace norm
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_normal extension: Compute the normal of a triangle. //! GLM_GTX_normal extension: Compute the normal of a triangle.
namespace normal namespace normal
{ {
/// \addtogroup gtx_normal
///@{
//! Computes triangle normal from triangle points. //! Computes triangle normal from triangle points.
//! From GLM_GTX_normal extension. //! From GLM_GTX_normal extension.
template <typename T> template <typename T>
@ -38,6 +41,8 @@ namespace glm
detail::tvec3<T> const & p2, detail::tvec3<T> const & p2,
detail::tvec3<T> const & p3); detail::tvec3<T> const & p3);
///@}
}//namespace normal }//namespace normal
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
{ {
using namespace gtx::fast_square_root; using namespace gtx::fast_square_root;
/// \addtogroup gtx_normalize_dot
///@{
//! Normalize parameters and returns the dot product of x and y. //! Normalize parameters and returns the dot product of x and y.
//! It's faster that dot(normalize(x), normalize(y)). //! It's faster that dot(normalize(x), normalize(y)).
//! From GLM_GTX_normalize_dot extension. //! From GLM_GTX_normalize_dot extension.
@ -46,6 +49,8 @@ namespace glm
genType const & x, genType const & x,
genType const & y); genType const & y);
///@}
}//namespace normalize_dot }//namespace normalize_dot
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -33,6 +33,9 @@ namespace number_precision
///////////////////////////// /////////////////////////////
// Unsigned int vector types // Unsigned int vector types
/// \addtogroup gtx_number_precision
///@{
typedef u8 u8vec1; //!< \brief 8bit unsigned integer scalar. (from GLM_GTX_number_precision extension) typedef u8 u8vec1; //!< \brief 8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
typedef u16 u16vec1; //!< \brief 16bit unsigned integer scalar. (from GLM_GTX_number_precision extension) typedef u16 u16vec1; //!< \brief 16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
typedef u32 u32vec1; //!< \brief 32bit unsigned integer scalar. (from GLM_GTX_number_precision extension) typedef u32 u32vec1; //!< \brief 32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
@ -55,6 +58,7 @@ namespace number_precision
typedef f64 f64mat1; //!< \brief Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) typedef f64 f64mat1; //!< \brief Double-precision floating-point scalar. (from GLM_GTX_number_precision extension)
typedef f64 f64mat1x1; //!< \brief Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) typedef f64 f64mat1x1; //!< \brief Double-precision floating-point scalar. (from GLM_GTX_number_precision extension)
///@}
}//namespace number_precision }//namespace number_precision
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -28,6 +28,9 @@ namespace ocl_type
/////////////////////////// ///////////////////////////
// Scalar types // Scalar types
/// \addtogroup gtx_ocl_type
///@{
typedef detail::int8 cl_char; //!< \brief 8bit signed integer. (from GLM_GTX_ocl_type extension) typedef detail::int8 cl_char; //!< \brief 8bit signed integer. (from GLM_GTX_ocl_type extension)
typedef detail::int16 cl_short; //!< \brief 16bit signed integer. (from GLM_GTX_ocl_type extension) typedef detail::int16 cl_short; //!< \brief 16bit signed integer. (from GLM_GTX_ocl_type extension)
typedef detail::int32 cl_int; //!< \brief 32bit signed integer. (from GLM_GTX_ocl_type extension) typedef detail::int32 cl_int; //!< \brief 32bit signed integer. (from GLM_GTX_ocl_type extension)
@ -96,6 +99,8 @@ namespace ocl_type
//typedef detail::tvec4<detail::float16> cl_half4; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension) //typedef detail::tvec4<detail::float16> cl_half4; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
typedef detail::tvec4<detail::float32> cl_float4; //!< \brief Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension) typedef detail::tvec4<detail::float32> cl_float4; //!< \brief Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
///@}
}//namespace ocl_type }//namespace ocl_type
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -27,9 +27,12 @@ namespace glm
}//namespace test }//namespace test
namespace gtx{ namespace gtx{
//! GLM_GTX_optimum_pow extension: Integer exponenciation of power functions. //! GLM_GTX_optimum_pow extension: Integer exponentiation of power functions.
namespace optimum_pow namespace optimum_pow
{ {
/// \addtogroup gtx_optimum_pow
///@{
//! Returns x raised to the power of 2. //! Returns x raised to the power of 2.
//! From GLM_GTX_optimum_pow extension. //! From GLM_GTX_optimum_pow extension.
template <typename genType> template <typename genType>
@ -61,6 +64,8 @@ namespace glm
//! From GLM_GTX_optimum_pow extension. //! From GLM_GTX_optimum_pow extension.
detail::tvec4<bool> powOfTwo(const detail::tvec4<int>& x); detail::tvec4<bool> powOfTwo(const detail::tvec4<int>& x);
///@}
}//namespace optimum_pow }//namespace optimum_pow
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_orthonormalize extension: Orthonormalize matrices. //! GLM_GTX_orthonormalize extension: Orthonormalize matrices.
namespace orthonormalize namespace orthonormalize
{ {
/// \addtogroup gtx_orthonormalize
///@{
//! Returns the orthonormalized matrix of m. //! Returns the orthonormalized matrix of m.
//! From GLM_GTX_orthonormalize extension. //! From GLM_GTX_orthonormalize extension.
template <typename T> template <typename T>
@ -43,6 +46,8 @@ namespace glm
const detail::tvec3<T>& x, const detail::tvec3<T>& x,
const detail::tvec3<T>& y); const detail::tvec3<T>& y);
///@}
}//namespace orthonormalize }//namespace orthonormalize
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -32,6 +32,9 @@ namespace glm
//! GLM_GTX_perpendicular extension: Perpendicular of a vector from other one //! GLM_GTX_perpendicular extension: Perpendicular of a vector from other one
namespace perpendicular namespace perpendicular
{ {
/// \addtogroup gtx_perpendicular
///@{
//! Projects x a perpendicular axis of Normal. //! Projects x a perpendicular axis of Normal.
//! From GLM_GTX_perpendicular extension. //! From GLM_GTX_perpendicular extension.
template <typename T> template <typename T>
@ -53,6 +56,9 @@ namespace glm
detail::tvec4<T> const & x, detail::tvec4<T> const & x,
detail::tvec4<T> const & Normal); detail::tvec4<T> const & Normal);
///@}
}//namespace perpendicular }//namespace perpendicular
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -26,6 +26,9 @@ namespace glm
//! GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert. //! GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert.
namespace polar_coordinates namespace polar_coordinates
{ {
/// \addtogroup gtx_polar_coordinates
///@{
//! Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. //! Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.
//! From GLM_GTX_polar_coordinates extension. //! From GLM_GTX_polar_coordinates extension.
template <typename T> template <typename T>
@ -36,6 +39,8 @@ namespace glm
template <typename T> template <typename T>
detail::tvec3<T> euclidean(const detail::tvec3<T>& polar); detail::tvec3<T> euclidean(const detail::tvec3<T>& polar);
///@}
}//namespace polar_coordinates }//namespace polar_coordinates
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_projection extension: Projection of a vector to other one //! GLM_GTX_projection extension: Projection of a vector to other one
namespace projection namespace projection
{ {
/// \addtogroup gtx_projection
///@{
//! Projects x on Normal. //! Projects x on Normal.
//! From GLM_GTX_projection extension. //! From GLM_GTX_projection extension.
template <typename T> template <typename T>
@ -51,6 +54,8 @@ namespace glm
detail::tvec4<T> const & x, detail::tvec4<T> const & x,
detail::tvec4<T> const & Normal); detail::tvec4<T> const & Normal);
///@}
}//namespace projection }//namespace projection
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -33,6 +33,9 @@ namespace glm
{ {
using namespace gtc::quaternion; using namespace gtc::quaternion;
/// \addtogroup gtx_quaternion
///@{
//! Compute a cross product between a quaternion and a vector. //! Compute a cross product between a quaternion and a vector.
//! From GLM_GTX_quaternion extension. //! From GLM_GTX_quaternion extension.
template <typename valType> template <typename valType>
@ -188,6 +191,8 @@ namespace glm
detail::tquat<valType> toQuat( detail::tquat<valType> toQuat(
detail::tmat4x4<valType> const & x){return gtc::quaternion::quat_cast(x);} detail::tmat4x4<valType> const & x){return gtc::quaternion::quat_cast(x);}
///@}
}//namespace quaternion }//namespace quaternion
}//namespace gtx }//namespace gtx
} //namespace glm } //namespace glm

View File

@ -25,9 +25,12 @@
namespace glm{ namespace glm{
namespace gtx{ namespace gtx{
//! GLM_GTX_random extension: Generate random number from varius distribution methods //! GLM_GTX_random extension: Generate random number from various distribution methods
namespace random namespace random
{ {
/// \addtogroup gtx_random
///@{
//! Generate a random number in the interval [-1, 1], according a linear distribution. //! Generate a random number in the interval [-1, 1], according a linear distribution.
//! From GLM_GTX_random extension. //! From GLM_GTX_random extension.
template <typename T> T signedRand1(); template <typename T> T signedRand1();
@ -75,6 +78,7 @@ namespace random
template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, const detail::tvec3<T>& std_deviation); //!< \brief Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension) template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, const detail::tvec3<T>& std_deviation); //!< \brief Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, const detail::tvec4<T>& std_deviation); //!< \brief Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension) template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, const detail::tvec4<T>& std_deviation); //!< \brief Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
///@}
}//namespace random }//namespace random
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -29,6 +29,9 @@ namespace gtx
{ {
using namespace gtc::type_precision; using namespace gtc::type_precision;
/// \addtogroup gtx_raw_data
///@{
//! Type for byte numbers. //! Type for byte numbers.
//! From GLM_GTX_raw_data extension. //! From GLM_GTX_raw_data extension.
typedef uint8 byte; typedef uint8 byte;
@ -44,6 +47,8 @@ namespace gtx
//! Type for qword numbers. //! Type for qword numbers.
//! From GLM_GTX_raw_data extension. //! From GLM_GTX_raw_data extension.
typedef uint64 qword; typedef uint64 qword;
///@}
} }
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -27,6 +27,9 @@ namespace glm
//! GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions. //! GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions.
namespace reciprocal namespace reciprocal
{ {
/// \addtogroup gtx_reciprocal
///@{
//! Secant function. //! Secant function.
//! hypotenuse / adjacent or 1 / cos(x) //! hypotenuse / adjacent or 1 / cos(x)
//! From GLM_GTX_reciprocal extension. //! From GLM_GTX_reciprocal extension.
@ -90,6 +93,8 @@ namespace glm
template <typename genType> template <typename genType>
genType acoth(genType const & x); genType acoth(genType const & x);
///@}
}//namespace reciprocal }//namespace reciprocal
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -29,14 +29,17 @@ namespace glm
{ {
using namespace transform; using namespace transform;
//! Rotate a two dimentionnals vector. /// \addtogroup gtx_rotate_vector
///@{
//! Rotate a two dimensional vector.
//! From GLM_GTX_rotate_vector extension. //! From GLM_GTX_rotate_vector extension.
template <typename T> template <typename T>
detail::tvec2<T> rotate( detail::tvec2<T> rotate(
const detail::tvec2<T>& v, const detail::tvec2<T>& v,
T angle); T angle);
//! Rotate a three dimentionnals vector around an axis. //! Rotate a three dimensional vector around an axis.
//! From GLM_GTX_rotate_vector extension. //! From GLM_GTX_rotate_vector extension.
template <typename T> template <typename T>
detail::tvec3<T> rotate( detail::tvec3<T> rotate(
@ -44,28 +47,28 @@ namespace glm
T angle, T angle,
const detail::tvec3<T>& normal); const detail::tvec3<T>& normal);
//! Rotate a four dimentionnals vector around an axis. //! Rotate a four dimensional vector around an axis.
//! From GLM_GTX_rotate_vector extension. //! From GLM_GTX_rotate_vector extension.
template <typename T> template <typename T>
detail::tvec4<T> rotate( detail::tvec4<T> rotate(
const detail::tvec4<T>& v, T angle, const detail::tvec4<T>& v, T angle,
const detail::tvec3<T>& normal); const detail::tvec3<T>& normal);
//! Rotate a three dimentionnals vector around the X axis. //! Rotate a three dimensional vector around the X axis.
//! From GLM_GTX_rotate_vector extension. //! From GLM_GTX_rotate_vector extension.
template <typename T> template <typename T>
detail::tvec3<T> rotateX( detail::tvec3<T> rotateX(
const detail::tvec3<T>& v, const detail::tvec3<T>& v,
T angle); T angle);
//! Rotate a three dimentionnals vector around the Y axis. //! Rotate a three dimensional vector around the Y axis.
//! From GLM_GTX_rotate_vector extension. //! From GLM_GTX_rotate_vector extension.
template <typename T> template <typename T>
detail::tvec3<T> rotateY( detail::tvec3<T> rotateY(
const detail::tvec3<T>& v, const detail::tvec3<T>& v,
T angle); T angle);
//! Rotate a three dimentionnals vector around the Z axis. //! Rotate a three dimensional vector around the Z axis.
//! From GLM_GTX_rotate_vector extension. //! From GLM_GTX_rotate_vector extension.
template <typename T> template <typename T>
detail::tvec3<T> rotateZ( detail::tvec3<T> rotateZ(
@ -79,14 +82,14 @@ namespace glm
const detail::tvec4<T>& v, const detail::tvec4<T>& v,
T angle); T angle);
//! Rotate a four dimentionnals vector around the X axis. //! Rotate a four dimensional vector around the X axis.
//! From GLM_GTX_rotate_vector extension. //! From GLM_GTX_rotate_vector extension.
template <typename T> template <typename T>
detail::tvec4<T> rotateY( detail::tvec4<T> rotateY(
const detail::tvec4<T>& v, const detail::tvec4<T>& v,
T angle); T angle);
//! Rotate a four dimentionnals vector around the X axis. //! Rotate a four dimensional vector around the X axis.
//! From GLM_GTX_rotate_vector extension. //! From GLM_GTX_rotate_vector extension.
template <typename T> template <typename T>
detail::tvec4<T> rotateZ( detail::tvec4<T> rotateZ(
@ -100,6 +103,8 @@ namespace glm
const detail::tvec3<T>& Normal, const detail::tvec3<T>& Normal,
const detail::tvec3<T>& Up); const detail::tvec3<T>& Up);
///@}
}//namespace rotate_vector }//namespace rotate_vector
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -32,6 +32,8 @@ namespace glm
{ {
namespace detail namespace detail
{ {
/// 4x4 Matrix implemented using SIMD SEE intrinsics.
/// \ingroup gtx_simd_mat4
GLM_ALIGN(16) struct fmat4x4SIMD GLM_ALIGN(16) struct fmat4x4SIMD
{ {
enum ctor{null}; enum ctor{null};
@ -129,11 +131,14 @@ namespace glm
}//namespace detail }//namespace detail
namespace gtx{ namespace gtx{
//! GLM_GTX_simd_mat4 extension: SIMD implementation of vec4 type. //! GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type.
namespace simd_mat4 namespace simd_mat4
{ {
typedef detail::fmat4x4SIMD simdMat4; typedef detail::fmat4x4SIMD simdMat4;
/// \addtogroup gtx_simd_mat4
///@{
//! Convert a simdMat4 to a mat4. //! Convert a simdMat4 to a mat4.
//! (From GLM_GTX_simd_mat4 extension) //! (From GLM_GTX_simd_mat4 extension)
detail::tmat4x4<float> mat4_cast( detail::tmat4x4<float> mat4_cast(
@ -169,6 +174,8 @@ namespace glm
detail::fmat4x4SIMD simdInverse( detail::fmat4x4SIMD simdInverse(
detail::fmat4x4SIMD const & m); detail::fmat4x4SIMD const & m);
///@}
}//namespace simd_mat4 }//namespace simd_mat4
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -32,6 +32,8 @@ namespace glm
{ {
namespace detail namespace detail
{ {
/// 4-dimensional vector implemented using SIMD SEE intrinsics.
/// \ingroup gtx_simd_vec4
GLM_ALIGN(4) struct fvec4SIMD GLM_ALIGN(4) struct fvec4SIMD
{ {
enum ctor{null}; enum ctor{null};
@ -117,6 +119,9 @@ namespace glm
{ {
typedef detail::fvec4SIMD simdVec4; typedef detail::fvec4SIMD simdVec4;
/// \addtogroup gtx_simd_vec4
///@{
//! Convert a simdVec4 to a vec4. //! Convert a simdVec4 to a vec4.
//! (From GLM_GTX_simd_vec4 extension) //! (From GLM_GTX_simd_vec4 extension)
detail::tvec4<float> vec4_cast( detail::tvec4<float> vec4_cast(
@ -401,6 +406,8 @@ namespace glm
detail::fvec4SIMD const & I, detail::fvec4SIMD const & I,
detail::fvec4SIMD const & N, detail::fvec4SIMD const & N,
float const & eta); float const & eta);
///@}
}//namespace simd_vec4 }//namespace simd_vec4
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -29,6 +29,9 @@ namespace glm
{ {
using namespace gtx::optimum_pow; using namespace gtx::optimum_pow;
/// \addtogroup gtx_spline
///@{
//! Return a point from a catmull rom curve. //! Return a point from a catmull rom curve.
//! From GLM_GTX_spline extension. //! From GLM_GTX_spline extension.
template <typename genType> template <typename genType>
@ -59,6 +62,8 @@ namespace glm
const genType& v4, const genType& v4,
const GLMvalType& s); const GLMvalType& s);
///@}
}//namespace spline }//namespace spline
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -43,11 +43,16 @@ namespace glm
using namespace gtx::unsigned_int; using namespace gtx::unsigned_int;
using namespace gtx::quaternion; using namespace gtx::quaternion;
/// \addtogroup gtx_string_cast
///@{
//! Create a string from a GLM type value. //! Create a string from a GLM type value.
//! From GLM_GTX_string_cast extension. //! From GLM_GTX_string_cast extension.
template <typename genType> template <typename genType>
std::string to_string(genType const & x); std::string to_string(genType const & x);
///@}
}//namespace string_cast }//namespace string_cast
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -34,6 +34,9 @@ namespace glm
{ {
using namespace gtc::matrix_transform; using namespace gtc::matrix_transform;
/// \addtogroup gtx_transform
///@{
//! Builds a translation 4 * 4 matrix created from 3 scalars. //! Builds a translation 4 * 4 matrix created from 3 scalars.
//! From GLM_GTX_transform extension. //! From GLM_GTX_transform extension.
template <typename T> template <typename T>
@ -94,6 +97,8 @@ namespace glm
detail::tmat4x4<T> scale( detail::tmat4x4<T> scale(
detail::tvec3<T> const & v); detail::tvec3<T> const & v);
///@}
}//namespace transform }//namespace transform
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -34,6 +34,9 @@ namespace glm
{ {
using namespace gtx::transform; using namespace gtx::transform;
/// \addtogroup gtx_transform2
///@{
//! Transforms a matrix with a shearing on X axis. //! Transforms a matrix with a shearing on X axis.
//! From GLM_GTX_transform2 extension. //! From GLM_GTX_transform2 extension.
template <typename T> template <typename T>
@ -109,6 +112,8 @@ namespace glm
valType scale, valType scale,
valType bias); valType bias);
///@}
}//namespace transform2 }//namespace transform2
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -34,6 +34,9 @@ namespace glm
{ {
using namespace gtx::integer; using namespace gtx::integer;
/// \addtogroup gtx_unsigned_int
///@{
//! 32bit signed integer. //! 32bit signed integer.
//! From GLM_GTX_unsigned_int extension. //! From GLM_GTX_unsigned_int extension.
typedef signed int sint; typedef signed int sint;
@ -50,6 +53,8 @@ namespace glm
//! From GLM_GTX_unsigned_int extension. //! From GLM_GTX_unsigned_int extension.
uint mod(uint x, uint y); uint mod(uint x, uint y);
///@}
}//namespace unsigned_int }//namespace unsigned_int
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -34,41 +34,41 @@ namespace glm
namespace precision namespace precision
{ {
//! 1 component vector of high precision floating-point numbers. //! 1 component vector of high precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLM_GTX_vec1 extension. //! From GLM_GTX_vec1 extension.
typedef detail::highp_vec1_t highp_vec1; typedef detail::highp_vec1_t highp_vec1;
//! 1 component vector of medium precision floating-point numbers. //! 1 component vector of medium precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLM_GTX_vec1 extension. //! From GLM_GTX_vec1 extension.
typedef detail::mediump_vec1_t mediump_vec1; typedef detail::mediump_vec1_t mediump_vec1;
//! 1 component vector of low precision floating-point numbers. //! 1 component vector of low precision floating-point numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLM_GTX_vec1 extension. //! From GLM_GTX_vec1 extension.
typedef detail::lowp_vec1_t lowp_vec1; typedef detail::lowp_vec1_t lowp_vec1;
//! 1 component vector of high precision signed integer numbers. //! 1 component vector of high precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLM_GTX_vec1 extension. //! From GLM_GTX_vec1 extension.
typedef detail::highp_ivec1_t highp_ivec1; typedef detail::highp_ivec1_t highp_ivec1;
//! 1 component vector of medium precision signed integer numbers. //! 1 component vector of medium precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLM_GTX_vec1 extension. //! From GLM_GTX_vec1 extension.
typedef detail::mediump_ivec1_t mediump_ivec1; typedef detail::mediump_ivec1_t mediump_ivec1;
//! 1 component vector of low precision signed integer numbers. //! 1 component vector of low precision signed integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLM_GTX_vec1 extension. //! From GLM_GTX_vec1 extension.
typedef detail::lowp_ivec1_t lowp_ivec1; typedef detail::lowp_ivec1_t lowp_ivec1;
//! 1 component vector of high precision unsigned integer numbers. //! 1 component vector of high precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLM_GTX_vec1 extension. //! From GLM_GTX_vec1 extension.
typedef detail::highp_uvec1_t highp_uvec1; typedef detail::highp_uvec1_t highp_uvec1;
//! 1 component vector of medium precision unsigned integer numbers. //! 1 component vector of medium precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLM_GTX_vec1 extension. //! From GLM_GTX_vec1 extension.
typedef detail::mediump_uvec1_t mediump_uvec1; typedef detail::mediump_uvec1_t mediump_uvec1;
//! 1 component vector of low precision unsigned integer numbers. //! 1 component vector of low precision unsigned integer numbers.
//! There is no garanty on the actual precision. //! There is no guarantee on the actual precision.
//! From GLM_GTX_vec1 extension. //! From GLM_GTX_vec1 extension.
typedef detail::lowp_uvec1_t lowp_uvec1; typedef detail::lowp_uvec1_t lowp_uvec1;
}//namespace precision }//namespace precision

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_vector_access extension: Function to set values to vectors //! GLM_GTX_vector_access extension: Function to set values to vectors
namespace vector_access namespace vector_access
{ {
/// \addtogroup gtx_vector_access
///@{
//! Set values to a 2 components vector. //! Set values to a 2 components vector.
//! From GLM_GTX_vector_access extension. //! From GLM_GTX_vector_access extension.
template <typename valType> template <typename valType>
@ -57,6 +60,8 @@ namespace glm
valType const & z, valType const & z,
valType const & w); valType const & w);
///@}
}//namespace vector_access }//namespace vector_access
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -37,6 +37,9 @@ namespace glm
using namespace quaternion; using namespace quaternion;
using namespace epsilon; using namespace epsilon;
/// \addtogroup gtx_vector_angle
///@{
//! Returns the absolute angle between x and y. //! Returns the absolute angle between x and y.
//! Parameters need to be normalized. //! Parameters need to be normalized.
//! From GLM_GTX_vector_angle extension //! From GLM_GTX_vector_angle extension
@ -61,6 +64,8 @@ namespace glm
vecType const & x, vecType const & x,
vecType const & y, vecType const & y,
detail::tvec3<typename vecType::value_type> const & ref); detail::tvec3<typename vecType::value_type> const & ref);
///@}
}//namespace vector_angle }//namespace vector_angle
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -32,6 +32,9 @@ namespace glm
//! GLM_GTX_vector_query extension: Query informations of vector types //! GLM_GTX_vector_query extension: Query informations of vector types
namespace vector_query namespace vector_query
{ {
/// \addtogroup gtx_vector_query
///@{
//! Check if two vectors are collinears. //! Check if two vectors are collinears.
//! From GLM_GTX_vector_query extensions. //! From GLM_GTX_vector_query extensions.
template <typename genType> template <typename genType>
@ -86,6 +89,8 @@ namespace glm
const genType& v1, const genType& v1,
const GLMvalType epsilon = std::numeric_limits<GLMvalType>::epsilon()); const GLMvalType epsilon = std::numeric_limits<GLMvalType>::epsilon());
///@}
}//namespace vector_query }//namespace vector_query
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_verbose_operator extension: Use words to replace operators //! GLM_GTX_verbose_operator extension: Use words to replace operators
namespace verbose_operator namespace verbose_operator
{ {
/// \addtogroup gtx_verbose_operator
///@{
//! Addition of two values //! Addition of two values
//! From GLM_GTX_verbose_operator extension. //! From GLM_GTX_verbose_operator extension.
template <typename genTypeT, typename genTypeU> template <typename genTypeT, typename genTypeU>
@ -54,6 +57,8 @@ namespace glm
//! From GLM_GTX_verbose_operator extension. //! From GLM_GTX_verbose_operator extension.
template <typename genTypeT, typename genTypeU, typename genTypeV> template <typename genTypeT, typename genTypeU, typename genTypeV>
genTypeT mad(genTypeT const & a, genTypeU const & b, genTypeV const & c); genTypeT mad(genTypeT const & a, genTypeU const & b, genTypeV const & c);
///@}
}//namespace verbose_operator }//namespace verbose_operator
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm

View File

@ -30,6 +30,9 @@ namespace glm
//! GLM_GTX_wrap: Wrapping mode using my texture samping. //! GLM_GTX_wrap: Wrapping mode using my texture samping.
namespace wrap namespace wrap
{ {
/// \addtogroup gtx_wrap
///@{
//! Simulate GL_CLAMP OpenGL wrap mode //! Simulate GL_CLAMP OpenGL wrap mode
//! From GLM_GTX_wrap extension. //! From GLM_GTX_wrap extension.
template <typename genType> template <typename genType>
@ -45,6 +48,8 @@ namespace glm
template <typename genType> template <typename genType>
genType mirrorRepeat(genType const & Texcoord); genType mirrorRepeat(genType const & Texcoord);
///@}
}//namespace wrap }//namespace wrap
}//namespace gtx }//namespace gtx
}//namespace glm }//namespace glm