From d7510204c1e7b79d01f402f770b86e711e8ae5c8 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 18 May 2011 15:38:26 +0100 Subject: [PATCH] Updated header files formatting --- glm/gtc/half_float.hpp | 657 +++++++++++++++--------------- glm/gtc/matrix_access.hpp | 3 +- glm/gtc/matrix_integer.hpp | 306 +++++++------- glm/gtc/matrix_inverse.hpp | 3 +- glm/gtc/matrix_transform.hpp | 226 ++++++----- glm/gtc/quaternion.hpp | 318 ++++++++------- glm/gtc/swizzle.hpp | 542 +++++++++++++------------ glm/gtc/type_precision.hpp | 302 +++++++------- glm/gtc/type_ptr.hpp | 751 +++++++++++++++++------------------ 9 files changed, 1547 insertions(+), 1561 deletions(-) diff --git a/glm/gtc/half_float.hpp b/glm/gtc/half_float.hpp index 55e07da8..ab3a1daa 100644 --- a/glm/gtc/half_float.hpp +++ b/glm/gtc/half_float.hpp @@ -18,346 +18,345 @@ #endif namespace glm{ - namespace detail - { +namespace detail +{ #ifndef _MSC_EXTENSIONS - template <> - struct tvec2 - { - enum ctor{null}; - typedef thalf value_type; - typedef std::size_t size_type; - static size_type value_size(); - - typedef tvec2 type; - typedef tvec2 bool_type; - - ////////////////////////////////////// - // Data - - thalf x, y; - - ////////////////////////////////////// - // Accesses - - thalf & operator[](size_type i); - thalf const & operator[](size_type i) const; - - ////////////////////////////////////// - // Implicit basic constructors - - tvec2(); - tvec2(tvec2 const & v); - - ////////////////////////////////////// - // Explicit basic constructors - - explicit tvec2(ctor); - explicit tvec2( - thalf const & s); - explicit tvec2( - thalf const & s1, - thalf const & s2); - - ////////////////////////////////////// - // Swizzle constructors - - tvec2(tref2 const & r); - - ////////////////////////////////////// - // Convertion scalar constructors - - //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec2(U const & x); - //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec2(U const & x, V const & y); - - ////////////////////////////////////// - // Convertion vector constructors - - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec2(tvec2 const & v); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec2(tvec3 const & v); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec2(tvec4 const & v); - - ////////////////////////////////////// - // Unary arithmetic operators - - tvec2& operator= (tvec2 const & v); - - tvec2& operator+=(thalf const & s); - tvec2& operator+=(tvec2 const & v); - tvec2& operator-=(thalf const & s); - tvec2& operator-=(tvec2 const & v); - tvec2& operator*=(thalf const & s); - tvec2& operator*=(tvec2 const & v); - tvec2& operator/=(thalf const & s); - tvec2& operator/=(tvec2 const & v); - tvec2& operator++(); - tvec2& operator--(); - - ////////////////////////////////////// - // Swizzle operators - - thalf swizzle(comp X) const; - tvec2 swizzle(comp X, comp Y) const; - tvec3 swizzle(comp X, comp Y, comp Z) const; - tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; - tref2 swizzle(comp X, comp Y); - }; - - template <> - struct tvec3 - { - enum ctor{null}; - typedef thalf value_type; - typedef std::size_t size_type; - static size_type value_size(); - - typedef tvec3 type; - typedef tvec3 bool_type; - - ////////////////////////////////////// - // Data - - thalf x, y, z; - - ////////////////////////////////////// - // Accesses - - thalf & operator[](size_type i); - thalf const & operator[](size_type i) const; - - ////////////////////////////////////// - // Implicit basic constructors - - tvec3(); - tvec3(tvec3 const & v); - - ////////////////////////////////////// - // Explicit basic constructors - - explicit tvec3(ctor); - explicit tvec3( - thalf const & s); - explicit tvec3( - thalf const & s1, - thalf const & s2, - thalf const & s3); - - ////////////////////////////////////// - // Swizzle constructors - - tvec3(tref3 const & r); - - ////////////////////////////////////// - // Convertion scalar constructors - - //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec3(U const & x); - //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec3(U const & x, V const & y, W const & z); - - ////////////////////////////////////// - // Convertion vector constructors - - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec3(tvec2 const & v, B const & s); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec3(A const & s, tvec2 const & v); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec3(tvec3 const & v); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec3(tvec4 const & v); - - ////////////////////////////////////// - // Unary arithmetic operators - - tvec3& operator= (tvec3 const & v); - - tvec3& operator+=(thalf const & s); - tvec3& operator+=(tvec3 const & v); - tvec3& operator-=(thalf const & s); - tvec3& operator-=(tvec3 const & v); - tvec3& operator*=(thalf const & s); - tvec3& operator*=(tvec3 const & v); - tvec3& operator/=(thalf const & s); - tvec3& operator/=(tvec3 const & v); - tvec3& operator++(); - tvec3& operator--(); - - ////////////////////////////////////// - // Swizzle operators - - thalf swizzle(comp X) const; - tvec2 swizzle(comp X, comp Y) const; - tvec3 swizzle(comp X, comp Y, comp Z) const; - tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; - tref3 swizzle(comp X, comp Y, comp Z); - }; - - template <> - struct tvec4 - { - enum ctor{null}; - typedef thalf value_type; - typedef std::size_t size_type; - static size_type value_size(); - - typedef tvec4 type; - typedef tvec4 bool_type; - - ////////////////////////////////////// - // Data - - thalf x, y, z, w; - - ////////////////////////////////////// - // Accesses - - thalf & operator[](size_type i); - thalf const & operator[](size_type i) const; - - ////////////////////////////////////// - // Implicit basic constructors - - tvec4(); - tvec4(tvec4 const & v); - - ////////////////////////////////////// - // Explicit basic constructors - - explicit tvec4(ctor); - explicit tvec4( - thalf const & s); - explicit tvec4( - thalf const & s0, - thalf const & s1, - thalf const & s2, - thalf const & s3); - - ////////////////////////////////////// - // Swizzle constructors - - tvec4(tref4 const & r); - - ////////////////////////////////////// - // Convertion scalar constructors - - //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec4(U const & x); - //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec4(A const & x, B const & y, C const & z, D const & w); - - ////////////////////////////////////// - // Convertion vector constructors - - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec4(tvec2 const & v, B const & s1, C const & s2); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec4(A const & s1, tvec2 const & v, C const & s2); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec4(A const & s1, B const & s2, tvec2 const & v); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec4(tvec3 const & v, B const & s); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec4(A const & s, tvec3 const & v); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec4(tvec2 const & v1, tvec2 const & v2); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - explicit tvec4(tvec4 const & v); - - ////////////////////////////////////// - // Unary arithmetic operators - - tvec4& operator= (tvec4 const & v); - - tvec4& operator+=(thalf const & s); - tvec4& operator+=(tvec4 const & v); - tvec4& operator-=(thalf const & s); - tvec4& operator-=(tvec4 const & v); - tvec4& operator*=(thalf const & s); - tvec4& operator*=(tvec4 const & v); - tvec4& operator/=(thalf const & s); - tvec4& operator/=(tvec4 const & v); - tvec4& operator++(); - tvec4& operator--(); - - ////////////////////////////////////// - // Swizzle operators - - thalf swizzle(comp X) const; - tvec2 swizzle(comp X, comp Y) const; - tvec3 swizzle(comp X, comp Y, comp Z) const; - tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; - tref4 swizzle(comp X, comp Y, comp Z, comp W); - }; -#endif//_MSC_EXTENSIONS - } - //namespace detail - - namespace gtc{ - //! GLM_GTC_half_float extension: Add support for half precision floating-point types - namespace half_float + template <> + struct tvec2 { - /// \addtogroup gtc_half_float - ///@{ + enum ctor{null}; + typedef thalf value_type; + typedef std::size_t size_type; + static size_type value_size(); - //! Type for half-precision floating-point numbers. - //! From GLM_GTC_half_float extension. - typedef detail::thalf half; + typedef tvec2 type; + typedef tvec2 bool_type; - //! Vector of 2 half-precision floating-point numbers. - //! From GLM_GTC_half_float extension. - typedef detail::tvec2 hvec2; + ////////////////////////////////////// + // Data - //! Vector of 3 half-precision floating-point numbers. - //! From GLM_GTC_half_float extension. - typedef detail::tvec3 hvec3; + thalf x, y; - //! Vector of 4 half-precision floating-point numbers. - //! From GLM_GTC_half_float extension. - typedef detail::tvec4 hvec4; + ////////////////////////////////////// + // Accesses - //! 2 * 2 matrix of half-precision floating-point numbers. - //! From GLM_GTC_half_float extension. - typedef detail::tmat2x2 hmat2; + thalf & operator[](size_type i); + thalf const & operator[](size_type i) const; - //! 3 * 3 matrix of half-precision floating-point numbers. - //! From GLM_GTC_half_float extension. - typedef detail::tmat3x3 hmat3; + ////////////////////////////////////// + // Implicit basic constructors - //! 4 * 4 matrix of half-precision floating-point numbers. - //! From GLM_GTC_half_float extension. - typedef detail::tmat4x4 hmat4; + tvec2(); + tvec2(tvec2 const & v); - ///@} + ////////////////////////////////////// + // Explicit basic constructors - }//namespace half_float - }//namespace gtc -}//namespace glm + explicit tvec2(ctor); + explicit tvec2( + thalf const & s); + explicit tvec2( + thalf const & s1, + thalf const & s2); + + ////////////////////////////////////// + // Swizzle constructors + + tvec2(tref2 const & r); + + ////////////////////////////////////// + // Convertion scalar constructors + + //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec2(U const & x); + //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec2(U const & x, V const & y); + + ////////////////////////////////////// + // Convertion vector constructors + + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec2(tvec2 const & v); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec2(tvec3 const & v); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec2(tvec4 const & v); + + ////////////////////////////////////// + // Unary arithmetic operators + + tvec2& operator= (tvec2 const & v); + + tvec2& operator+=(thalf const & s); + tvec2& operator+=(tvec2 const & v); + tvec2& operator-=(thalf const & s); + tvec2& operator-=(tvec2 const & v); + tvec2& operator*=(thalf const & s); + tvec2& operator*=(tvec2 const & v); + tvec2& operator/=(thalf const & s); + tvec2& operator/=(tvec2 const & v); + tvec2& operator++(); + tvec2& operator--(); + + ////////////////////////////////////// + // Swizzle operators + + thalf swizzle(comp X) const; + tvec2 swizzle(comp X, comp Y) const; + tvec3 swizzle(comp X, comp Y, comp Z) const; + tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; + tref2 swizzle(comp X, comp Y); + }; + + template <> + struct tvec3 + { + enum ctor{null}; + typedef thalf value_type; + typedef std::size_t size_type; + static size_type value_size(); + + typedef tvec3 type; + typedef tvec3 bool_type; + + ////////////////////////////////////// + // Data + + thalf x, y, z; + + ////////////////////////////////////// + // Accesses + + thalf & operator[](size_type i); + thalf const & operator[](size_type i) const; + + ////////////////////////////////////// + // Implicit basic constructors + + tvec3(); + tvec3(tvec3 const & v); + + ////////////////////////////////////// + // Explicit basic constructors + + explicit tvec3(ctor); + explicit tvec3( + thalf const & s); + explicit tvec3( + thalf const & s1, + thalf const & s2, + thalf const & s3); + + ////////////////////////////////////// + // Swizzle constructors + + tvec3(tref3 const & r); + + ////////////////////////////////////// + // Convertion scalar constructors + + //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec3(U const & x); + //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec3(U const & x, V const & y, W const & z); + + ////////////////////////////////////// + // Convertion vector constructors + + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec3(tvec2 const & v, B const & s); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec3(A const & s, tvec2 const & v); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec3(tvec3 const & v); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec3(tvec4 const & v); + + ////////////////////////////////////// + // Unary arithmetic operators + + tvec3& operator= (tvec3 const & v); + + tvec3& operator+=(thalf const & s); + tvec3& operator+=(tvec3 const & v); + tvec3& operator-=(thalf const & s); + tvec3& operator-=(tvec3 const & v); + tvec3& operator*=(thalf const & s); + tvec3& operator*=(tvec3 const & v); + tvec3& operator/=(thalf const & s); + tvec3& operator/=(tvec3 const & v); + tvec3& operator++(); + tvec3& operator--(); + + ////////////////////////////////////// + // Swizzle operators + + thalf swizzle(comp X) const; + tvec2 swizzle(comp X, comp Y) const; + tvec3 swizzle(comp X, comp Y, comp Z) const; + tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; + tref3 swizzle(comp X, comp Y, comp Z); + }; + + template <> + struct tvec4 + { + enum ctor{null}; + typedef thalf value_type; + typedef std::size_t size_type; + static size_type value_size(); + + typedef tvec4 type; + typedef tvec4 bool_type; + + ////////////////////////////////////// + // Data + + thalf x, y, z, w; + + ////////////////////////////////////// + // Accesses + + thalf & operator[](size_type i); + thalf const & operator[](size_type i) const; + + ////////////////////////////////////// + // Implicit basic constructors + + tvec4(); + tvec4(tvec4 const & v); + + ////////////////////////////////////// + // Explicit basic constructors + + explicit tvec4(ctor); + explicit tvec4( + thalf const & s); + explicit tvec4( + thalf const & s0, + thalf const & s1, + thalf const & s2, + thalf const & s3); + + ////////////////////////////////////// + // Swizzle constructors + + tvec4(tref4 const & r); + + ////////////////////////////////////// + // Convertion scalar constructors + + //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec4(U const & x); + //! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec4(A const & x, B const & y, C const & z, D const & w); + + ////////////////////////////////////// + // Convertion vector constructors + + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec4(tvec2 const & v, B const & s1, C const & s2); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec4(A const & s1, tvec2 const & v, C const & s2); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec4(A const & s1, B const & s2, tvec2 const & v); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec4(tvec3 const & v, B const & s); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec4(A const & s, tvec3 const & v); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec4(tvec2 const & v1, tvec2 const & v2); + //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) + template + explicit tvec4(tvec4 const & v); + + ////////////////////////////////////// + // Unary arithmetic operators + + tvec4& operator= (tvec4 const & v); + + tvec4& operator+=(thalf const & s); + tvec4& operator+=(tvec4 const & v); + tvec4& operator-=(thalf const & s); + tvec4& operator-=(tvec4 const & v); + tvec4& operator*=(thalf const & s); + tvec4& operator*=(tvec4 const & v); + tvec4& operator/=(thalf const & s); + tvec4& operator/=(tvec4 const & v); + tvec4& operator++(); + tvec4& operator--(); + + ////////////////////////////////////// + // Swizzle operators + + thalf swizzle(comp X) const; + tvec2 swizzle(comp X, comp Y) const; + tvec3 swizzle(comp X, comp Y, comp Z) const; + tvec4 swizzle(comp X, comp Y, comp Z, comp W) const; + tref4 swizzle(comp X, comp Y, comp Z, comp W); + }; +#endif//_MSC_EXTENSIONS +} +//namespace detail + +namespace gtc{ +namespace half_float ///< GLM_GTC_half_float extension: Add support for half precision floating-point types +{ + /// \addtogroup gtc_half_float + ///@{ + + /// Type for half-precision floating-point numbers. + /// From GLM_GTC_half_float extension. + typedef detail::thalf half; + + /// Vector of 2 half-precision floating-point numbers. + /// From GLM_GTC_half_float extension. + typedef detail::tvec2 hvec2; + + /// Vector of 3 half-precision floating-point numbers. + /// From GLM_GTC_half_float extension. + typedef detail::tvec3 hvec3; + + /// Vector of 4 half-precision floating-point numbers. + /// From GLM_GTC_half_float extension. + typedef detail::tvec4 hvec4; + + /// 2 * 2 matrix of half-precision floating-point numbers. + /// From GLM_GTC_half_float extension. + typedef detail::tmat2x2 hmat2; + + /// 3 * 3 matrix of half-precision floating-point numbers. + /// From GLM_GTC_half_float extension. + typedef detail::tmat3x3 hmat3; + + /// 4 * 4 matrix of half-precision floating-point numbers. + /// From GLM_GTC_half_float extension. + typedef detail::tmat4x4 hmat4; + + /// @} + +}// namespace half_float +}// namespace gtc +}// namespace glm #include "half_float.inl" diff --git a/glm/gtc/matrix_access.hpp b/glm/gtc/matrix_access.hpp index d5c54655..670fa909 100644 --- a/glm/gtc/matrix_access.hpp +++ b/glm/gtc/matrix_access.hpp @@ -22,8 +22,7 @@ namespace glm{ namespace gtc{ -//! GLM_GTC_matrix_access extension: Set a column or a row of a matrix -namespace matrix_access +namespace matrix_access ///< GLM_GTC_matrix_access extension: Set a column or a row of a matrix { /// \addtogroup gtc_matrix_access ///@{ diff --git a/glm/gtc/matrix_integer.hpp b/glm/gtc/matrix_integer.hpp index 8536ae31..63fb6d2a 100644 --- a/glm/gtc/matrix_integer.hpp +++ b/glm/gtc/matrix_integer.hpp @@ -20,185 +20,183 @@ # pragma message("GLM: GLM_GTC_matrix_integer extension included") #endif -namespace glm +namespace glm{ +namespace gtc{ +namespace matrix_integer ///< GLM_GTC_matrix_integer extension: Add integer matrices { - namespace gtc{ - //! GLM_GTC_matrix_integer extension: Add integer matrices - namespace matrix_integer - { - /// \addtogroup gtc_matrix_integer - ///@{ + /// \addtogroup gtc_matrix_integer + ///@{ - typedef detail::tmat2x2 highp_imat2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 highp_imat3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 highp_imat4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 highp_imat2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 highp_imat3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 highp_imat4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 highp_imat2x2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x3 highp_imat2x3; //!< \brief High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x4 highp_imat2x4; //!< \brief High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x2 highp_imat3x2; //!< \brief High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 highp_imat3x3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x4 highp_imat3x4; //!< \brief High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x2 highp_imat4x2; //!< \brief High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x3 highp_imat4x3; //!< \brief High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 highp_imat4x4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 highp_imat2x2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x3 highp_imat2x3; //!< \brief High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x4 highp_imat2x4; //!< \brief High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x2 highp_imat3x2; //!< \brief High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 highp_imat3x3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x4 highp_imat3x4; //!< \brief High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x2 highp_imat4x2; //!< \brief High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x3 highp_imat4x3; //!< \brief High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 highp_imat4x4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 mediump_imat2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 mediump_imat3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 mediump_imat4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 mediump_imat2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 mediump_imat3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 mediump_imat4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 mediump_imat2x2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x3 mediump_imat2x3; //!< \brief Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x4 mediump_imat2x4; //!< \brief Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x2 mediump_imat3x2; //!< \brief Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 mediump_imat3x3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x4 mediump_imat3x4; //!< \brief Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x2 mediump_imat4x2; //!< \brief Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x3 mediump_imat4x3; //!< \brief Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 mediump_imat4x4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 mediump_imat2x2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x3 mediump_imat2x3; //!< \brief Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x4 mediump_imat2x4; //!< \brief Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x2 mediump_imat3x2; //!< \brief Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 mediump_imat3x3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x4 mediump_imat3x4; //!< \brief Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x2 mediump_imat4x2; //!< \brief Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x3 mediump_imat4x3; //!< \brief Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 mediump_imat4x4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 lowp_imat2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 lowp_imat3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 lowp_imat4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 lowp_imat2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 lowp_imat3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 lowp_imat4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 lowp_imat2x2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x3 lowp_imat2x3; //!< \brief Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x4 lowp_imat2x4; //!< \brief Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x2 lowp_imat3x2; //!< \brief Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 lowp_imat3x3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x4 lowp_imat3x4; //!< \brief Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x2 lowp_imat4x2; //!< \brief Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x3 lowp_imat4x3; //!< \brief Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 lowp_imat4x4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 lowp_imat2x2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x3 lowp_imat2x3; //!< \brief Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x4 lowp_imat2x4; //!< \brief Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x2 lowp_imat3x2; //!< \brief Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 lowp_imat3x3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x4 lowp_imat3x4; //!< \brief Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x2 lowp_imat4x2; //!< \brief Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x3 lowp_imat4x3; //!< \brief Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 lowp_imat4x4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 highp_umat2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 highp_umat3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 highp_umat4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 highp_umat2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 highp_umat3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 highp_umat4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 highp_umat2x2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x3 highp_umat2x3; //!< \brief High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x4 highp_umat2x4; //!< \brief High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x2 highp_umat3x2; //!< \brief High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 highp_umat3x3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x4 highp_umat3x4; //!< \brief High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x2 highp_umat4x2; //!< \brief High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x3 highp_umat4x3; //!< \brief High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 highp_umat4x4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 highp_umat2x2; //!< \brief High-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x3 highp_umat2x3; //!< \brief High-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x4 highp_umat2x4; //!< \brief High-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x2 highp_umat3x2; //!< \brief High-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 highp_umat3x3; //!< \brief High-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x4 highp_umat3x4; //!< \brief High-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x2 highp_umat4x2; //!< \brief High-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x3 highp_umat4x3; //!< \brief High-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 highp_umat4x4; //!< \brief High-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 mediump_umat2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 mediump_umat3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 mediump_umat4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 mediump_umat2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 mediump_umat3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 mediump_umat4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 mediump_umat2x2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x3 mediump_umat2x3; //!< \brief Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x4 mediump_umat2x4; //!< \brief Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x2 mediump_umat3x2; //!< \brief Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 mediump_umat3x3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x4 mediump_umat3x4; //!< \brief Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x2 mediump_umat4x2; //!< \brief Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x3 mediump_umat4x3; //!< \brief Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 mediump_umat4x4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 mediump_umat2x2; //!< \brief Medium-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x3 mediump_umat2x3; //!< \brief Medium-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x4 mediump_umat2x4; //!< \brief Medium-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x2 mediump_umat3x2; //!< \brief Medium-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 mediump_umat3x3; //!< \brief Medium-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x4 mediump_umat3x4; //!< \brief Medium-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x2 mediump_umat4x2; //!< \brief Medium-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x3 mediump_umat4x3; //!< \brief Medium-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 mediump_umat4x4; //!< \brief Medium-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 lowp_umat2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 lowp_umat3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 lowp_umat4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 lowp_umat2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 lowp_umat3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 lowp_umat4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x2 lowp_umat2x2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x3 lowp_umat2x3; //!< \brief Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat2x4 lowp_umat2x4; //!< \brief Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x2 lowp_umat3x2; //!< \brief Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x3 lowp_umat3x3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat3x4 lowp_umat3x4; //!< \brief Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x2 lowp_umat4x2; //!< \brief Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x3 lowp_umat4x3; //!< \brief Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef detail::tmat4x4 lowp_umat4x4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x2 lowp_umat2x2; //!< \brief Low-precision signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x3 lowp_umat2x3; //!< \brief Low-precision signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat2x4 lowp_umat2x4; //!< \brief Low-precision signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x2 lowp_umat3x2; //!< \brief Low-precision signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x3 lowp_umat3x3; //!< \brief Low-precision signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat3x4 lowp_umat3x4; //!< \brief Low-precision signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x2 lowp_umat4x2; //!< \brief Low-precision signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x3 lowp_umat4x3; //!< \brief Low-precision signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef detail::tmat4x4 lowp_umat4x4; //!< \brief Low-precision signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) #if(defined(GLM_PRECISION_HIGHP_INT)) - typedef highp_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) #elif(defined(GLM_PRECISION_LOWP_INT)) - typedef lowp_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) #else //if(defined(GLM_PRECISION_MEDIUMP_INT)) - typedef mediump_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat2 imat2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat3 imat3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat4 imat4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat2x2 imat2x2; //!< \brief Signed integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat2x3 imat2x3; //!< \brief Signed integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat2x4 imat2x4; //!< \brief Signed integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat3x2 imat3x2; //!< \brief Signed integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat3x3 imat3x3; //!< \brief Signed integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat3x4 imat3x4; //!< \brief Signed integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat4x2 imat4x2; //!< \brief Signed integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat4x3 imat4x3; //!< \brief Signed integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_imat4x4 imat4x4; //!< \brief Signed integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) #endif//GLM_PRECISION #if(defined(GLM_PRECISION_HIGHP_UINT)) - typedef highp_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef highp_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef highp_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) #elif(defined(GLM_PRECISION_LOWP_UINT)) - typedef lowp_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef lowp_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef lowp_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) #else //if(defined(GLM_PRECISION_MEDIUMP_UINT)) - typedef mediump_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 matrix. (from GLM_GTC_matrix_integer extension) - typedef mediump_umat4x4 umat4x4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat2 umat2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat3 umat3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat4 umat4; //!< \brief Unsigned integer 4x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat2x2 umat2x2; //!< \brief Unsigned integer 2x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat2x3 umat2x3; //!< \brief Unsigned integer 2x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat2x4 umat2x4; //!< \brief Unsigned integer 2x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat3x2 umat3x2; //!< \brief Unsigned integer 3x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat3x3 umat3x3; //!< \brief Unsigned integer 3x3 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat3x4 umat3x4; //!< \brief Unsigned integer 3x4 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat4x2 umat4x2; //!< \brief Unsigned integer 4x2 matrix. (from GLM_GTC_matrix_integer extension) + typedef mediump_umat4x3 umat4x3; //!< \brief Unsigned integer 4x3 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 - ///@} + ///@} - }//namespace matrix_integer - }//namespace gtc +}//namespace matrix_integer +}//namespace gtc }//namespace glm namespace glm{using namespace gtc::matrix_integer;} diff --git a/glm/gtc/matrix_inverse.hpp b/glm/gtc/matrix_inverse.hpp index b02cf319..ac776975 100644 --- a/glm/gtc/matrix_inverse.hpp +++ b/glm/gtc/matrix_inverse.hpp @@ -22,8 +22,7 @@ namespace glm{ namespace gtc{ -//! GLM_GTC_matrix_inverse extension: Inverse matrix functions -namespace matrix_inverse +namespace matrix_inverse ///< GLM_GTC_matrix_inverse extension: Inverse matrix functions { /// \addtogroup gtc_matrix_inverse ///@{ diff --git a/glm/gtc/matrix_transform.hpp b/glm/gtc/matrix_transform.hpp index 95cdb420..ae3aae8a 100644 --- a/glm/gtc/matrix_transform.hpp +++ b/glm/gtc/matrix_transform.hpp @@ -21,136 +21,134 @@ # pragma message("GLM: GLM_GTC_matrix_transform extension included") #endif -namespace glm +namespace glm{ +namespace gtc{ +namespace matrix_transform ///< GLM_GTC_matrix_transform extension: Add transformation matrices { - namespace gtc{ - //! GLM_GTC_matrix_transform extension: Add transformation matrices - namespace matrix_transform - { - /// \addtogroup gtc_matrix_transform - ///@{ + /// \addtogroup gtc_matrix_transform + ///@{ - //! Builds a translation 4 * 4 matrix created from a vector of 3 components. - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 translate( - detail::tmat4x4 const & m, - detail::tvec3 const & v); + //! Builds a translation 4 * 4 matrix created from a vector of 3 components. + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 translate( + detail::tmat4x4 const & m, + detail::tvec3 const & v); - //! Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees. - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 rotate( - detail::tmat4x4 const & m, - T const & angle, - detail::tvec3 const & v); + //! Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees. + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 rotate( + detail::tmat4x4 const & m, + T const & angle, + detail::tvec3 const & v); - //! Builds a scale 4 * 4 matrix created from 3 scalars. - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 scale( - detail::tmat4x4 const & m, - detail::tvec3 const & v); + //! Builds a scale 4 * 4 matrix created from 3 scalars. + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 scale( + detail::tmat4x4 const & m, + detail::tvec3 const & v); - //! Creates a matrix for an orthographic parallel viewing volume. - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 ortho( - T const & left, - T const & right, - T const & bottom, - T const & top, - T const & zNear, - T const & zFar); + //! Creates a matrix for an orthographic parallel viewing volume. + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 ortho( + T const & left, + T const & right, + T const & bottom, + T const & top, + T const & zNear, + T const & zFar); - //! Creates a matrix for projecting two-dimensional coordinates onto the screen. - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 ortho( - T const & left, - T const & right, - T const & bottom, - T const & top); + //! Creates a matrix for projecting two-dimensional coordinates onto the screen. + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 ortho( + T const & left, + T const & right, + T const & bottom, + T const & top); - //! Creates a frustum matrix. - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 frustum( - T const & left, - T const & right, - T const & bottom, - T const & top, - T const & nearVal, - T const & farVal); + //! Creates a frustum matrix. + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 frustum( + T const & left, + T const & right, + T const & bottom, + T const & top, + T const & nearVal, + T const & farVal); - //! Creates a matrix for a symetric perspective-view frustum. - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 perspective( - T const & fovy, - T const & aspect, - T const & zNear, - T const & zFar); + //! Creates a matrix for a symetric perspective-view frustum. + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 perspective( + T const & fovy, + T const & aspect, + T const & zNear, + T const & zFar); - //! Builds a perspective projection matrix based on a field of view - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 perspectiveFov( - valType const & fov, - valType const & width, - valType const & height, - valType const & zNear, - valType const & zFar); + //! Builds a perspective projection matrix based on a field of view + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 perspectiveFov( + valType const & fov, + 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 . - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 infinitePerspective( - T fovy, T aspect, T zNear); + //! Creates a matrix for a symmetric perspective-view frustum with far plane at infinite . + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 infinitePerspective( + 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. - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 tweakedInfinitePerspective( - 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. + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 tweakedInfinitePerspective( + T fovy, T aspect, T zNear); - //! Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. - //! From GLM_GTC_matrix_transform extension. - template - detail::tvec3 project( - detail::tvec3 const & obj, - detail::tmat4x4 const & model, - detail::tmat4x4 const & proj, - detail::tvec4 const & viewport); + //! Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. + //! From GLM_GTC_matrix_transform extension. + template + detail::tvec3 project( + detail::tvec3 const & obj, + detail::tmat4x4 const & model, + detail::tmat4x4 const & proj, + detail::tvec4 const & viewport); - //! Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. - //! From GLM_GTC_matrix_transform extension. - template - detail::tvec3 unProject( - detail::tvec3 const & win, - detail::tmat4x4 const & model, - detail::tmat4x4 const & proj, - detail::tvec4 const & viewport); + //! Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. + //! From GLM_GTC_matrix_transform extension. + template + detail::tvec3 unProject( + detail::tvec3 const & win, + detail::tmat4x4 const & model, + detail::tmat4x4 const & proj, + detail::tvec4 const & viewport); - //! Define a picking region - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 pickMatrix( - detail::tvec2 const & center, - detail::tvec2 const & delta, - detail::tvec4 const & viewport); + //! Define a picking region + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 pickMatrix( + detail::tvec2 const & center, + detail::tvec2 const & delta, + detail::tvec4 const & viewport); - //! Build a look at view matrix. - //! From GLM_GTC_matrix_transform extension. - template - detail::tmat4x4 lookAt( - detail::tvec3 const & eye, - detail::tvec3 const & center, - detail::tvec3 const & up); + //! Build a look at view matrix. + //! From GLM_GTC_matrix_transform extension. + template + detail::tmat4x4 lookAt( + detail::tvec3 const & eye, + detail::tvec3 const & center, + detail::tvec3 const & up); - ///@} - }//namespace matrix_transform - }//namespace gtc + ///@} +}//namespace matrix_transform +}//namespace gtc }//namespace glm #include "matrix_transform.inl" diff --git a/glm/gtc/quaternion.hpp b/glm/gtc/quaternion.hpp index 16be3d1f..a859eede 100644 --- a/glm/gtc/quaternion.hpp +++ b/glm/gtc/quaternion.hpp @@ -26,202 +26,200 @@ # pragma message("GLM: GLM_GTC_quaternion extension included") #endif -namespace glm +namespace glm{ +namespace detail { - namespace detail + //! \brief Template for quaternion. + //! From GLM_GTC_quaternion extension. + /// \ingroup gtc_quaternion + template + struct tquat// : public genType { - //! \brief Template for quaternion. - //! From GLM_GTC_quaternion extension. - /// \ingroup gtc_quaternion - template - struct tquat// : public genType - { - typedef T value_type; + typedef T value_type; - public: - value_type x, y, z, w; + public: + value_type x, y, z, w; - // Constructors - tquat(); - explicit tquat( - value_type const & s, - tvec3 const & v); - explicit tquat( - value_type const & w, - value_type const & x, - value_type const & y, - value_type const & z); + // Constructors + tquat(); + explicit tquat( + value_type const & s, + tvec3 const & v); + explicit tquat( + value_type const & w, + value_type const & x, + value_type const & y, + value_type const & z); - // Convertions - //explicit tquat(valType const & pitch, valType const & yaw, valType const & roll); - //! pitch, yaw, roll - explicit tquat( - tvec3 const & eulerAngles); - explicit tquat( - tmat3x3 const & m); - explicit tquat( - tmat4x4 const & m); + // Convertions + //explicit tquat(valType const & pitch, valType const & yaw, valType const & roll); + //! pitch, yaw, roll + explicit tquat( + tvec3 const & eulerAngles); + explicit tquat( + tmat3x3 const & m); + explicit tquat( + tmat4x4 const & m); - // Accesses - value_type & operator[](int i); - value_type const & operator[](int i) const; + // Accesses + value_type & operator[](int i); + value_type const & operator[](int i) const; - // Operators - tquat & operator*=(value_type const & s); - tquat & operator/=(value_type const & s); - }; + // Operators + tquat & operator*=(value_type const & s); + tquat & operator/=(value_type const & s); + }; - template - detail::tquat operator- ( - detail::tquat const & q); + template + detail::tquat operator- ( + detail::tquat const & q); - template - detail::tquat operator* ( - detail::tquat const & q, - detail::tquat const & p); + template + detail::tquat operator* ( + detail::tquat const & q, + detail::tquat const & p); - template - detail::tvec3 operator* ( - detail::tquat const & q, - detail::tvec3 const & v); + template + detail::tvec3 operator* ( + detail::tquat const & q, + detail::tvec3 const & v); - template - detail::tvec3 operator* ( - detail::tvec3 const & v, - detail::tquat const & q); + template + detail::tvec3 operator* ( + detail::tvec3 const & v, + detail::tquat const & q); - template - detail::tvec4 operator* ( - detail::tquat const & q, - detail::tvec4 const & v); + template + detail::tvec4 operator* ( + detail::tquat const & q, + detail::tvec4 const & v); - template - detail::tvec4 operator* ( - detail::tvec4 const & v, - detail::tquat const & q); + template + detail::tvec4 operator* ( + detail::tvec4 const & v, + detail::tquat const & q); - template - detail::tquat operator* ( - detail::tquat const & q, - typename detail::tquat::value_type const & s); + template + detail::tquat operator* ( + detail::tquat const & q, + typename detail::tquat::value_type const & s); - template - detail::tquat operator* ( - typename detail::tquat::value_type const & s, - detail::tquat const & q); + template + detail::tquat operator* ( + typename detail::tquat::value_type const & s, + detail::tquat const & q); - template - detail::tquat operator/ ( - detail::tquat const & q, - typename detail::tquat::value_type const & s); + template + detail::tquat operator/ ( + detail::tquat const & q, + typename detail::tquat::value_type const & s); - } //namespace detail +} //namespace detail - namespace gtc{ - //! GLM_GTC_quaternion extension: Quaternion types and functions - namespace quaternion - { - /// \addtogroup gtc_quaternion - ///@{ +namespace gtc{ +namespace quaternion ///< GLM_GTC_quaternion extension: Quaternion types and functions +{ + /// \addtogroup gtc_quaternion + ///@{ - //! Returns the length of the quaternion x. - //! From GLM_GTC_quaternion extension. - template - typename detail::tquat::value_type length( - detail::tquat const & q); + //! Returns the length of the quaternion x. + //! From GLM_GTC_quaternion extension. + template + typename detail::tquat::value_type length( + detail::tquat const & q); - //! Returns the normalized quaternion of from x. - //! From GLM_GTC_quaternion extension. - template - detail::tquat normalize( - detail::tquat const & q); + //! Returns the normalized quaternion of from x. + //! From GLM_GTC_quaternion extension. + template + detail::tquat normalize( + detail::tquat const & q); - //! Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... - //! From GLM_GTC_quaternion extension. - template - typename detail::tquat::value_type dot( - detail::tquat const & q1, - detail::tquat const & q2); + //! Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... + //! From GLM_GTC_quaternion extension. + template + typename detail::tquat::value_type dot( + detail::tquat const & q1, + detail::tquat const & q2); - //! Returns the cross product of q1 and q2. - //! From GLM_GTC_quaternion extension. - template - GLM_DEPRECATED detail::tquat cross( - detail::tquat const & q1, - detail::tquat const & q2); + //! Returns the cross product of q1 and q2. + //! From GLM_GTC_quaternion extension. + template + GLM_DEPRECATED detail::tquat cross( + detail::tquat const & q1, + detail::tquat const & q2); - //! Returns a SLERP interpolated quaternion of x and y according a. - //! From GLM_GTC_quaternion extension. - template - detail::tquat mix( - detail::tquat const & x, - detail::tquat const & y, - typename detail::tquat::value_type const & a); + //! Returns a SLERP interpolated quaternion of x and y according a. + //! From GLM_GTC_quaternion extension. + template + detail::tquat mix( + detail::tquat const & x, + detail::tquat const & y, + typename detail::tquat::value_type const & a); - //! Returns the q conjugate. - //! From GLM_GTC_quaternion extension. - template - detail::tquat conjugate( - detail::tquat const & q); + //! Returns the q conjugate. + //! From GLM_GTC_quaternion extension. + template + detail::tquat conjugate( + detail::tquat const & q); - //! Returns the q inverse. - //! From GLM_GTC_quaternion extension. - template - detail::tquat inverse( - detail::tquat const & q); + //! Returns the q inverse. + //! From GLM_GTC_quaternion extension. + template + detail::tquat inverse( + detail::tquat const & q); - //! Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees. - //! From GLM_GTC_quaternion extension. - template - detail::tquat rotate( - detail::tquat const & q, - typename detail::tquat::value_type const & angle, - detail::tvec3 const & v); + //! Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees. + //! From GLM_GTC_quaternion extension. + template + detail::tquat rotate( + detail::tquat const & q, + typename detail::tquat::value_type const & angle, + detail::tvec3 const & v); - //! Converts a quaternion to a 3 * 3 matrix. - //! From GLM_GTC_quaternion extension. - template - detail::tmat3x3 mat3_cast( - detail::tquat const & x); + //! Converts a quaternion to a 3 * 3 matrix. + //! From GLM_GTC_quaternion extension. + template + detail::tmat3x3 mat3_cast( + detail::tquat const & x); - //! Converts a quaternion to a 4 * 4 matrix. - //! From GLM_GTC_quaternion extension. - template - detail::tmat4x4 mat4_cast( - detail::tquat const & x); + //! Converts a quaternion to a 4 * 4 matrix. + //! From GLM_GTC_quaternion extension. + template + detail::tmat4x4 mat4_cast( + detail::tquat const & x); - //! Converts a 3 * 3 matrix to a quaternion. - //! From GLM_GTC_quaternion extension. - template - detail::tquat quat_cast( - detail::tmat3x3 const & x); + //! Converts a 3 * 3 matrix to a quaternion. + //! From GLM_GTC_quaternion extension. + template + detail::tquat quat_cast( + detail::tmat3x3 const & x); - //! Converts a 4 * 4 matrix to a quaternion. - //! From GLM_GTC_quaternion extension. - template - detail::tquat quat_cast( - detail::tmat4x4 const & x); + //! Converts a 4 * 4 matrix to a quaternion. + //! From GLM_GTC_quaternion extension. + template + detail::tquat quat_cast( + detail::tmat4x4 const & x); - //! Quaternion of floating-point numbers. - //! From GLM_GTC_quaternion extension. - typedef detail::tquat quat; + //! Quaternion of floating-point numbers. + //! From GLM_GTC_quaternion extension. + typedef detail::tquat quat; - //! Quaternion of half-precision floating-point numbers. - //! From GLM_GTC_quaternion extension. - typedef detail::tquat hquat; + //! Quaternion of half-precision floating-point numbers. + //! From GLM_GTC_quaternion extension. + typedef detail::tquat hquat; - //! Quaternion of single-precision floating-point numbers. - //! From GLM_GTC_quaternion extension. - typedef detail::tquat fquat; + //! Quaternion of single-precision floating-point numbers. + //! From GLM_GTC_quaternion extension. + typedef detail::tquat fquat; - //! Quaternion of double-precision floating-point numbers. - //! From GLM_GTC_quaternion extension. - typedef detail::tquat dquat; + //! Quaternion of double-precision floating-point numbers. + //! From GLM_GTC_quaternion extension. + typedef detail::tquat dquat; - ///@} + ///@} - }//namespace quaternion - }//namespace gtc +} //namespace quaternion +} //namespace gtc } //namespace glm #include "quaternion.inl" diff --git a/glm/gtc/swizzle.hpp b/glm/gtc/swizzle.hpp index 945b440e..b3441326 100644 --- a/glm/gtc/swizzle.hpp +++ b/glm/gtc/swizzle.hpp @@ -21,329 +21,327 @@ # pragma message("GLM: GLM_GTC_swizzle extension included") #endif -namespace glm +namespace glm{ +namespace gtc{ +namespace swizzle ///< GLM_GTC_swizzle extension { - namespace gtc{ - //! GLM_GTC_swizzle extension - namespace swizzle - { - using namespace gtc::half_float; + using namespace gtc::half_float; - template class vecType> - T const & swizzle( - vecType const & v, - comp x); + template class vecType> + T const & swizzle( + vecType const & v, + comp x); - template class vecType> - detail::tvec2 const & swizzle( - vecType const & v, - comp x, comp y); + template class vecType> + detail::tvec2 const & swizzle( + vecType const & v, + comp x, comp y); - template class vecType> - detail::tvec3 const & swizzle( - vecType const & v, - comp x, comp y, comp z); + template class vecType> + detail::tvec3 const & swizzle( + vecType const & v, + comp x, comp y, comp z); - template class vecType> - detail::tvec4 const & swizzle( - vecType const & v, - comp x, comp y, comp z, comp w); + template class vecType> + detail::tvec4 const & swizzle( + vecType const & v, + comp x, comp y, comp z, comp w); - template class vecType> - T & swizzle( - vecType & v, - comp x); + template class vecType> + T & swizzle( + vecType & v, + comp x); - template class vecType> - detail::tref2 swizzle( - vecType & v, - comp x, comp y); + template class vecType> + detail::tref2 swizzle( + vecType & v, + comp x, comp y); - template class vecType> - detail::tref3 swizzle( - vecType & v, - comp x, comp y, comp z); + template class vecType> + detail::tref3 swizzle( + vecType & v, + comp x, comp y, comp z); - template class vecType> - detail::tref4 swizzle( - vecType & v, - comp x, comp y, comp z, comp w); + template class vecType> + detail::tref4 swizzle( + vecType & v, + comp x, comp y, comp z, comp w); # define static_swizzle1(TYPE, SIZE) \ - template \ - GLM_FUNC_QUALIFIER TYPE swizzle(detail::tvec##SIZE const & v) \ - {return v[x];} \ - \ - template \ - GLM_FUNC_QUALIFIER TYPE& swizzle(detail::tvec##SIZE & v) \ - {return v[x];} + template \ + GLM_FUNC_QUALIFIER TYPE swizzle(detail::tvec##SIZE const & v) \ + {return v[x];} \ + \ + template \ + GLM_FUNC_QUALIFIER TYPE& swizzle(detail::tvec##SIZE & v) \ + {return v[x];} - static_swizzle1(detail::float16, 2) - static_swizzle1(detail::float16, 3) - static_swizzle1(detail::float16, 4) - static_swizzle1(detail::float32, 2) - static_swizzle1(detail::float32, 3) - static_swizzle1(detail::float32, 4) - static_swizzle1(detail::float64, 2) - static_swizzle1(detail::float64, 3) - static_swizzle1(detail::float64, 4) + static_swizzle1(detail::float16, 2) + static_swizzle1(detail::float16, 3) + static_swizzle1(detail::float16, 4) + static_swizzle1(detail::float32, 2) + static_swizzle1(detail::float32, 3) + static_swizzle1(detail::float32, 4) + static_swizzle1(detail::float64, 2) + static_swizzle1(detail::float64, 3) + static_swizzle1(detail::float64, 4) - static_swizzle1(detail::int8, 2) - static_swizzle1(detail::int8, 3) - static_swizzle1(detail::int8, 4) - static_swizzle1(detail::int16, 2) - static_swizzle1(detail::int16, 3) - static_swizzle1(detail::int16, 4) - static_swizzle1(detail::int32, 2) - static_swizzle1(detail::int32, 3) - static_swizzle1(detail::int32, 4) - static_swizzle1(detail::int64, 2) - static_swizzle1(detail::int64, 3) - static_swizzle1(detail::int64, 4) + static_swizzle1(detail::int8, 2) + static_swizzle1(detail::int8, 3) + static_swizzle1(detail::int8, 4) + static_swizzle1(detail::int16, 2) + static_swizzle1(detail::int16, 3) + static_swizzle1(detail::int16, 4) + static_swizzle1(detail::int32, 2) + static_swizzle1(detail::int32, 3) + static_swizzle1(detail::int32, 4) + static_swizzle1(detail::int64, 2) + static_swizzle1(detail::int64, 3) + static_swizzle1(detail::int64, 4) - static_swizzle1(detail::uint8, 2) - static_swizzle1(detail::uint8, 3) - static_swizzle1(detail::uint8, 4) - static_swizzle1(detail::uint16, 2) - static_swizzle1(detail::uint16, 3) - static_swizzle1(detail::uint16, 4) - static_swizzle1(detail::uint32, 2) - static_swizzle1(detail::uint32, 3) - static_swizzle1(detail::uint32, 4) - static_swizzle1(detail::uint64, 2) - static_swizzle1(detail::uint64, 3) - static_swizzle1(detail::uint64, 4) + static_swizzle1(detail::uint8, 2) + static_swizzle1(detail::uint8, 3) + static_swizzle1(detail::uint8, 4) + static_swizzle1(detail::uint16, 2) + static_swizzle1(detail::uint16, 3) + static_swizzle1(detail::uint16, 4) + static_swizzle1(detail::uint32, 2) + static_swizzle1(detail::uint32, 3) + static_swizzle1(detail::uint32, 4) + static_swizzle1(detail::uint64, 2) + static_swizzle1(detail::uint64, 3) + static_swizzle1(detail::uint64, 4) # define static_swizzle2_const(TYPE) \ - template \ - GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \ - {return TYPE(v[x], v[y]);} + template \ + GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \ + {return TYPE(v[x], v[y]);} # define static_swizzle3_const(TYPE) \ - template \ - GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \ - {return TYPE(v[x], v[y], v[z]);} + template \ + GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \ + {return TYPE(v[x], v[y], v[z]);} # define static_swizzle4_const(TYPE) \ - template \ - GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \ - {return TYPE(v[x], v[y], v[z], v[w]);} + template \ + GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \ + {return TYPE(v[x], v[y], v[z], v[w]);} /* # define static_swizzle2_const(TYPE, SIZE) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec2 swizzle(detail::tvec##SIZE const & v) \ - {return detail::tvec2(v[x], v[y]);} + template \ + GLM_FUNC_QUALIFIER detail::tvec2 swizzle(detail::tvec##SIZE const & v) \ + {return detail::tvec2(v[x], v[y]);} # define static_swizzle3_const(TYPE, SIZE) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec3 swizzle(detail::tvec##SIZE const & v) \ - {return detail::tvec3(v[x], v[y], v[z]);} + template \ + GLM_FUNC_QUALIFIER detail::tvec3 swizzle(detail::tvec##SIZE const & v) \ + {return detail::tvec3(v[x], v[y], v[z]);} # define static_swizzle4_const(TYPE, SIZE) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec4 swizzle(detail::tvec##SIZE const & v) \ - {return detail::tvec4(v[x], v[y], v[z], v[w]);} + template \ + GLM_FUNC_QUALIFIER detail::tvec4 swizzle(detail::tvec##SIZE const & v) \ + {return detail::tvec4(v[x], v[y], v[z], v[w]);} */ - static_swizzle2_const(glm::f16vec2) - static_swizzle2_const(glm::f16vec3) - static_swizzle2_const(glm::f16vec4) - static_swizzle2_const(glm::f32vec2) - static_swizzle2_const(glm::f32vec3) - static_swizzle2_const(glm::f32vec4) - static_swizzle2_const(glm::f64vec2) - static_swizzle2_const(glm::f64vec3) - static_swizzle2_const(glm::f64vec4) + static_swizzle2_const(glm::f16vec2) + static_swizzle2_const(glm::f16vec3) + static_swizzle2_const(glm::f16vec4) + static_swizzle2_const(glm::f32vec2) + static_swizzle2_const(glm::f32vec3) + static_swizzle2_const(glm::f32vec4) + static_swizzle2_const(glm::f64vec2) + static_swizzle2_const(glm::f64vec3) + static_swizzle2_const(glm::f64vec4) - static_swizzle2_const(glm::i8vec2) - static_swizzle2_const(glm::i8vec3) - static_swizzle2_const(glm::i8vec4) - static_swizzle2_const(glm::i16vec2) - static_swizzle2_const(glm::i16vec3) - static_swizzle2_const(glm::i16vec4) - static_swizzle2_const(glm::i32vec2) - static_swizzle2_const(glm::i32vec3) - static_swizzle2_const(glm::i32vec4) - static_swizzle2_const(glm::i64vec2) - static_swizzle2_const(glm::i64vec3) - static_swizzle2_const(glm::i64vec4) + static_swizzle2_const(glm::i8vec2) + static_swizzle2_const(glm::i8vec3) + static_swizzle2_const(glm::i8vec4) + static_swizzle2_const(glm::i16vec2) + static_swizzle2_const(glm::i16vec3) + static_swizzle2_const(glm::i16vec4) + static_swizzle2_const(glm::i32vec2) + static_swizzle2_const(glm::i32vec3) + static_swizzle2_const(glm::i32vec4) + static_swizzle2_const(glm::i64vec2) + static_swizzle2_const(glm::i64vec3) + static_swizzle2_const(glm::i64vec4) - static_swizzle2_const(glm::u8vec2) - static_swizzle2_const(glm::u8vec3) - static_swizzle2_const(glm::u8vec4) - static_swizzle2_const(glm::u16vec2) - static_swizzle2_const(glm::u16vec3) - static_swizzle2_const(glm::u16vec4) - static_swizzle2_const(glm::u32vec2) - static_swizzle2_const(glm::u32vec3) - static_swizzle2_const(glm::u32vec4) - static_swizzle2_const(glm::u64vec2) - static_swizzle2_const(glm::u64vec3) - static_swizzle2_const(glm::u64vec4) + static_swizzle2_const(glm::u8vec2) + static_swizzle2_const(glm::u8vec3) + static_swizzle2_const(glm::u8vec4) + static_swizzle2_const(glm::u16vec2) + static_swizzle2_const(glm::u16vec3) + static_swizzle2_const(glm::u16vec4) + static_swizzle2_const(glm::u32vec2) + static_swizzle2_const(glm::u32vec3) + static_swizzle2_const(glm::u32vec4) + static_swizzle2_const(glm::u64vec2) + static_swizzle2_const(glm::u64vec3) + static_swizzle2_const(glm::u64vec4) - static_swizzle3_const(glm::f16vec2) - static_swizzle3_const(glm::f16vec3) - static_swizzle3_const(glm::f16vec4) - static_swizzle3_const(glm::f32vec2) - static_swizzle3_const(glm::f32vec3) - static_swizzle3_const(glm::f32vec4) - static_swizzle3_const(glm::f64vec2) - static_swizzle3_const(glm::f64vec3) - static_swizzle3_const(glm::f64vec4) + static_swizzle3_const(glm::f16vec2) + static_swizzle3_const(glm::f16vec3) + static_swizzle3_const(glm::f16vec4) + static_swizzle3_const(glm::f32vec2) + static_swizzle3_const(glm::f32vec3) + static_swizzle3_const(glm::f32vec4) + static_swizzle3_const(glm::f64vec2) + static_swizzle3_const(glm::f64vec3) + static_swizzle3_const(glm::f64vec4) - static_swizzle3_const(glm::i8vec2) - static_swizzle3_const(glm::i8vec3) - static_swizzle3_const(glm::i8vec4) - static_swizzle3_const(glm::i16vec2) - static_swizzle3_const(glm::i16vec3) - static_swizzle3_const(glm::i16vec4) - static_swizzle3_const(glm::i32vec2) - static_swizzle3_const(glm::i32vec3) - static_swizzle3_const(glm::i32vec4) - static_swizzle3_const(glm::i64vec2) - static_swizzle3_const(glm::i64vec3) - static_swizzle3_const(glm::i64vec4) + static_swizzle3_const(glm::i8vec2) + static_swizzle3_const(glm::i8vec3) + static_swizzle3_const(glm::i8vec4) + static_swizzle3_const(glm::i16vec2) + static_swizzle3_const(glm::i16vec3) + static_swizzle3_const(glm::i16vec4) + static_swizzle3_const(glm::i32vec2) + static_swizzle3_const(glm::i32vec3) + static_swizzle3_const(glm::i32vec4) + static_swizzle3_const(glm::i64vec2) + static_swizzle3_const(glm::i64vec3) + static_swizzle3_const(glm::i64vec4) - static_swizzle3_const(glm::u8vec2) - static_swizzle3_const(glm::u8vec3) - static_swizzle3_const(glm::u8vec4) - static_swizzle3_const(glm::u16vec2) - static_swizzle3_const(glm::u16vec3) - static_swizzle3_const(glm::u16vec4) - static_swizzle3_const(glm::u32vec2) - static_swizzle3_const(glm::u32vec3) - static_swizzle3_const(glm::u32vec4) - static_swizzle3_const(glm::u64vec2) - static_swizzle3_const(glm::u64vec3) - static_swizzle3_const(glm::u64vec4) + static_swizzle3_const(glm::u8vec2) + static_swizzle3_const(glm::u8vec3) + static_swizzle3_const(glm::u8vec4) + static_swizzle3_const(glm::u16vec2) + static_swizzle3_const(glm::u16vec3) + static_swizzle3_const(glm::u16vec4) + static_swizzle3_const(glm::u32vec2) + static_swizzle3_const(glm::u32vec3) + static_swizzle3_const(glm::u32vec4) + static_swizzle3_const(glm::u64vec2) + static_swizzle3_const(glm::u64vec3) + static_swizzle3_const(glm::u64vec4) - static_swizzle4_const(glm::f16vec2) - static_swizzle4_const(glm::f16vec3) - static_swizzle4_const(glm::f16vec4) - static_swizzle4_const(glm::f32vec2) - static_swizzle4_const(glm::f32vec3) - static_swizzle4_const(glm::f32vec4) - static_swizzle4_const(glm::f64vec2) - static_swizzle4_const(glm::f64vec3) - static_swizzle4_const(glm::f64vec4) + static_swizzle4_const(glm::f16vec2) + static_swizzle4_const(glm::f16vec3) + static_swizzle4_const(glm::f16vec4) + static_swizzle4_const(glm::f32vec2) + static_swizzle4_const(glm::f32vec3) + static_swizzle4_const(glm::f32vec4) + static_swizzle4_const(glm::f64vec2) + static_swizzle4_const(glm::f64vec3) + static_swizzle4_const(glm::f64vec4) - static_swizzle4_const(glm::i8vec2) - static_swizzle4_const(glm::i8vec3) - static_swizzle4_const(glm::i8vec4) - static_swizzle4_const(glm::i16vec2) - static_swizzle4_const(glm::i16vec3) - static_swizzle4_const(glm::i16vec4) - static_swizzle4_const(glm::i32vec2) - static_swizzle4_const(glm::i32vec3) - static_swizzle4_const(glm::i32vec4) - static_swizzle4_const(glm::i64vec2) - static_swizzle4_const(glm::i64vec3) - static_swizzle4_const(glm::i64vec4) + static_swizzle4_const(glm::i8vec2) + static_swizzle4_const(glm::i8vec3) + static_swizzle4_const(glm::i8vec4) + static_swizzle4_const(glm::i16vec2) + static_swizzle4_const(glm::i16vec3) + static_swizzle4_const(glm::i16vec4) + static_swizzle4_const(glm::i32vec2) + static_swizzle4_const(glm::i32vec3) + static_swizzle4_const(glm::i32vec4) + static_swizzle4_const(glm::i64vec2) + static_swizzle4_const(glm::i64vec3) + static_swizzle4_const(glm::i64vec4) - static_swizzle4_const(glm::u8vec2) - static_swizzle4_const(glm::u8vec3) - static_swizzle4_const(glm::u8vec4) - static_swizzle4_const(glm::u16vec2) - static_swizzle4_const(glm::u16vec3) - static_swizzle4_const(glm::u16vec4) - static_swizzle4_const(glm::u32vec2) - static_swizzle4_const(glm::u32vec3) - static_swizzle4_const(glm::u32vec4) - static_swizzle4_const(glm::u64vec2) - static_swizzle4_const(glm::u64vec3) - static_swizzle4_const(glm::u64vec4) + static_swizzle4_const(glm::u8vec2) + static_swizzle4_const(glm::u8vec3) + static_swizzle4_const(glm::u8vec4) + static_swizzle4_const(glm::u16vec2) + static_swizzle4_const(glm::u16vec3) + static_swizzle4_const(glm::u16vec4) + static_swizzle4_const(glm::u32vec2) + static_swizzle4_const(glm::u32vec3) + static_swizzle4_const(glm::u32vec4) + static_swizzle4_const(glm::u64vec2) + static_swizzle4_const(glm::u64vec3) + static_swizzle4_const(glm::u64vec4) # define static_swizzle2_ref(TYPE) \ - template \ - GLM_FUNC_QUALIFIER glm::detail::tref2 swizzle(TYPE & v) \ - {return glm::detail::tref2(v[x], v[y]);} + template \ + GLM_FUNC_QUALIFIER glm::detail::tref2 swizzle(TYPE & v) \ + {return glm::detail::tref2(v[x], v[y]);} # define static_swizzle3_ref(TYPE) \ - template \ - GLM_FUNC_QUALIFIER glm::detail::tref3 swizzle(TYPE & v) \ - {return glm::detail::tref3(v[x], v[y], v[z]);} + template \ + GLM_FUNC_QUALIFIER glm::detail::tref3 swizzle(TYPE & v) \ + {return glm::detail::tref3(v[x], v[y], v[z]);} # define static_swizzle4_ref(TYPE) \ - template \ - GLM_FUNC_QUALIFIER glm::detail::tref4 swizzle(TYPE & v) \ - {return glm::detail::tref4(v[x], v[y], v[z], v[w]);} + template \ + GLM_FUNC_QUALIFIER glm::detail::tref4 swizzle(TYPE & v) \ + {return glm::detail::tref4(v[x], v[y], v[z], v[w]);} - static_swizzle2_ref(glm::f16vec2) - static_swizzle2_ref(glm::f16vec3) - static_swizzle2_ref(glm::f16vec4) - static_swizzle2_ref(glm::f32vec2) - static_swizzle2_ref(glm::f32vec3) - static_swizzle2_ref(glm::f32vec4) - static_swizzle2_ref(glm::f64vec2) - static_swizzle2_ref(glm::f64vec3) - static_swizzle2_ref(glm::f64vec4) + static_swizzle2_ref(glm::f16vec2) + static_swizzle2_ref(glm::f16vec3) + static_swizzle2_ref(glm::f16vec4) + static_swizzle2_ref(glm::f32vec2) + static_swizzle2_ref(glm::f32vec3) + static_swizzle2_ref(glm::f32vec4) + static_swizzle2_ref(glm::f64vec2) + static_swizzle2_ref(glm::f64vec3) + static_swizzle2_ref(glm::f64vec4) - static_swizzle2_ref(glm::i8vec2) - static_swizzle2_ref(glm::i8vec3) - static_swizzle2_ref(glm::i8vec4) - static_swizzle2_ref(glm::i16vec2) - static_swizzle2_ref(glm::i16vec3) - static_swizzle2_ref(glm::i16vec4) - static_swizzle2_ref(glm::i32vec2) - static_swizzle2_ref(glm::i32vec3) - static_swizzle2_ref(glm::i32vec4) - static_swizzle2_ref(glm::i64vec2) - static_swizzle2_ref(glm::i64vec3) - static_swizzle2_ref(glm::i64vec4) + static_swizzle2_ref(glm::i8vec2) + static_swizzle2_ref(glm::i8vec3) + static_swizzle2_ref(glm::i8vec4) + static_swizzle2_ref(glm::i16vec2) + static_swizzle2_ref(glm::i16vec3) + static_swizzle2_ref(glm::i16vec4) + static_swizzle2_ref(glm::i32vec2) + static_swizzle2_ref(glm::i32vec3) + static_swizzle2_ref(glm::i32vec4) + static_swizzle2_ref(glm::i64vec2) + static_swizzle2_ref(glm::i64vec3) + static_swizzle2_ref(glm::i64vec4) - static_swizzle2_ref(glm::u8vec2) - static_swizzle2_ref(glm::u8vec3) - static_swizzle2_ref(glm::u8vec4) - static_swizzle2_ref(glm::u16vec2) - static_swizzle2_ref(glm::u16vec3) - static_swizzle2_ref(glm::u16vec4) - static_swizzle2_ref(glm::u32vec2) - static_swizzle2_ref(glm::u32vec3) - static_swizzle2_ref(glm::u32vec4) - static_swizzle2_ref(glm::u64vec2) - static_swizzle2_ref(glm::u64vec3) - static_swizzle2_ref(glm::u64vec4) + static_swizzle2_ref(glm::u8vec2) + static_swizzle2_ref(glm::u8vec3) + static_swizzle2_ref(glm::u8vec4) + static_swizzle2_ref(glm::u16vec2) + static_swizzle2_ref(glm::u16vec3) + static_swizzle2_ref(glm::u16vec4) + static_swizzle2_ref(glm::u32vec2) + static_swizzle2_ref(glm::u32vec3) + static_swizzle2_ref(glm::u32vec4) + static_swizzle2_ref(glm::u64vec2) + static_swizzle2_ref(glm::u64vec3) + static_swizzle2_ref(glm::u64vec4) - static_swizzle3_ref(glm::f16vec3) - static_swizzle3_ref(glm::f16vec4) - static_swizzle3_ref(glm::f32vec3) - static_swizzle3_ref(glm::f32vec4) - static_swizzle3_ref(glm::f64vec3) - static_swizzle3_ref(glm::f64vec4) + static_swizzle3_ref(glm::f16vec3) + static_swizzle3_ref(glm::f16vec4) + static_swizzle3_ref(glm::f32vec3) + static_swizzle3_ref(glm::f32vec4) + static_swizzle3_ref(glm::f64vec3) + static_swizzle3_ref(glm::f64vec4) - static_swizzle3_ref(glm::i8vec3) - static_swizzle3_ref(glm::i8vec4) - static_swizzle3_ref(glm::i16vec3) - static_swizzle3_ref(glm::i16vec4) - static_swizzle3_ref(glm::i32vec3) - static_swizzle3_ref(glm::i32vec4) - static_swizzle3_ref(glm::i64vec3) - static_swizzle3_ref(glm::i64vec4) + static_swizzle3_ref(glm::i8vec3) + static_swizzle3_ref(glm::i8vec4) + static_swizzle3_ref(glm::i16vec3) + static_swizzle3_ref(glm::i16vec4) + static_swizzle3_ref(glm::i32vec3) + static_swizzle3_ref(glm::i32vec4) + static_swizzle3_ref(glm::i64vec3) + static_swizzle3_ref(glm::i64vec4) - static_swizzle3_ref(glm::u8vec3) - static_swizzle3_ref(glm::u8vec4) - static_swizzle3_ref(glm::u16vec3) - static_swizzle3_ref(glm::u16vec4) - static_swizzle3_ref(glm::u32vec3) - static_swizzle3_ref(glm::u32vec4) - static_swizzle3_ref(glm::u64vec3) - static_swizzle3_ref(glm::u64vec4) + static_swizzle3_ref(glm::u8vec3) + static_swizzle3_ref(glm::u8vec4) + static_swizzle3_ref(glm::u16vec3) + static_swizzle3_ref(glm::u16vec4) + static_swizzle3_ref(glm::u32vec3) + static_swizzle3_ref(glm::u32vec4) + static_swizzle3_ref(glm::u64vec3) + static_swizzle3_ref(glm::u64vec4) - static_swizzle4_ref(glm::f16vec4) - static_swizzle4_ref(glm::f32vec4) - static_swizzle4_ref(glm::f64vec4) + static_swizzle4_ref(glm::f16vec4) + static_swizzle4_ref(glm::f32vec4) + static_swizzle4_ref(glm::f64vec4) - static_swizzle4_ref(glm::i8vec4) - static_swizzle4_ref(glm::i16vec4) - static_swizzle4_ref(glm::i32vec4) - static_swizzle4_ref(glm::i64vec4) + static_swizzle4_ref(glm::i8vec4) + static_swizzle4_ref(glm::i16vec4) + static_swizzle4_ref(glm::i32vec4) + static_swizzle4_ref(glm::i64vec4) - static_swizzle4_ref(glm::u8vec4) - static_swizzle4_ref(glm::u16vec4) - static_swizzle4_ref(glm::u32vec4) - static_swizzle4_ref(glm::u64vec4) + static_swizzle4_ref(glm::u8vec4) + static_swizzle4_ref(glm::u16vec4) + static_swizzle4_ref(glm::u32vec4) + static_swizzle4_ref(glm::u64vec4) - }//namespace swizzle - }//namespace gtc +}//namespace swizzle +}//namespace gtc }//namespace glm #include "swizzle.inl" diff --git a/glm/gtc/type_precision.hpp b/glm/gtc/type_precision.hpp index b7ca27ff..a817ed53 100644 --- a/glm/gtc/type_precision.hpp +++ b/glm/gtc/type_precision.hpp @@ -24,195 +24,193 @@ # pragma message("GLM: GLM_GTC_type_precision extension included") #endif -namespace glm +namespace glm{ +namespace gtc{ +namespace type_precision ///< GLM_GTC_type_precision extension: Defined types with specific size. { - namespace gtc{ - //! GLM_GTC_type_precision extension: Defined types with specific size. - namespace type_precision - { - /////////////////////////// - // Dependences + /////////////////////////// + // Dependences - using namespace gtc::half_float; - using namespace gtc::quaternion; + using namespace gtc::half_float; + using namespace gtc::quaternion; - /////////////////////////// - // Signed int vector types + /////////////////////////// + // Signed int vector types - /// \addtogroup gtc_type_precision - ///@{ + /// \addtogroup gtc_type_precision + ///@{ - 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::int32 int32; //!< \brief 32bit signed integer. (from GLM_GTC_type_precision extension) - typedef detail::int64 int64; //!< \brief 64bit 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::int32 int32; //!< \brief 32bit signed integer. (from GLM_GTC_type_precision extension) + typedef detail::int64 int64; //!< \brief 64bit signed integer. (from GLM_GTC_type_precision extension) - typedef int8 i8; //!< \brief 8bit signed integer. (from GLM_GTC_type_precision extension) - typedef int16 i16; //!< \brief 16bit signed integer. (from GLM_GTC_type_precision extension) - typedef int32 i32; //!< \brief 32bit signed integer. (from GLM_GTC_type_precision extension) - typedef int64 i64; //!< \brief 64bit signed integer. (from GLM_GTC_type_precision extension) + typedef int8 i8; //!< \brief 8bit signed integer. (from GLM_GTC_type_precision extension) + typedef int16 i16; //!< \brief 16bit signed integer. (from GLM_GTC_type_precision extension) + typedef int32 i32; //!< \brief 32bit signed integer. (from GLM_GTC_type_precision extension) + typedef int64 i64; //!< \brief 64bit signed integer. (from GLM_GTC_type_precision extension) - //typedef i8 i8vec1; //!< \brief 8bit signed integer scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 i8vec2; //!< \brief 8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 i8vec3; //!< \brief 8bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 i8vec4; //!< \brief 8bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef i8 i8vec1; //!< \brief 8bit signed integer scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 i8vec2; //!< \brief 8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 i8vec3; //!< \brief 8bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 i8vec4; //!< \brief 8bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension) - //typedef i16 i16vec1; //!< \brief 16bit signed integer scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 i16vec2; //!< \brief 16bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 i16vec3; //!< \brief 16bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 i16vec4; //!< \brief 16bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef i16 i16vec1; //!< \brief 16bit signed integer scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 i16vec2; //!< \brief 16bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 i16vec3; //!< \brief 16bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 i16vec4; //!< \brief 16bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension) - //typedef i32 i32vec1; //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 i32vec2; //!< \brief 32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 i32vec3; //!< \brief 32bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 i32vec4; //!< \brief 32bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef i32 i32vec1; //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 i32vec2; //!< \brief 32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 i32vec3; //!< \brief 32bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 i32vec4; //!< \brief 32bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension) - //typedef i64 i64vec1; //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 i64vec2; //!< \brief 64bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 i64vec3; //!< \brief 64bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 i64vec4; //!< \brief 64bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef i64 i64vec1; //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 i64vec2; //!< \brief 64bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 i64vec3; //!< \brief 64bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 i64vec4; //!< \brief 64bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension) - ///////////////////////////// - // Unsigned int vector types + ///////////////////////////// + // Unsigned int vector types - typedef detail::uint8 uint8; //!< \brief 8bit unsigned integer. (from GLM_GTC_type_precision extension) - typedef detail::uint16 uint16; //!< \brief 16bit unsigned integer. (from GLM_GTC_type_precision extension) - typedef detail::uint32 uint32; //!< \brief 32bit unsigned integer. (from GLM_GTC_type_precision extension) - typedef detail::uint64 uint64; //!< \brief 64bit unsigned integer. (from GLM_GTC_type_precision extension) + typedef detail::uint8 uint8; //!< \brief 8bit unsigned integer. (from GLM_GTC_type_precision extension) + typedef detail::uint16 uint16; //!< \brief 16bit unsigned integer. (from GLM_GTC_type_precision extension) + typedef detail::uint32 uint32; //!< \brief 32bit unsigned integer. (from GLM_GTC_type_precision extension) + typedef detail::uint64 uint64; //!< \brief 64bit unsigned integer. (from GLM_GTC_type_precision extension) - typedef uint8 u8; //!< \brief 8bit unsigned integer. (from GLM_GTC_type_precision extension) - typedef uint16 u16; //!< \brief 16bit unsigned integer. (from GLM_GTC_type_precision extension) - typedef uint32 u32; //!< \brief 32bit unsigned integer. (from GLM_GTC_type_precision extension) - typedef uint64 u64; //!< \brief 64bit unsigned integer. (from GLM_GTC_type_precision extension) + typedef uint8 u8; //!< \brief 8bit unsigned integer. (from GLM_GTC_type_precision extension) + typedef uint16 u16; //!< \brief 16bit unsigned integer. (from GLM_GTC_type_precision extension) + typedef uint32 u32; //!< \brief 32bit unsigned integer. (from GLM_GTC_type_precision extension) + typedef uint64 u64; //!< \brief 64bit unsigned integer. (from GLM_GTC_type_precision extension) - //typedef u8 u8vec1; //!< \brief 8bit unsigned integer scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 u8vec2; //!< \brief 8bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 u8vec3; //!< \brief 8bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 u8vec4; //!< \brief 8bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef u8 u8vec1; //!< \brief 8bit unsigned integer scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 u8vec2; //!< \brief 8bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 u8vec3; //!< \brief 8bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 u8vec4; //!< \brief 8bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension) - //typedef u16 u16vec1; //!< \brief 16bit unsigned integer scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 u16vec2; //!< \brief 16bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 u16vec3; //!< \brief 16bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 u16vec4; //!< \brief 16bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef u16 u16vec1; //!< \brief 16bit unsigned integer scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 u16vec2; //!< \brief 16bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 u16vec3; //!< \brief 16bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 u16vec4; //!< \brief 16bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension) - //typedef u32 u32vec1; //!< \brief 32bit unsigned integer scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 u32vec2; //!< \brief 32bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 u32vec3; //!< \brief 32bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 u32vec4; //!< \brief 32bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef u32 u32vec1; //!< \brief 32bit unsigned integer scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 u32vec2; //!< \brief 32bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 u32vec3; //!< \brief 32bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 u32vec4; //!< \brief 32bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension) - //typedef u64 u64vec1; //!< \brief 64bit unsigned integer scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 u64vec2; //!< \brief 64bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 u64vec3; //!< \brief 64bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 u64vec4; //!< \brief 64bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef u64 u64vec1; //!< \brief 64bit unsigned integer scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 u64vec2; //!< \brief 64bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 u64vec3; //!< \brief 64bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 u64vec4; //!< \brief 64bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension) - ////////////////////// - // Float vector types + ////////////////////// + // Float vector types - typedef detail::float16 float16; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::float32 float32; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::float64 float64; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::float16 float16; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::float32 float32; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::float64 float64; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef float16 f16; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef float32 f32; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef float64 f64; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef float16 f16; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef float32 f32; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef float64 f64; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 fvec2; //!< Vector of 2 single-precision floating-point numbers. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 fvec3; //!< Vector of 3 single-precision floating-point numbers. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 fvec4; //!< Vector of 4 single-precision floating-point numbers. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 fvec2; //!< Vector of 2 single-precision floating-point numbers. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 fvec3; //!< Vector of 3 single-precision floating-point numbers. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 fvec4; //!< Vector of 4 single-precision floating-point numbers. (from GLM_GTC_type_precision extension) - //typedef f16 f16vec1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 f16vec2; //!< \brief Half-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 f16vec3; //!< \brief Half-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 f16vec4; //!< \brief Half-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef f16 f16vec1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 f16vec2; //!< \brief Half-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 f16vec3; //!< \brief Half-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 f16vec4; //!< \brief Half-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension) - //typedef f32 f32vec1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 f32vec2; //!< \brief Single-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 f32vec3; //!< \brief Single-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 f32vec4; //!< \brief Single-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef f32 f32vec1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 f32vec2; //!< \brief Single-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 f32vec3; //!< \brief Single-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 f32vec4; //!< \brief Single-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension) - //typedef f64 f64vec1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tvec2 f64vec2; //!< \brief Double-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec3 f64vec3; //!< \brief Double-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension) - typedef detail::tvec4 f64vec4; //!< \brief Double-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension) + //typedef f64 f64vec1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tvec2 f64vec2; //!< \brief Double-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec3 f64vec3; //!< \brief Double-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension) + typedef detail::tvec4 f64vec4; //!< \brief Double-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension) - ////////////////////// - // Float matrix types + ////////////////////// + // Float matrix types - //typedef f32 fmat1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x2 fmat2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x3 fmat3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x4 fmat4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) + //typedef f32 fmat1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x2 fmat2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x3 fmat3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x4 fmat4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) - //typedef f32 fmat1x1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x2 fmat2x2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x3 fmat2x3; //!< \brief Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x4 fmat2x4; //!< \brief Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x2 fmat3x2; //!< \brief Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x3 fmat3x3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x4 fmat3x4; //!< \brief Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x2 fmat4x2; //!< \brief Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x3 fmat4x3; //!< \brief Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x4 fmat4x4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) + //typedef f32 fmat1x1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x2 fmat2x2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x3 fmat2x3; //!< \brief Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x4 fmat2x4; //!< \brief Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x2 fmat3x2; //!< \brief Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x3 fmat3x3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x4 fmat3x4; //!< \brief Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x2 fmat4x2; //!< \brief Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x3 fmat4x3; //!< \brief Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x4 fmat4x4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) - //typedef f16 f16mat1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x2 f16mat2; //!< \brief Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x3 f16mat3; //!< \brief Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x4 f16mat4; //!< \brief Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) + //typedef f16 f16mat1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x2 f16mat2; //!< \brief Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x3 f16mat3; //!< \brief Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x4 f16mat4; //!< \brief Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) - //typedef f16 f16mat1x1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x2 f16mat2x2; //!< \brief Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x3 f16mat2x3; //!< \brief Half-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x4 f16mat2x4; //!< \brief Half-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x2 f16mat3x2; //!< \brief Half-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x3 f16mat3x3; //!< \brief Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x4 f16mat3x4; //!< \brief Half-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x2 f16mat4x2; //!< \brief Half-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x3 f16mat4x3; //!< \brief Half-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x4 f16mat4x4; //!< \brief Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) + //typedef f16 f16mat1x1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x2 f16mat2x2; //!< \brief Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x3 f16mat2x3; //!< \brief Half-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x4 f16mat2x4; //!< \brief Half-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x2 f16mat3x2; //!< \brief Half-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x3 f16mat3x3; //!< \brief Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x4 f16mat3x4; //!< \brief Half-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x2 f16mat4x2; //!< \brief Half-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x3 f16mat4x3; //!< \brief Half-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x4 f16mat4x4; //!< \brief Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) - //typedef f32 f32mat1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x2 f32mat2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x3 f32mat3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x4 f32mat4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) + //typedef f32 f32mat1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x2 f32mat2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x3 f32mat3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x4 f32mat4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) - //typedef f32 f32mat1x1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x2 f32mat2x2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x3 f32mat2x3; //!< \brief Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x4 f32mat2x4; //!< \brief Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x2 f32mat3x2; //!< \brief Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x3 f32mat3x3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x4 f32mat3x4; //!< \brief Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x2 f32mat4x2; //!< \brief Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x3 f32mat4x3; //!< \brief Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x4 f32mat4x4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) + //typedef f32 f32mat1x1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x2 f32mat2x2; //!< \brief Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x3 f32mat2x3; //!< \brief Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x4 f32mat2x4; //!< \brief Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x2 f32mat3x2; //!< \brief Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x3 f32mat3x3; //!< \brief Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x4 f32mat3x4; //!< \brief Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x2 f32mat4x2; //!< \brief Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x3 f32mat4x3; //!< \brief Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x4 f32mat4x4; //!< \brief Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) - //typedef f64 f64mat1; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x2 f64mat2; //!< \brief Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x3 f64mat3; //!< \brief Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x4 f64mat4; //!< \brief Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) + //typedef f64 f64mat1; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x2 f64mat2; //!< \brief Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x3 f64mat3; //!< \brief Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x4 f64mat4; //!< \brief Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) - //typedef f64 f64mat1x1; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x2 f64mat2x2; //!< \brief Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x3 f64mat2x3; //!< \brief Double-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat2x4 f64mat2x4; //!< \brief Double-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x2 f64mat3x2; //!< \brief Double-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x3 f64mat3x3; //!< \brief Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat3x4 f64mat3x4; //!< \brief Double-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x2 f64mat4x2; //!< \brief Double-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x3 f64mat4x3; //!< \brief Double-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension) - typedef detail::tmat4x4 f64mat4x4; //!< \brief Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) + //typedef f64 f64mat1x1; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x2 f64mat2x2; //!< \brief Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x3 f64mat2x3; //!< \brief Double-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat2x4 f64mat2x4; //!< \brief Double-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x2 f64mat3x2; //!< \brief Double-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x3 f64mat3x3; //!< \brief Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat3x4 f64mat3x4; //!< \brief Double-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x2 f64mat4x2; //!< \brief Double-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x3 f64mat4x3; //!< \brief Double-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension) + typedef detail::tmat4x4 f64mat4x4; //!< \brief Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension) - ////////////////////////// - // Float quaternion types + ////////////////////////// + // Float quaternion types - typedef detail::tquat f16quat; //!< \brief Half-precision floating-point quaternion. (from GLM_GTC_type_precision extension) - typedef detail::tquat f32quat; //!< \brief Single-precision floating-point quaternion. (from GLM_GTC_type_precision extension) - typedef detail::tquat f64quat; //!< \brief Double-precision floating-point quaternion. (from GLM_GTC_type_precision extension) + typedef detail::tquat f16quat; //!< \brief Half-precision floating-point quaternion. (from GLM_GTC_type_precision extension) + typedef detail::tquat f32quat; //!< \brief Single-precision floating-point quaternion. (from GLM_GTC_type_precision extension) + typedef detail::tquat f64quat; //!< \brief Double-precision floating-point quaternion. (from GLM_GTC_type_precision extension) - ///@} + ///@} - }//namespace type_precision - }//namespace gtc +}//namespace type_precision +}//namespace gtc }//namespace glm #include "type_precision.inl" diff --git a/glm/gtc/type_ptr.hpp b/glm/gtc/type_ptr.hpp index 3d55e8f2..85f18f36 100644 --- a/glm/gtc/type_ptr.hpp +++ b/glm/gtc/type_ptr.hpp @@ -21,425 +21,424 @@ # pragma message("GLM: GLM_GTC_type_ptr extension included") #endif -namespace glm -{ - namespace gtc{ - //! GLM_GTC_type_ptr extension: Get access to vectors & matrices value type address. - namespace type_ptr{ +namespace glm{ +namespace gtc{ +namespace type_ptr ///< GLM_GTC_type_ptr extension: Get access to vectors & matrices value type address. +{ - /// \addtogroup gtc_type_ptr - ///@{ + /// \addtogroup gtc_type_ptr + ///@{ - //! Get the const address of the vector content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tvec2 const & vec - ) - { - return &(vec.x); - } + //! Get the const address of the vector content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tvec2 const & vec + ) + { + return &(vec.x); + } - //! Get the address of the vector content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tvec2 & vec - ) - { - return &(vec.x); - } + //! Get the address of the vector content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tvec2 & vec + ) + { + return &(vec.x); + } - //! Get the const address of the vector content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tvec3 const & vec - ) - { - return &(vec.x); - } + //! Get the const address of the vector content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tvec3 const & vec + ) + { + return &(vec.x); + } - //! Get the address of the vector content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tvec3 & vec - ) - { - return &(vec.x); - } + //! Get the address of the vector content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tvec3 & vec + ) + { + return &(vec.x); + } - //! Get the const address of the vector content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tvec4 const & vec - ) - { - return &(vec.x); - } + //! Get the const address of the vector content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tvec4 const & vec + ) + { + return &(vec.x); + } - //! Get the address of the vector content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tvec4 & vec - ) - { - return &(vec.x); - } + //! Get the address of the vector content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tvec4 & vec + ) + { + return &(vec.x); + } - //! Get the const address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tmat2x2 const & mat - ) - { - return &(mat[0].x); - } + //! Get the const address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tmat2x2 const & mat + ) + { + return &(mat[0].x); + } - //! Get the address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tmat2x2 & mat - ) - { - return &(mat[0].x); - } + //! Get the address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tmat2x2 & mat + ) + { + return &(mat[0].x); + } - //! Get the const address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tmat3x3 const & mat - ) - { - return &(mat[0].x); - } + //! Get the const address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tmat3x3 const & mat + ) + { + return &(mat[0].x); + } - //! Get the address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tmat3x3 & mat - ) - { - return &(mat[0].x); - } + //! Get the address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tmat3x3 & mat + ) + { + return &(mat[0].x); + } - //! Get the const address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tmat4x4 const & mat - ) - { - return &(mat[0].x); - } + //! Get the const address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tmat4x4 const & mat + ) + { + return &(mat[0].x); + } - //! Get the address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tmat4x4 & mat - ) - { - return &(mat[0].x); - } + //! Get the address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tmat4x4 & mat + ) + { + return &(mat[0].x); + } - //! Get the const address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tmat2x3 const & mat - ) - { - return &(mat[0].x); - } + //! Get the const address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tmat2x3 const & mat + ) + { + return &(mat[0].x); + } - //! Get the address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tmat2x3 & mat - ) - { - return &(mat[0].x); - } + //! Get the address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tmat2x3 & mat + ) + { + return &(mat[0].x); + } - //! Get the const address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tmat3x2 const & mat - ) - { - return &(mat[0].x); - } + //! Get the const address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tmat3x2 const & mat + ) + { + return &(mat[0].x); + } - //! Get the address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tmat3x2 & mat - ) - { - return &(mat[0].x); - } + //! Get the address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tmat3x2 & mat + ) + { + return &(mat[0].x); + } - //! Get the const address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tmat2x4 const & mat - ) - { - return &(mat[0].x); - } + //! Get the const address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tmat2x4 const & mat + ) + { + return &(mat[0].x); + } - //! Get the address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tmat2x4 & mat - ) - { - return &(mat[0].x); - } + //! Get the address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tmat2x4 & mat + ) + { + return &(mat[0].x); + } - //! Get the const address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tmat4x2 const & mat - ) - { - return &(mat[0].x); - } + //! Get the const address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tmat4x2 const & mat + ) + { + return &(mat[0].x); + } - //! Get the address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tmat4x2 & mat - ) - { - return &(mat[0].x); - } + //! Get the address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tmat4x2 & mat + ) + { + return &(mat[0].x); + } - //! Get the const address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tmat3x4 const & mat - ) - { - return &(mat[0].x); - } + //! Get the const address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tmat3x4 const & mat + ) + { + return &(mat[0].x); + } - //! Get the address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr - ( - detail::tmat3x4 & mat - ) - { - return &(mat[0].x); - } + //! Get the address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr + ( + detail::tmat3x4 & mat + ) + { + return &(mat[0].x); + } - //! Get the const address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T const * value_ptr - ( - detail::tmat4x3 const & mat - ) - { - return &(mat[0].x); - } + //! Get the const address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T const * value_ptr + ( + detail::tmat4x3 const & mat + ) + { + return &(mat[0].x); + } - //! Get the address of the matrix content. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER T * value_ptr(detail::tmat4x3 & mat) - { - return &(mat[0].x); - } + //! Get the address of the matrix content. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER T * value_ptr(detail::tmat4x3 & mat) + { + return &(mat[0].x); + } - //! Build a vector from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tvec2 make_vec2(T const * const ptr) - { - detail::tvec2 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tvec2)); - return Result; - } + //! Build a vector from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tvec2 make_vec2(T const * const ptr) + { + detail::tvec2 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tvec2)); + return Result; + } - //! Build a vector from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tvec3 make_vec3(T const * const ptr) - { - detail::tvec3 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tvec3)); - return Result; - } + //! Build a vector from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tvec3 make_vec3(T const * const ptr) + { + detail::tvec3 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tvec3)); + return Result; + } - //! Build a vector from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tvec4 make_vec4(T const * const ptr) - { - detail::tvec4 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tvec4)); - return Result; - } + //! Build a vector from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tvec4 make_vec4(T const * const ptr) + { + detail::tvec4 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tvec4)); + return Result; + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat2x2 make_mat2x2(T const * const ptr) - { - detail::tmat2x2 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x2)); - return Result; - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat2x2 make_mat2x2(T const * const ptr) + { + detail::tmat2x2 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x2)); + return Result; + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat2x3 make_mat2x3(T const * const ptr) - { - detail::tmat2x3 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x3)); - return Result; - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat2x3 make_mat2x3(T const * const ptr) + { + detail::tmat2x3 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x3)); + return Result; + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat2x4 make_mat2x4(T const * const ptr) - { - detail::tmat2x4 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x4)); - return Result; - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat2x4 make_mat2x4(T const * const ptr) + { + detail::tmat2x4 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x4)); + return Result; + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat3x2 make_mat3x2(T const * const ptr) - { - detail::tmat3x2 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x2)); - return Result; - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat3x2 make_mat3x2(T const * const ptr) + { + detail::tmat3x2 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x2)); + return Result; + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat3x3 make_mat3x3(T const * const ptr) - { - detail::tmat3x3 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x3)); - return Result; - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat3x3 make_mat3x3(T const * const ptr) + { + detail::tmat3x3 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x3)); + return Result; + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat3x4 make_mat3x4(T const * const ptr) - { - detail::tmat3x4 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x4)); - return Result; - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat3x4 make_mat3x4(T const * const ptr) + { + detail::tmat3x4 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x4)); + return Result; + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat4x2 make_mat4x2(T const * const ptr) - { - detail::tmat4x2 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x2)); - return Result; - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat4x2 make_mat4x2(T const * const ptr) + { + detail::tmat4x2 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x2)); + return Result; + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat4x3 make_mat4x3(T const * const ptr) - { - detail::tmat4x3 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x3)); - return Result; - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat4x3 make_mat4x3(T const * const ptr) + { + detail::tmat4x3 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x3)); + return Result; + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat4x4 make_mat4x4(T const * const ptr) - { - detail::tmat4x4 Result; - memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x4)); - return Result; - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat4x4 make_mat4x4(T const * const ptr) + { + detail::tmat4x4 Result; + memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x4)); + return Result; + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat2x2 make_mat2(T const * const ptr) - { - return make_mat2x2(ptr); - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat2x2 make_mat2(T const * const ptr) + { + return make_mat2x2(ptr); + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat3x3 make_mat3(T const * const ptr) - { - return make_mat3x3(ptr); - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat3x3 make_mat3(T const * const ptr) + { + return make_mat3x3(ptr); + } - //! Build a matrix from a pointer. - //! From GLM_GTC_type_ptr extension. - template - GLM_FUNC_QUALIFIER detail::tmat4x4 make_mat4(T const * const ptr) - { - return make_mat4x4(ptr); - } + //! Build a matrix from a pointer. + //! From GLM_GTC_type_ptr extension. + template + GLM_FUNC_QUALIFIER detail::tmat4x4 make_mat4(T const * const ptr) + { + return make_mat4x4(ptr); + } - ///@} + ///@} - }//namespace type_ptr - }//namespace gtc +}//namespace type_ptr +}//namespace gtc }//namespace glm #include "type_ptr.inl"