Moved docygen documentation to each extension file and added missing extension documentation

master
Christophe Riccio ago%!(EXTRA string=14 years)
parent 3904d5c59c
commit a672f612ad
  1. 108
      doc/gtcModules.doxy
  2. 4
      doc/gtxModules.doxy
  3. 45
      glm/ext.hpp
  4. 28
      glm/glm.hpp
  5. 9
      glm/gtc/half_float.hpp
  6. 6
      glm/gtc/matrix_access.hpp
  7. 6
      glm/gtc/matrix_integer.hpp
  8. 10
      glm/gtc/matrix_inverse.hpp
  9. 17
      glm/gtc/matrix_transform.hpp
  10. 11
      glm/gtc/quaternion.hpp
  11. 11
      glm/gtc/swizzle.hpp
  12. 10
      glm/gtc/type_precision.hpp
  13. 29
      glm/gtc/type_ptr.hpp
  14. 8
      glm/gtx/associated_min_max.hpp
  15. 57
      glm/gtx/noise.hpp

@ -1,108 +0,0 @@
/*!
\defgroup gtc GTC Extensions (Stable)
\brief Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.
GTC extensions aim to be stable.
Even if it's highly unrecommended, it's possible to include all the extensions at once by
including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.
**/
/*!
\defgroup gtc_half_float GLM_GTC_half_float: Half-precision floating-point based types and functions
\ingroup gtc
Defines the half-precision floating-point type, along with various typedefs for vectors and matrices.
<glm/gtc/half_float.hpp> need to be included to use these functionalities.
**/
/*!
\defgroup gtc_matrix_access GLM_GTC_matrix_access: Access matrix rows and columns
\ingroup gtc
Defines functions to access rows or columns of a matrix easily.
<glm/gtc/matrix_access.hpp> need to be included to use these functionalities.
**/
/*!
\defgroup gtc_matrix_integer GLM_GTC_matrix_integer: Integer matrix types
\ingroup gtc
Defines a number of matrices with integer types.
<glm/gtc/matrix_integer.hpp> need to be included to use these functionalities.
**/
/*!
\defgroup gtc_matrix_inverse GLM_GTC_matrix_inverse: Additional matrix inverse function
\ingroup gtc
Defines additional matrix inverting functions.
<glm/gtc/matrix_inverse.hpp> need to be included to use these functionalities.
**/
/*!
\defgroup gtc_matrix_transform GLM_GTC_matrix_transform: Matrix transform functions
\ingroup gtc
\brief Defines functions that generate common transformation matrices.
The matrices generated by this extension use standard OpenGL fixed-function
conventions. For example, the lookAt function generates a transform from world
space into the specific eye space that the projective matrix functions (
perspective, ortho, etc) are designed to expect. The OpenGL compatibility
specifications defines the particular layout of this eye space.
<glm/gtc/matrix_transform.hpp> need to be included to use these functionalities.
**/
/*!
\defgroup gtc_quaternion GLM_GTC_quaternion: Quaternion types and functions
\ingroup gtc
\brief Defines a templated quaternion type and several quaternion operations.
<glm/gtc/quaternion.hpp> need to be included to use these functionalities.
**/
/*!
\defgroup gtc_type_precision GLM_GTC_type_precision: Vector and matrix types with defined precisions
\ingroup gtc
\brief Defines specific C++-based precision types.
\ref core_precision defines types based on GLSL's precision qualifiers. This
extension defines types based on explicitly-sized C++ data types.
<glm/gtc/type_precision.hpp> need to be included to use these functionalities.
**/
/*!
\defgroup gtc_type_ptr GLM_GTC_type_ptr: Memory layout access
\ingroup gtc
\brief Used to get a pointer to the memory layout of a basic type.
This extension defines an overloaded function, glm::value_ptr, which
takes any of the \ref core_template "core template types". It returns
a pointer to the memory layout of the object. Matrix types store their values
in column-major order.
This is useful for uploading data to matrices or copying data to buffer objects.
Example:
\code
#include <glm/glm.hpp>
#include <glm/gtc/type_ptr.hpp>
glm::vec3 aVector(3);
glm::mat4 someMatrix(1.0);
glUniform3fv(uniformLoc, 1, glm::value_ptr(aVector));
glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, glm::value_ptr(someMatrix));
\endcode
<glm/gtc/type_ptr.hpp> need to be included to use these functionalities.
**/

@ -11,13 +11,13 @@
including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file. including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.
**/ **/
/*! /*
\defgroup gtx_associated_min_max GLM_GTX_associated_min_max: Associated Min/Max \defgroup gtx_associated_min_max GLM_GTX_associated_min_max: Associated Min/Max
\ingroup gtx \ingroup gtx
\brief Min and max functions that return associated values not the compared onces. \brief Min and max functions that return associated values not the compared onces.
<glm/gtx/associated_min_max.hpp> need to be included to use these functionalities. <glm/gtx/associated_min_max.hpp> need to be included to use these functionalities.
**/ */
/*! /*!
\defgroup gtx_bit GLM_GTX_bit: Extended bitwise operations \defgroup gtx_bit GLM_GTX_bit: Extended bitwise operations

@ -1,11 +1,40 @@
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /// OpenGL Mathematics (glm.g-truc.net)
/////////////////////////////////////////////////////////////////////////////////////////////////// ///
// Created : 2009-05-01 /// Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
// Updated : 2010-12-13 /// Permission is hereby granted, free of charge, to any person obtaining a copy
// Licence : This source is under MIT License /// of this software and associated documentation files (the "Software"), to deal
// File : glm/ext.hpp /// in the Software without restriction, including without limitation the rights
/////////////////////////////////////////////////////////////////////////////////////////////////// /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
/// copies of the Software, and to permit persons to whom the Software is
/// furnished to do so, subject to the following conditions:
///
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
/// THE SOFTWARE.
///
/// @file glm/glm.hpp
/// @date 2009-05-01 / 2011-05-16
/// @author Christophe Riccio
///
/// @ref core (Dependence)
///
/// @defgroup gtc GTC Extensions (Stable)
///
/// @brief Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.
///
/// GTC extensions aim to be stable.
///
/// Even if it's highly unrecommended, it's possible to include all the extensions at once by
/// including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.
///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_ext #ifndef glm_ext
#define glm_ext #define glm_ext

@ -43,40 +43,12 @@
# pragma message("GLM: Core library included") # pragma message("GLM: Core library included")
#endif//GLM_MESSAGE #endif//GLM_MESSAGE
//! GLM namespace, it contains all GLSL based features.
namespace glm namespace glm
{ {
//! GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace.
namespace core
{
//! Scalar, vectors and matrices
//! from section 4.1.2 Booleans, 4.1.3 Integers section, 4.1.4 Floats section,
//! 4.1.5 Vectors and section 4.1.6 Matrices of GLSL 1.30.8 specification.
//! This namespace resolves precision qualifier define in section 4.5 of GLSL 1.30.8 specification.
namespace type
{
namespace precision{}
}
//! Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification.
//! Angle and trigonometry, exponential, common, geometric, matrix and vector relational functions.
namespace function{}
}//namespace core
//! G-Truc Creation stable extensions.
namespace gtc{} namespace gtc{}
//! G-Truc Creation experimental extensions.
//! The interface could change between releases.
namespace gtx{} namespace gtx{}
//! VIRTREV extensions.
namespace virtrev{} namespace virtrev{}
using namespace core;
using namespace core::type;
using namespace core::type::precision;
using namespace core::function;
using namespace gtc; using namespace gtc;
using namespace gtx; using namespace gtx;
}//namespace glm }//namespace glm

@ -26,6 +26,13 @@
/// @author Christophe Riccio /// @author Christophe Riccio
/// ///
/// @see core (dependence) /// @see core (dependence)
///
/// @defgroup gtc_half_float GLM_GTC_half_float: Half-precision floating-point based types and functions
/// @ingroup gtc
///
/// Defines the half-precision floating-point type, along with various typedefs for vectors and matrices.
/// <glm/gtc/half_float.hpp> need to be included to use these functionalities.
///
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_half_float #ifndef glm_gtc_half_float
@ -344,7 +351,7 @@ namespace detail
namespace gtc namespace gtc
{ {
/// \addtogroup gtc_half_float /// @addtogroup gtc_half_float
/// @{ /// @{
/// Type for half-precision floating-point numbers. /// Type for half-precision floating-point numbers.

@ -26,6 +26,12 @@
/// @author Christophe Riccio /// @author Christophe Riccio
/// ///
/// @see core (dependence) /// @see core (dependence)
///
/// @defgroup gtc_matrix_access GLM_GTC_matrix_access: Access matrix rows and columns
/// @ingroup gtc
///
/// Defines functions to access rows or columns of a matrix easily.
/// <glm/gtc/matrix_access.hpp> need to be included to use these functionalities.
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_matrix_access #ifndef glm_gtc_matrix_access

@ -26,6 +26,12 @@
/// @author Christophe Riccio /// @author Christophe Riccio
/// ///
/// @see core (dependence) /// @see core (dependence)
///
/// @defgroup gtc_matrix_integer GLM_GTC_matrix_integer: Integer matrix types
/// @ingroup gtc
///
/// Defines a number of matrices with integer types.
/// <glm/gtc/matrix_integer.hpp> need to be included to use these functionalities.
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_matrix_integer #ifndef glm_gtc_matrix_integer

@ -26,6 +26,12 @@
/// @author Christophe Riccio /// @author Christophe Riccio
/// ///
/// @see core (dependence) /// @see core (dependence)
///
/// @defgroup gtc_matrix_inverse GLM_GTC_matrix_inverse: Additional matrix inverse function
/// @ingroup gtc
///
/// Defines additional matrix inverting functions.
/// <glm/gtc/matrix_inverse.hpp> need to be included to use these functionalities.
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_matrix_inverse #ifndef glm_gtc_matrix_inverse
@ -39,8 +45,8 @@
#endif #endif
namespace glm{ namespace glm{
namespace gtc{ namespace gtc
{
/// @addtogroup gtc_matrix_inverse /// @addtogroup gtc_matrix_inverse
/// @{ /// @{

@ -28,6 +28,19 @@
/// @see core (dependence) /// @see core (dependence)
/// @see gtx_transform /// @see gtx_transform
/// @see gtx_transform2 /// @see gtx_transform2
///
/// @defgroup gtc_matrix_transform GLM_GTC_matrix_transform: Matrix transform functions
/// @ingroup gtc
///
/// @brief Defines functions that generate common transformation matrices.
///
/// The matrices generated by this extension use standard OpenGL fixed-function
/// conventions. For example, the lookAt function generates a transform from world
/// space into the specific eye space that the projective matrix functions
/// (perspective, ortho, etc) are designed to expect. The OpenGL compatibility
/// specifications defines the particular layout of this eye space.
///
/// <glm/gtc/matrix_transform.hpp> need to be included to use these functionalities.
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_matrix_transform #ifndef glm_gtc_matrix_transform
@ -41,8 +54,8 @@
#endif #endif
namespace glm{ namespace glm{
namespace gtc{ namespace gtc
{
/// @addtogroup gtc_matrix_transform /// @addtogroup gtc_matrix_transform
/// @{ /// @{

@ -30,6 +30,13 @@
/// ///
/// @todo Study constructors with angles and axis /// @todo Study constructors with angles and axis
/// @todo Study constructors with vec3 that are the imaginary component of quaternion /// @todo Study constructors with vec3 that are the imaginary component of quaternion
///
/// @defgroup gtc_quaternion GLM_GTC_quaternion: Quaternion types and functions
/// @ingroup gtc
///
/// @brief Defines a templated quaternion type and several quaternion operations.
///
/// <glm/gtc/quaternion.hpp> need to be included to use these functionalities.
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_quaternion #ifndef glm_gtc_quaternion
@ -46,9 +53,9 @@
namespace glm{ namespace glm{
namespace detail namespace detail
{ {
/// \brief Template for quaternion. /// @brief Template for quaternion.
/// From GLM_GTC_quaternion extension. /// From GLM_GTC_quaternion extension.
/// \ingroup gtc_quaternion /// @ingroup gtc_quaternion
template <typename T> template <typename T>
struct tquat// : public genType<T, tquat> struct tquat// : public genType<T, tquat>
{ {

@ -26,6 +26,13 @@
/// @author Christophe Riccio /// @author Christophe Riccio
/// ///
/// @see core (dependence) /// @see core (dependence)
///
/// @defgroup gtc_swizzle GLM_GTC_swizzle: Swizzle 'operator' implementation
/// @ingroup gtc
///
/// @brief Provide functions to emulate GLSL swizzle operator fonctionalities.
///
/// <glm/gtc/swizzle.hpp> need to be included to use these functionalities.
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_swizzle #ifndef glm_gtc_swizzle
@ -42,6 +49,9 @@
namespace glm{ namespace glm{
namespace gtc namespace gtc
{ {
/// @addtogroup gtc_half_float
/// @{
template <typename T, template <typename> class vecType> template <typename T, template <typename> class vecType>
T const & swizzle( T const & swizzle(
vecType<T> const & v, vecType<T> const & v,
@ -358,6 +368,7 @@ namespace gtc
static_swizzle4_ref(glm::u32, 4) static_swizzle4_ref(glm::u32, 4)
static_swizzle4_ref(glm::u64, 4) static_swizzle4_ref(glm::u64, 4)
/// @}
}//namespace gtc }//namespace gtc
}//namespace glm }//namespace glm

@ -28,6 +28,16 @@
/// @see core (dependence) /// @see core (dependence)
/// @see gtc_half_float (dependence) /// @see gtc_half_float (dependence)
/// @see gtc_quaternion (dependence) /// @see gtc_quaternion (dependence)
///
/// @defgroup gtc_type_precision GLM_GTC_type_precision: Vector and matrix types with defined precisions
/// @ingroup gtc
///
/// @brief Defines specific C++-based precision types.
///
/// @ref core_precision defines types based on GLSL's precision qualifiers. This
/// extension defines types based on explicitly-sized C++ data types.
///
/// <glm/gtc/type_precision.hpp> need to be included to use these functionalities.
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_type_precision #ifndef glm_gtc_type_precision

@ -28,6 +28,32 @@
/// @see core (dependence) /// @see core (dependence)
/// @see gtc_half_float (dependence) /// @see gtc_half_float (dependence)
/// @see gtc_quaternion (dependence) /// @see gtc_quaternion (dependence)
///
/// @defgroup gtc_type_ptr GLM_GTC_type_ptr: Memory layout access
/// @ingroup gtc
///
/// @brief Used to get a pointer to the memory layout of a basic type.
///
/// This extension defines an overloaded function, glm::value_ptr, which
/// takes any of the \ref core_template "core template types". It returns
/// a pointer to the memory layout of the object. Matrix types store their values
/// in column-major order.
///
/// This is useful for uploading data to matrices or copying data to buffer objects.
///
/// Example:
/// @code
/// #include <glm/glm.hpp>
/// #include <glm/gtc/type_ptr.hpp>
///
/// glm::vec3 aVector(3);
/// glm::mat4 someMatrix(1.0);
///
/// glUniform3fv(uniformLoc, 1, glm::value_ptr(aVector));
/// glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, glm::value_ptr(someMatrix));
/// @endcode
///
/// <glm/gtc/type_ptr.hpp> need to be included to use these functionalities.
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_type_ptr #ifndef glm_gtc_type_ptr
@ -44,7 +70,8 @@
#endif #endif
namespace glm{ namespace glm{
namespace gtc{ namespace gtc
{
/// @addtogroup gtc_type_ptr /// @addtogroup gtc_type_ptr
/// @{ /// @{

@ -24,7 +24,13 @@
namespace glm{ namespace glm{
namespace gtx namespace gtx
{ {
/// \addtogroup gtx_associated_min_max /// @defgroup gtx_associated_min_max GLM_GTX_associated_min_max: Associated Min/Max
/// @ingroup gtx
///
/// @brief Min and max functions that return associated values not the compared onces.
/// <glm/gtx/associated_min_max.hpp> need to be included to use these functionalities.
///
/// @addtogroup gtx_associated_min_max
/// @{ /// @{
//! \brief Min comparison between 2 variables //! \brief Min comparison between 2 variables

@ -1,19 +1,44 @@
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /// OpenGL Mathematics (glm.g-truc.net)
/////////////////////////////////////////////////////////////////////////////////////////////////// ///
// Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": /// Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
// https://github.com/ashima/webgl-noise /// Permission is hereby granted, free of charge, to any person obtaining a copy
// Following Stefan Gustavson's paper "Simplex noise demystified": /// of this software and associated documentation files (the "Software"), to deal
// http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf /// in the Software without restriction, including without limitation the rights
/////////////////////////////////////////////////////////////////////////////////////////////////// /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// Created : 2011-04-21 /// copies of the Software, and to permit persons to whom the Software is
// Updated : 2011-04-21 /// furnished to do so, subject to the following conditions:
// Licence : This source is under MIT License ///
// File : glm/gtx/noise.hpp /// The above copyright notice and this permission notice shall be included in
/////////////////////////////////////////////////////////////////////////////////////////////////// /// all copies or substantial portions of the Software.
// Dependency: ///
// - GLM core /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/////////////////////////////////////////////////////////////////////////////////////////////////// /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
/// THE SOFTWARE.
///
/// @ref gtx_noise
/// @file glm/gtx/noise.hpp
/// @date 2011-04-21 / 2011-06-07
/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_noise GLM_GTX_noise: Procedural noise functions
/// @ingroup gtx
///
/// Defines 2D, 3D and 4D procedural noise functions
/// Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise":
/// https://github.com/ashima/webgl-noise
/// Following Stefan Gustavson's paper "Simplex noise demystified":
/// http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf
/// Defines the half-precision floating-point type, along with various typedefs for vectors and matrices.
/// <glm/gtx/noise.hpp> need to be included to use these functionalities.
///
///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtx_noise #ifndef glm_gtx_noise
#define glm_gtx_noise #define glm_gtx_noise

Loading…
Cancel
Save