Merge branch '0.9.3' of ssh://g-truc.git.sourceforge.net/gitroot/ogl-math/ogl-math into 0.9.3

This commit is contained in:
Christophe Riccio 2011-12-17 18:56:22 +00:00
commit 7833ec3369
3 changed files with 110 additions and 101 deletions

View File

@ -50,14 +50,14 @@ namespace glm
/// @{ /// @{
/// Get a specific row of a matrix. /// Get a specific row of a matrix.
/// @see - gtc_matrix_access /// @see gtc_matrix_access
template <typename genType> template <typename genType>
typename genType::row_type row( typename genType::row_type row(
genType const & m, genType const & m,
int index); int index);
/// Set a specific row to a matrix. /// Set a specific row to a matrix.
/// @see - gtc_matrix_access /// @see gtc_matrix_access
template <typename genType> template <typename genType>
genType row( genType row(
genType const & m, genType const & m,
@ -65,14 +65,14 @@ namespace glm
typename genType::row_type const & x); typename genType::row_type const & x);
/// Get a specific column of a matrix. /// Get a specific column of a matrix.
/// @see - gtc_matrix_access /// @see gtc_matrix_access
template <typename genType> template <typename genType>
typename genType::col_type column( typename genType::col_type column(
genType const & m, genType const & m,
int index); int index);
/// Set a specific column to a matrix. /// Set a specific column to a matrix.
/// @see - gtc_matrix_access /// @see gtc_matrix_access
template <typename genType> template <typename genType>
genType column( genType column(
genType const & m, genType const & m,

View File

@ -50,300 +50,300 @@ namespace glm
/// @{ /// @{
/// High-precision signed integer 2x2 matrix. /// High-precision signed integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<highp_int> highp_imat2; typedef detail::tmat2x2<highp_int> highp_imat2;
/// High-precision signed integer 3x3 matrix. /// High-precision signed integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<highp_int> highp_imat3; typedef detail::tmat3x3<highp_int> highp_imat3;
/// High-precision signed integer 4x4 matrix. /// High-precision signed integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<highp_int> highp_imat4; typedef detail::tmat4x4<highp_int> highp_imat4;
/// High-precision signed integer 2x2 matrix. /// High-precision signed integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<highp_int> highp_imat2x2; typedef detail::tmat2x2<highp_int> highp_imat2x2;
/// High-precision signed integer 2x3 matrix. /// High-precision signed integer 2x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x3<highp_int> highp_imat2x3; typedef detail::tmat2x3<highp_int> highp_imat2x3;
/// High-precision signed integer 2x4 matrix. /// High-precision signed integer 2x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x4<highp_int> highp_imat2x4; typedef detail::tmat2x4<highp_int> highp_imat2x4;
/// High-precision signed integer 3x2 matrix. /// High-precision signed integer 3x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x2<highp_int> highp_imat3x2; typedef detail::tmat3x2<highp_int> highp_imat3x2;
/// High-precision signed integer 3x3 matrix. /// High-precision signed integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<highp_int> highp_imat3x3; typedef detail::tmat3x3<highp_int> highp_imat3x3;
/// High-precision signed integer 3x4 matrix. /// High-precision signed integer 3x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x4<highp_int> highp_imat3x4; typedef detail::tmat3x4<highp_int> highp_imat3x4;
/// High-precision signed integer 4x2 matrix. /// High-precision signed integer 4x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x2<highp_int> highp_imat4x2; typedef detail::tmat4x2<highp_int> highp_imat4x2;
/// High-precision signed integer 4x3 matrix. /// High-precision signed integer 4x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x3<highp_int> highp_imat4x3; typedef detail::tmat4x3<highp_int> highp_imat4x3;
/// High-precision signed integer 4x4 matrix. /// High-precision signed integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<highp_int> highp_imat4x4; typedef detail::tmat4x4<highp_int> highp_imat4x4;
/// Medium-precision signed integer 2x2 matrix. /// Medium-precision signed integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<mediump_int> mediump_imat2; typedef detail::tmat2x2<mediump_int> mediump_imat2;
/// Medium-precision signed integer 3x3 matrix. /// Medium-precision signed integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<mediump_int> mediump_imat3; typedef detail::tmat3x3<mediump_int> mediump_imat3;
/// Medium-precision signed integer 4x4 matrix. /// Medium-precision signed integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<mediump_int> mediump_imat4; typedef detail::tmat4x4<mediump_int> mediump_imat4;
/// Medium-precision signed integer 2x2 matrix. /// Medium-precision signed integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<mediump_int> mediump_imat2x2; typedef detail::tmat2x2<mediump_int> mediump_imat2x2;
/// Medium-precision signed integer 2x3 matrix. /// Medium-precision signed integer 2x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x3<mediump_int> mediump_imat2x3; typedef detail::tmat2x3<mediump_int> mediump_imat2x3;
/// Medium-precision signed integer 2x4 matrix. /// Medium-precision signed integer 2x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x4<mediump_int> mediump_imat2x4; typedef detail::tmat2x4<mediump_int> mediump_imat2x4;
/// Medium-precision signed integer 3x2 matrix. /// Medium-precision signed integer 3x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x2<mediump_int> mediump_imat3x2; typedef detail::tmat3x2<mediump_int> mediump_imat3x2;
/// Medium-precision signed integer 3x3 matrix. /// Medium-precision signed integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<mediump_int> mediump_imat3x3; typedef detail::tmat3x3<mediump_int> mediump_imat3x3;
/// Medium-precision signed integer 3x4 matrix. /// Medium-precision signed integer 3x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x4<mediump_int> mediump_imat3x4; typedef detail::tmat3x4<mediump_int> mediump_imat3x4;
/// Medium-precision signed integer 4x2 matrix. /// Medium-precision signed integer 4x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x2<mediump_int> mediump_imat4x2; typedef detail::tmat4x2<mediump_int> mediump_imat4x2;
/// Medium-precision signed integer 4x3 matrix. /// Medium-precision signed integer 4x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x3<mediump_int> mediump_imat4x3; typedef detail::tmat4x3<mediump_int> mediump_imat4x3;
/// Medium-precision signed integer 4x4 matrix. /// Medium-precision signed integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<mediump_int> mediump_imat4x4; typedef detail::tmat4x4<mediump_int> mediump_imat4x4;
/// Low-precision signed integer 2x2 matrix. /// Low-precision signed integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<lowp_int> lowp_imat2; typedef detail::tmat2x2<lowp_int> lowp_imat2;
/// Low-precision signed integer 3x3 matrix. /// Low-precision signed integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<lowp_int> lowp_imat3; typedef detail::tmat3x3<lowp_int> lowp_imat3;
/// Low-precision signed integer 4x4 matrix. /// Low-precision signed integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<lowp_int> lowp_imat4; typedef detail::tmat4x4<lowp_int> lowp_imat4;
/// Low-precision signed integer 2x2 matrix. /// Low-precision signed integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<lowp_int> lowp_imat2x2; typedef detail::tmat2x2<lowp_int> lowp_imat2x2;
/// Low-precision signed integer 2x3 matrix. /// Low-precision signed integer 2x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x3<lowp_int> lowp_imat2x3; typedef detail::tmat2x3<lowp_int> lowp_imat2x3;
/// Low-precision signed integer 2x4 matrix. /// Low-precision signed integer 2x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x4<lowp_int> lowp_imat2x4; typedef detail::tmat2x4<lowp_int> lowp_imat2x4;
/// Low-precision signed integer 3x2 matrix. /// Low-precision signed integer 3x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x2<lowp_int> lowp_imat3x2; typedef detail::tmat3x2<lowp_int> lowp_imat3x2;
/// Low-precision signed integer 3x3 matrix. /// Low-precision signed integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<lowp_int> lowp_imat3x3; typedef detail::tmat3x3<lowp_int> lowp_imat3x3;
/// Low-precision signed integer 3x4 matrix. /// Low-precision signed integer 3x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x4<lowp_int> lowp_imat3x4; typedef detail::tmat3x4<lowp_int> lowp_imat3x4;
/// Low-precision signed integer 4x2 matrix. /// Low-precision signed integer 4x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x2<lowp_int> lowp_imat4x2; typedef detail::tmat4x2<lowp_int> lowp_imat4x2;
/// Low-precision signed integer 4x3 matrix. /// Low-precision signed integer 4x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x3<lowp_int> lowp_imat4x3; typedef detail::tmat4x3<lowp_int> lowp_imat4x3;
/// Low-precision signed integer 4x4 matrix. /// Low-precision signed integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<lowp_int> lowp_imat4x4; typedef detail::tmat4x4<lowp_int> lowp_imat4x4;
/// High-precision unsigned integer 2x2 matrix. /// High-precision unsigned integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<highp_uint> highp_umat2; typedef detail::tmat2x2<highp_uint> highp_umat2;
/// High-precision unsigned integer 3x3 matrix. /// High-precision unsigned integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<highp_uint> highp_umat3; typedef detail::tmat3x3<highp_uint> highp_umat3;
/// High-precision unsigned integer 4x4 matrix. /// High-precision unsigned integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<highp_uint> highp_umat4; typedef detail::tmat4x4<highp_uint> highp_umat4;
/// High-precision unsigned integer 2x2 matrix. /// High-precision unsigned integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<highp_uint> highp_umat2x2; typedef detail::tmat2x2<highp_uint> highp_umat2x2;
/// High-precision unsigned integer 2x3 matrix. /// High-precision unsigned integer 2x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x3<highp_uint> highp_umat2x3; typedef detail::tmat2x3<highp_uint> highp_umat2x3;
/// High-precision unsigned integer 2x4 matrix. /// High-precision unsigned integer 2x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x4<highp_uint> highp_umat2x4; typedef detail::tmat2x4<highp_uint> highp_umat2x4;
/// High-precision unsigned integer 3x2 matrix. /// High-precision unsigned integer 3x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x2<highp_uint> highp_umat3x2; typedef detail::tmat3x2<highp_uint> highp_umat3x2;
/// High-precision unsigned integer 3x3 matrix. /// High-precision unsigned integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<highp_uint> highp_umat3x3; typedef detail::tmat3x3<highp_uint> highp_umat3x3;
/// High-precision unsigned integer 3x4 matrix. /// High-precision unsigned integer 3x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x4<highp_uint> highp_umat3x4; typedef detail::tmat3x4<highp_uint> highp_umat3x4;
/// High-precision unsigned integer 4x2 matrix. /// High-precision unsigned integer 4x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x2<highp_uint> highp_umat4x2; typedef detail::tmat4x2<highp_uint> highp_umat4x2;
/// High-precision unsigned integer 4x3 matrix. /// High-precision unsigned integer 4x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x3<highp_uint> highp_umat4x3; typedef detail::tmat4x3<highp_uint> highp_umat4x3;
/// High-precision unsigned integer 4x4 matrix. /// High-precision unsigned integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<highp_uint> highp_umat4x4; typedef detail::tmat4x4<highp_uint> highp_umat4x4;
/// Medium-precision unsigned integer 2x2 matrix. /// Medium-precision unsigned integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<mediump_uint> mediump_umat2; typedef detail::tmat2x2<mediump_uint> mediump_umat2;
/// Medium-precision unsigned integer 3x3 matrix. /// Medium-precision unsigned integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<mediump_uint> mediump_umat3; typedef detail::tmat3x3<mediump_uint> mediump_umat3;
/// Medium-precision unsigned integer 4x4 matrix. /// Medium-precision unsigned integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<mediump_uint> mediump_umat4; typedef detail::tmat4x4<mediump_uint> mediump_umat4;
/// Medium-precision unsigned integer 2x2 matrix. /// Medium-precision unsigned integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<mediump_uint> mediump_umat2x2; typedef detail::tmat2x2<mediump_uint> mediump_umat2x2;
/// Medium-precision unsigned integer 2x3 matrix. /// Medium-precision unsigned integer 2x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x3<mediump_uint> mediump_umat2x3; typedef detail::tmat2x3<mediump_uint> mediump_umat2x3;
/// Medium-precision unsigned integer 2x4 matrix. /// Medium-precision unsigned integer 2x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x4<mediump_uint> mediump_umat2x4; typedef detail::tmat2x4<mediump_uint> mediump_umat2x4;
/// Medium-precision unsigned integer 3x2 matrix. /// Medium-precision unsigned integer 3x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x2<mediump_uint> mediump_umat3x2; typedef detail::tmat3x2<mediump_uint> mediump_umat3x2;
/// Medium-precision unsigned integer 3x3 matrix. /// Medium-precision unsigned integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<mediump_uint> mediump_umat3x3; typedef detail::tmat3x3<mediump_uint> mediump_umat3x3;
/// Medium-precision unsigned integer 3x4 matrix. /// Medium-precision unsigned integer 3x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x4<mediump_uint> mediump_umat3x4; typedef detail::tmat3x4<mediump_uint> mediump_umat3x4;
/// Medium-precision unsigned integer 4x2 matrix. /// Medium-precision unsigned integer 4x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x2<mediump_uint> mediump_umat4x2; typedef detail::tmat4x2<mediump_uint> mediump_umat4x2;
/// Medium-precision unsigned integer 4x3 matrix. /// Medium-precision unsigned integer 4x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x3<mediump_uint> mediump_umat4x3; typedef detail::tmat4x3<mediump_uint> mediump_umat4x3;
/// Medium-precision unsigned integer 4x4 matrix. /// Medium-precision unsigned integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<mediump_uint> mediump_umat4x4; typedef detail::tmat4x4<mediump_uint> mediump_umat4x4;
/// Low-precision unsigned integer 2x2 matrix. /// Low-precision unsigned integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<lowp_uint> lowp_umat2; typedef detail::tmat2x2<lowp_uint> lowp_umat2;
/// Low-precision unsigned integer 3x3 matrix. /// Low-precision unsigned integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<lowp_uint> lowp_umat3; typedef detail::tmat3x3<lowp_uint> lowp_umat3;
/// Low-precision unsigned integer 4x4 matrix. /// Low-precision unsigned integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<lowp_uint> lowp_umat4; typedef detail::tmat4x4<lowp_uint> lowp_umat4;
/// Low-precision unsigned integer 2x2 matrix. /// Low-precision unsigned integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x2<lowp_uint> lowp_umat2x2; typedef detail::tmat2x2<lowp_uint> lowp_umat2x2;
/// Low-precision unsigned integer 2x3 matrix. /// Low-precision unsigned integer 2x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x3<lowp_uint> lowp_umat2x3; typedef detail::tmat2x3<lowp_uint> lowp_umat2x3;
/// Low-precision unsigned integer 2x4 matrix. /// Low-precision unsigned integer 2x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat2x4<lowp_uint> lowp_umat2x4; typedef detail::tmat2x4<lowp_uint> lowp_umat2x4;
/// Low-precision unsigned integer 3x2 matrix. /// Low-precision unsigned integer 3x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x2<lowp_uint> lowp_umat3x2; typedef detail::tmat3x2<lowp_uint> lowp_umat3x2;
/// Low-precision unsigned integer 3x3 matrix. /// Low-precision unsigned integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x3<lowp_uint> lowp_umat3x3; typedef detail::tmat3x3<lowp_uint> lowp_umat3x3;
/// Low-precision unsigned integer 3x4 matrix. /// Low-precision unsigned integer 3x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat3x4<lowp_uint> lowp_umat3x4; typedef detail::tmat3x4<lowp_uint> lowp_umat3x4;
/// Low-precision unsigned integer 4x2 matrix. /// Low-precision unsigned integer 4x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x2<lowp_uint> lowp_umat4x2; typedef detail::tmat4x2<lowp_uint> lowp_umat4x2;
/// Low-precision unsigned integer 4x3 matrix. /// Low-precision unsigned integer 4x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x3<lowp_uint> lowp_umat4x3; typedef detail::tmat4x3<lowp_uint> lowp_umat4x3;
/// Low-precision unsigned integer 4x4 matrix. /// Low-precision unsigned integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef detail::tmat4x4<lowp_uint> lowp_umat4x4; typedef detail::tmat4x4<lowp_uint> lowp_umat4x4;
#if(defined(GLM_PRECISION_HIGHP_INT)) #if(defined(GLM_PRECISION_HIGHP_INT))
@ -375,51 +375,51 @@ namespace glm
#else //if(defined(GLM_PRECISION_MEDIUMP_INT)) #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
/// Signed integer 2x2 matrix. /// Signed integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat2 imat2; typedef mediump_imat2 imat2;
/// Signed integer 3x3 matrix. /// Signed integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat3 imat3; typedef mediump_imat3 imat3;
/// Signed integer 4x4 matrix. /// Signed integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat4 imat4; typedef mediump_imat4 imat4;
/// Signed integer 2x2 matrix. /// Signed integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat2x2 imat2x2; typedef mediump_imat2x2 imat2x2;
/// Signed integer 2x3 matrix. /// Signed integer 2x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat2x3 imat2x3; typedef mediump_imat2x3 imat2x3;
/// Signed integer 2x4 matrix. /// Signed integer 2x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat2x4 imat2x4; typedef mediump_imat2x4 imat2x4;
/// Signed integer 3x2 matrix. /// Signed integer 3x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat3x2 imat3x2; typedef mediump_imat3x2 imat3x2;
/// Signed integer 3x3 matrix. /// Signed integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat3x3 imat3x3; typedef mediump_imat3x3 imat3x3;
/// Signed integer 3x4 matrix. /// Signed integer 3x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat3x4 imat3x4; typedef mediump_imat3x4 imat3x4;
/// Signed integer 4x2 matrix. /// Signed integer 4x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat4x2 imat4x2; typedef mediump_imat4x2 imat4x2;
/// Signed integer 4x3 matrix. /// Signed integer 4x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat4x3 imat4x3; typedef mediump_imat4x3 imat4x3;
/// Signed integer 4x4 matrix. /// Signed integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_imat4x4 imat4x4; typedef mediump_imat4x4 imat4x4;
#endif//GLM_PRECISION #endif//GLM_PRECISION
@ -450,52 +450,53 @@ namespace glm
typedef lowp_umat4x3 umat4x3; typedef lowp_umat4x3 umat4x3;
typedef lowp_umat4x4 umat4x4; typedef lowp_umat4x4 umat4x4;
#else //if(defined(GLM_PRECISION_MEDIUMP_UINT)) #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
/// Unsigned integer 2x2 matrix. /// Unsigned integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat2 umat2; typedef mediump_umat2 umat2;
/// Unsigned integer 3x3 matrix. /// Unsigned integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat3 umat3; typedef mediump_umat3 umat3;
/// Unsigned integer 4x4 matrix. /// Unsigned integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat4 umat4; typedef mediump_umat4 umat4;
/// Unsigned integer 2x2 matrix. /// Unsigned integer 2x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat2x2 umat2x2; typedef mediump_umat2x2 umat2x2;
/// Unsigned integer 2x3 matrix. /// Unsigned integer 2x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat2x3 umat2x3; typedef mediump_umat2x3 umat2x3;
/// Unsigned integer 2x4 matrix. /// Unsigned integer 2x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat2x4 umat2x4; typedef mediump_umat2x4 umat2x4;
/// Unsigned integer 3x2 matrix. /// Unsigned integer 3x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat3x2 umat3x2; typedef mediump_umat3x2 umat3x2;
/// Unsigned integer 3x3 matrix. /// Unsigned integer 3x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat3x3 umat3x3; typedef mediump_umat3x3 umat3x3;
/// Unsigned integer 3x4 matrix. /// Unsigned integer 3x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat3x4 umat3x4; typedef mediump_umat3x4 umat3x4;
/// Unsigned integer 4x2 matrix. /// Unsigned integer 4x2 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat4x2 umat4x2; typedef mediump_umat4x2 umat4x2;
/// Unsigned integer 4x3 matrix. /// Unsigned integer 4x3 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat4x3 umat4x3; typedef mediump_umat4x3 umat4x3;
/// Unsigned integer 4x4 matrix. /// Unsigned integer 4x4 matrix.
/// @see - gtc_matrix_integer /// @see gtc_matrix_integer
typedef mediump_umat4x4 umat4x4; typedef mediump_umat4x4 umat4x4;
#endif//GLM_PRECISION #endif//GLM_PRECISION

View File

@ -51,11 +51,19 @@ namespace glm
/// @addtogroup gtc_swizzle /// @addtogroup gtc_swizzle
/// @{ /// @{
template <typename T, template <typename> class vecType> template <typename T, template <typename> class vecType>
T const & swizzle( T const & swizzle(
vecType<T> const & v, vecType<T> const & v,
comp x); comp x);
///
///
/// @param v Vector source
/// @param x
/// @tparam T
/// @tparam vecType
/// @see gtc_swizzle
template <typename T, template <typename> class vecType> template <typename T, template <typename> class vecType>
detail::tvec2<T> const & swizzle( detail::tvec2<T> const & swizzle(
vecType<T> const & v, vecType<T> const & v,