From dd22bd15f6ed3e5eb5c77ab427029be50fe20148 Mon Sep 17 00:00:00 2001 From: Dimitri John Ledkov Date: Tue, 24 Jun 2014 20:05:13 +0100 Subject: libavg (1.8.1-1) unstable; urgency=medium * New upstream release (Closes: #739664) * Mark libdc1394-22-dev as linux-any build-dependency. * Add libvdpau-dev build-dependency. * Add libavresample-dev build-dependency. # imported from the archive --- src/glm/core/type_mat3x4.hpp | 232 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 src/glm/core/type_mat3x4.hpp (limited to 'src/glm/core/type_mat3x4.hpp') diff --git a/src/glm/core/type_mat3x4.hpp b/src/glm/core/type_mat3x4.hpp new file mode 100644 index 0000000..26e6d29 --- /dev/null +++ b/src/glm/core/type_mat3x4.hpp @@ -0,0 +1,232 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////// +// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Created : 2006-08-05 +// Updated : 2010-02-05 +// Licence : This source is under MIT License +// File : glm/core/type_mat3x4.hpp +/////////////////////////////////////////////////////////////////////////////////////////////////// + +#ifndef glm_core_type_mat3x4 +#define glm_core_type_mat3x4 + +#include "type_mat.hpp" + +namespace glm{ +namespace detail +{ + template struct tvec1; + template struct tvec2; + template struct tvec3; + template struct tvec4; + template struct tmat2x2; + template struct tmat2x3; + template struct tmat2x4; + template struct tmat3x2; + template struct tmat3x3; + template struct tmat3x4; + template struct tmat4x2; + template struct tmat4x3; + template struct tmat4x4; + + //! \brief Template for 3 columns and 4 rows matrix of floating-point numbers. + //! \ingroup core_template + template + struct tmat3x4 + { + enum ctor{null}; + typedef T value_type; + typedef std::size_t size_type; + typedef tvec4 col_type; + typedef tvec3 row_type; + static GLM_FUNC_DECL size_type col_size(); + static GLM_FUNC_DECL size_type row_size(); + + typedef tmat3x4 type; + typedef tmat4x3 transpose_type; + + private: + // Data + col_type value[3]; + + public: + // Constructors + GLM_FUNC_DECL tmat3x4(); + GLM_FUNC_DECL tmat3x4(tmat3x4 const & m); + + GLM_FUNC_DECL explicit tmat3x4( + ctor Null); + GLM_FUNC_DECL explicit tmat3x4( + value_type const & s); + GLM_FUNC_DECL explicit tmat3x4( + value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0, + value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1, + value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2); + GLM_FUNC_DECL explicit tmat3x4( + col_type const & v0, + col_type const & v1, + col_type const & v2); + + ////////////////////////////////////// + // Conversions + template + GLM_FUNC_DECL explicit tmat3x4( + U const & x); + + template + < + typename X1, typename Y1, typename Z1, typename W1, + typename X2, typename Y2, typename Z2, typename W2, + typename X3, typename Y3, typename Z3, typename W3 + > + GLM_FUNC_DECL explicit tmat3x4( + X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1, + X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2, + X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3); + + template + GLM_FUNC_DECL explicit tmat3x4( + tvec4 const & v1, + tvec4 const & v2, + tvec4 const & v3); + + // Matrix conversion + template + GLM_FUNC_DECL explicit tmat3x4(tmat3x4 const & m); + + GLM_FUNC_DECL explicit tmat3x4(tmat2x2 const & x); + GLM_FUNC_DECL explicit tmat3x4(tmat3x3 const & x); + GLM_FUNC_DECL explicit tmat3x4(tmat4x4 const & x); + GLM_FUNC_DECL explicit tmat3x4(tmat2x3 const & x); + GLM_FUNC_DECL explicit tmat3x4(tmat3x2 const & x); + GLM_FUNC_DECL explicit tmat3x4(tmat2x4 const & x); + GLM_FUNC_DECL explicit tmat3x4(tmat4x2 const & x); + GLM_FUNC_DECL explicit tmat3x4(tmat4x3 const & x); + + // Accesses + col_type & operator[](size_type i); + col_type const & operator[](size_type i) const; + + // Unary updatable operators + GLM_FUNC_DECL tmat3x4 & operator= (tmat3x4 const & m); + template + GLM_FUNC_DECL tmat3x4 & operator= (tmat3x4 const & m); + template + GLM_FUNC_DECL tmat3x4 & operator+= (U const & s); + template + GLM_FUNC_DECL tmat3x4 & operator+= (tmat3x4 const & m); + template + GLM_FUNC_DECL tmat3x4 & operator-= (U const & s); + template + GLM_FUNC_DECL tmat3x4 & operator-= (tmat3x4 const & m); + template + GLM_FUNC_DECL tmat3x4 & operator*= (U const & s); + template + GLM_FUNC_DECL tmat3x4 & operator*= (tmat3x4 const & m); + template + GLM_FUNC_DECL tmat3x4 & operator/= (U const & s); + + GLM_FUNC_DECL tmat3x4 & operator++ (); + GLM_FUNC_DECL tmat3x4 & operator-- (); + }; + + // Binary operators + template + tmat3x4 operator+ ( + tmat3x4 const & m, + typename tmat3x4::value_type const & s); + + template + tmat3x4 operator+ ( + tmat3x4 const & m1, + tmat3x4 const & m2); + + template + tmat3x4 operator- ( + tmat3x4 const & m, + typename tmat3x4::value_type const & s); + + template + tmat3x4 operator- ( + tmat3x4 const & m1, + tmat3x4 const & m2); + + template + tmat3x4 operator* ( + tmat3x4 const & m, + typename tmat3x4::value_type const & s); + + template + tmat3x4 operator* ( + typename tmat3x4::value_type const & s, + tmat3x4 const & m); + + template + typename tmat3x4::col_type operator* ( + tmat3x4 const & m, + typename tmat3x4::row_type const & v); + + template + typename tmat3x4::row_type operator* ( + typename tmat3x4::col_type const & v, + tmat3x4 const & m); + + template + tmat4x4 operator* ( + tmat3x4 const & m1, + tmat4x3 const & m2); + + template + tmat3x4 operator/ ( + tmat3x4 const & m, + typename tmat3x4::value_type const & s); + + template + tmat3x4 operator/ ( + typename tmat3x4::value_type const & s, + tmat3x4 const & m); + + // Unary constant operators + template + tmat3x4 const operator- ( + tmat3x4 const & m); + + template + tmat3x4 const operator-- ( + tmat3x4 const & m, + int); + + template + tmat3x4 const operator++ ( + tmat3x4 const & m, + int); + +}//namespace detail + +namespace core{ +namespace type{ +namespace precision +{ + //! 3 columns of 4 components matrix of low precision floating-point numbers. + //! There is no guarantee on the actual precision. + //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + typedef detail::tmat3x4 lowp_mat3x4; + //! 3 columns of 4 components matrix of medium precision floating-point numbers. + //! There is no guarantee on the actual precision. + //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + typedef detail::tmat3x4 mediump_mat3x4; + //! 3 columns of 4 components matrix of high precision floating-point numbers. + //! There is no guarantee on the actual precision. + //! (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers) + typedef detail::tmat3x4 highp_mat3x4; + +}//namespace precision +}//namespace type +}//namespace core +}//namespace glm + +#ifndef GLM_EXTERNAL_TEMPLATE +#include "type_mat3x4.inl" +#endif + +#endif //glm_core_type_mat3x4 -- cgit v1.2.3