Updated doxygen comment convensions

This commit is contained in:
Christophe Riccio 2011-05-16 18:44:16 +01:00
parent b02f491cec
commit 96a0a678ad
3 changed files with 239 additions and 207 deletions

View File

@ -1,11 +1,29 @@
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /// OpenGL Mathematics (glm.g-truc.net)
/////////////////////////////////////////////////////////////////////////////////////////////////// ///
// Created : 2011-02-21 /// Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
// Updated : 2011-02-21 /// 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/core/_fixes.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/core/_fixes.hpp
/// @date 2011-02-21 / 2011-02-16
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
//! Workaround for compatibility with other libraries //! Workaround for compatibility with other libraries
#ifdef max #ifdef max

View File

@ -1,11 +1,31 @@
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /// OpenGL Mathematics (glm.g-truc.net)
/////////////////////////////////////////////////////////////////////////////////////////////////// ///
// Created : 2005-01-14 /// Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
// Updated : 2011-01-19 /// 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/glm.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 2005-01-14 / 2011-05-16
/// @author Christophe Riccio
///
/// @ref core
///////////////////////////////////////////////////////////////////////////////////
#include "core/_fixes.hpp" #include "core/_fixes.hpp"
@ -24,39 +44,34 @@
#endif//GLM_MESSAGE #endif//GLM_MESSAGE
//! GLM namespace, it contains all GLSL based features. //! GLM namespace, it contains all GLSL based features.
namespace glm namespace glm{
namespace test
{ {
namespace test bool main_bug();
{ bool main_core();
bool main_bug(); }//namespace test
bool main_core();
}//namespace test
//! GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace. /// GLM core. Namespace that includes all the feature define by GLSL 4.10.6 specification. This namespace is included in glm namespace.
namespace core namespace core
{ {
//! Scalar, vectors and matrices //! Scalar, vectors and matrices
//! from section 4.1.2 Booleans, 4.1.3 Integers section, 4.1.4 Floats section, //! 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. //! 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. //! This namespace resolves precision qualifier define in section 4.5 of GLSL 1.30.8 specification.
namespace type{} namespace type{}
//! Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification. //! 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. //! Angle and trigonometry, exponential, common, geometric, matrix and vector relational functions.
namespace function{} namespace function{}
} }
//namespace core //namespace core
//! G-Truc Creation stable extensions. /// G-Truc Creation stable extensions.
namespace gtc{} namespace gtc{}
//! G-Truc Creation experimental extensions.
//! The interface could change between releases.
namespace gtx{}
//! VIRTREV extensions.
namespace img{}
/// G-Truc Creation experimental extensions.
/// The interface could change between releases.
namespace gtx{}
} //namespace glm } //namespace glm
#include "./core/_detail.hpp" #include "./core/_detail.hpp"

View File

@ -1,34 +1,34 @@
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
//! OpenGL Mathematics (glm.g-truc.net) /// OpenGL Mathematics (glm.g-truc.net)
/////////////////////////////////////////////////////////////////////////////////// ///
//! Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /// Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
//! Permission is hereby granted, free of charge, to any person obtaining a copy /// Permission is hereby granted, free of charge, to any person obtaining a copy
//! of this software and associated documentation files (the "Software"), to deal /// of this software and associated documentation files (the "Software"), to deal
//! in the Software without restriction, including without limitation the rights /// in the Software without restriction, including without limitation the rights
//! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//! copies of the Software, and to permit persons to whom the Software is /// copies of the Software, and to permit persons to whom the Software is
//! furnished to do so, subject to the following conditions: /// furnished to do so, subject to the following conditions:
//! ///
//! The above copyright notice and this permission notice shall be included in /// The above copyright notice and this permission notice shall be included in
//! all copies or substantial portions of the Software. /// all copies or substantial portions of the Software.
//! ///
//! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, /// 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 /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
//! THE SOFTWARE. /// THE SOFTWARE.
/////////////////////////////////////////////////////////////////////////////////// ///
//! \ref gtc_matrix_transform /// @file glm/gtc/matrix_transform.hpp
//! \file glm/gtc/matrix_transform.hpp /// @date 2009-04-29 / 2011-05-16
//! \date 2009-04-29 / 2011-05-16 /// @author Christophe Riccio
//! \author Christophe Riccio ///
/////////////////////////////////////////////////////////////////////////////////// /// @ref gtc_matrix_transform
//! \sa core (dependence) /// @see core (dependence)
//! \sa gtc_matrix_transform /// @see gtc_matrix_transform
//! \sa gtx_transform /// @see gtx_transform
//! \sa gtx_transform2 /// @see gtx_transform2
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_gtc_matrix_transform #ifndef glm_gtc_matrix_transform
@ -41,155 +41,154 @@
# pragma message("GLM: GLM_GTC_matrix_transform extension included") # pragma message("GLM: GLM_GTC_matrix_transform extension included")
#endif #endif
namespace glm namespace glm{
namespace test{
bool main_gtc_matrix_transform();
}//namespace test
namespace gtc{
/// GLM_GTC_matrix_transform extension: Add transformation matrices
namespace matrix_transform
{ {
namespace test{ /// @addtogroup gtc_matrix_transform
bool main_gtc_matrix_transform(); /// @{
}//namespace test
namespace gtc{ /// Builds a translation 4 * 4 matrix created from a vector of 3 components.
//! GLM_GTC_matrix_transform extension: Add transformation matrices /// @see - gtc_matrix_transform
namespace matrix_transform /// @see - gtx_transform:
{ /// - @link glm::gtx::transform::translate(T x, T y, T z) translate(T x, T y, T z) @endlink
/// \addtogroup gtc_matrix_transform /// - @link glm::gtx::transform::translate(detail::tmat4x4<T> const & m, T x, T y, T z) translate(mat4x4<T> const & m, T x, T y, T z) @endlink
///@{ template <typename T>
detail::tmat4x4<T> translate(
detail::tmat4x4<T> const & m,
detail::tvec3<T> const & v);
//! Builds a translation 4 * 4 matrix created from a vector of 3 components. /// Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees.
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform
//! \sa - gtx_transform: /// @see - gtx_transform:
//! - glm::gtx::transform::translate(T x, T y, T z) /// - @link glm::gtx::transform::rotate(T angle, T x, T y, T z) rotate(T const & angle, T const & x, T const & y, T const & z) @endlink
//! - glm::gtx::transform::translate(detail::tmat4x4<T> const & m, T x, T y, T z) /// - @link glm::gtx::transform::rotate(detail::tmat4x4<T> const & m, T angle, T x, T y, T z) rotate(mat4x4<T> const & m, T const & angle, T const & x, T const & y, T const & z) @endlink
template <typename T> template <typename T>
detail::tmat4x4<T> translate( detail::tmat4x4<T> rotate(
detail::tmat4x4<T> const & m, detail::tmat4x4<T> const & m,
detail::tvec3<T> const & v); T const & angle,
detail::tvec3<T> const & v);
//! Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees. /// Builds a scale 4 * 4 matrix created from 3 scalars.
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform
//! \sa - gtx_transform: /// @see - gtx_transform:
//! - \link glm::gtx::transform::rotate(T angle, T x, T y, T z) rotate(T const & angle, T const & x, T const & y, T const & z) \endlink /// - @link glm::gtx::transform::scale(T x, T y, T z) rotate(T const & angle, T const & x, T const & y, T const & z) @endlink
//! - \link glm::gtx::transform::rotate(detail::tmat4x4<T> const & m, T angle, T x, T y, T z) rotate(mat4x4<T> const & m, T const & angle, T const & x, T const & y, T const & z) \endlink /// - @link glm::gtx::transform::scale(detail::tmat4x4<T> const & m, T x, T y, T z) rotate(mat4x4<T> const & m, T const & angle, T const & x, T const & y, T const & z) @endlink
template <typename T> template <typename T>
detail::tmat4x4<T> rotate( detail::tmat4x4<T> scale(
detail::tmat4x4<T> const & m, detail::tmat4x4<T> const & m,
T const & angle, detail::tvec3<T> const & v);
detail::tvec3<T> const & v);
//! Builds a scale 4 * 4 matrix created from 3 scalars. /// Creates a matrix for an orthographic parallel viewing volume.
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform:
//! \sa - gtx_transform: /// - @link glm::gtc::matrix_transform::ortho(T const & left, T const & right, T const & bottom, T const & top) ortho(T const & left, T const & right, T const & bottom, T const & top) @endlink
//! - \link glm::gtx::transform::scale(T x, T y, T z) rotate(T const & angle, T const & x, T const & y, T const & z) \endlink template <typename T>
//! - \link glm::gtx::transform::scale(detail::tmat4x4<T> const & m, T x, T y, T z) rotate(mat4x4<T> const & m, T const & angle, T const & x, T const & y, T const & z) \endlink detail::tmat4x4<T> ortho(
template <typename T> T const & left,
detail::tmat4x4<T> scale( T const & right,
detail::tmat4x4<T> const & m, T const & bottom,
detail::tvec3<T> const & v); T const & top,
T const & zNear,
T const & zFar);
//! Creates a matrix for an orthographic parallel viewing volume. /// Creates a matrix for projecting two-dimensional coordinates onto the screen.
//! \sa - gtc_matrix_transform: /// @see - gtc_matrix_transform:
//! - \link glm::gtc::matrix_transform::ortho(T const & left, T const & right, T const & bottom, T const & top) ortho(T const & left, T const & right, T const & bottom, T const & top) \endlink /// - @link glm::gtc::matrix_transform::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) @endlink
template <typename T> template <typename T>
detail::tmat4x4<T> ortho( detail::tmat4x4<T> ortho(
T const & left, T const & left,
T const & right, T const & right,
T const & bottom, T const & bottom,
T const & top, T const & top);
T const & zNear,
T const & zFar);
//! Creates a matrix for projecting two-dimensional coordinates onto the screen. /// Creates a frustum matrix.
//! \sa - gtc_matrix_transform: /// @see - gtc_matrix_transform
//! - \link glm::gtc::matrix_transform::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) \endlink template <typename T>
template <typename T> detail::tmat4x4<T> frustum(
detail::tmat4x4<T> ortho( T const & left,
T const & left, T const & right,
T const & right, T const & bottom,
T const & bottom, T const & top,
T const & top); T const & nearVal,
T const & farVal);
//! Creates a frustum matrix. /// Creates a matrix for a symetric perspective-view frustum.
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform
template <typename T> template <typename T>
detail::tmat4x4<T> frustum( detail::tmat4x4<T> perspective(
T const & left, T const & fovy,
T const & right, T const & aspect,
T const & bottom, T const & zNear,
T const & top, T const & zFar);
T const & nearVal,
T const & farVal);
//! Creates a matrix for a symetric perspective-view frustum. /// Builds a perspective projection matrix based on a field of view
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform
template <typename T> template <typename valType>
detail::tmat4x4<T> perspective( detail::tmat4x4<valType> perspectiveFov(
T const & fovy, valType const & fov,
T const & aspect, valType const & width,
T const & zNear, valType const & height,
T const & zFar); valType const & zNear,
valType const & zFar);
//! Builds a perspective projection matrix based on a field of view /// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite .
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform
template <typename valType> template <typename T>
detail::tmat4x4<valType> perspectiveFov( detail::tmat4x4<T> infinitePerspective(
valType const & fov, T fovy, T aspect, T zNear);
valType const & width,
valType const & height,
valType const & zNear,
valType const & zFar);
//! Creates a matrix for a symmetric perspective-view frustum with far plane at infinite . /// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform
template <typename T> template <typename T>
detail::tmat4x4<T> infinitePerspective( detail::tmat4x4<T> tweakedInfinitePerspective(
T fovy, T aspect, T zNear); T fovy, T aspect, T zNear);
//! Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. /// Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform
template <typename T> template <typename T, typename U>
detail::tmat4x4<T> tweakedInfinitePerspective( detail::tvec3<T> project(
T fovy, T aspect, T zNear); detail::tvec3<T> const & obj,
detail::tmat4x4<T> const & model,
detail::tmat4x4<T> const & proj,
detail::tvec4<U> const & viewport);
//! Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. /// Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform
template <typename T, typename U> template <typename T, typename U>
detail::tvec3<T> project( detail::tvec3<T> unProject(
detail::tvec3<T> const & obj, detail::tvec3<T> const & win,
detail::tmat4x4<T> const & model, detail::tmat4x4<T> const & model,
detail::tmat4x4<T> const & proj, detail::tmat4x4<T> const & proj,
detail::tvec4<U> const & viewport); detail::tvec4<U> const & viewport);
//! Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. /// Define a picking region
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform
template <typename T, typename U> template <typename T, typename U>
detail::tvec3<T> unProject( detail::tmat4x4<T> pickMatrix(
detail::tvec3<T> const & win, detail::tvec2<T> const & center,
detail::tmat4x4<T> const & model, detail::tvec2<T> const & delta,
detail::tmat4x4<T> const & proj, detail::tvec4<U> const & viewport);
detail::tvec4<U> const & viewport);
//! Define a picking region /// Build a look at view matrix.
//! \sa - gtc_matrix_transform /// @see - gtc_matrix_transform:
template <typename T, typename U> /// - @link frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) @endlink
detail::tmat4x4<T> pickMatrix( /// @param eye Position of the camera
detail::tvec2<T> const & center, /// @param center Position where the camera is looking at
detail::tvec2<T> const & delta, /// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
detail::tvec4<U> const & viewport); template <typename T>
detail::tmat4x4<T> lookAt(
detail::tvec3<T> const & eye,
detail::tvec3<T> const & center,
detail::tvec3<T> const & up);
//! Build a look at view matrix. /// @}
//! \sa - gtc_matrix_transform: }//namespace matrix_transform
//! - \link frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal)\endlink }//namespace gtc
//! \param eye Position of the camera
//! \param center Position where the camera is looking at
//! \param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
template <typename T>
detail::tmat4x4<T> lookAt(
detail::tvec3<T> const & eye,
detail::tvec3<T> const & center,
detail::tvec3<T> const & up);
///@}
}//namespace matrix_transform
}//namespace gtc
}//namespace glm }//namespace glm
#include "matrix_transform.inl" #include "matrix_transform.inl"