13     template<
typename T, qualifier Q>
    14     struct mat<3, 2, T, Q>
    16         typedef vec<2, T, Q> col_type;
    17         typedef vec<3, T, Q> row_type;
    18         typedef mat<3, 2, T, Q> type;
    19         typedef mat<2, 3, T, Q> transpose_type;
    28         typedef length_t length_type;
    29         GLM_FUNC_DECL 
static GLM_CONSTEXPR length_type 
length() { 
return 3; }
    31         GLM_FUNC_DECL col_type & operator[](length_type i);
    32         GLM_FUNC_DECL GLM_CONSTEXPR col_type 
const& operator[](length_type i) 
const;
    36         GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
    38         GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 2, T, P> const& m);
    40         GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
    41         GLM_FUNC_DECL GLM_CONSTEXPR mat(
    45         GLM_FUNC_DECL GLM_CONSTEXPR mat(
    53             typename X1, typename Y1,
    54             typename X2, typename Y2,
    55             typename X3, typename Y3>
    56         GLM_FUNC_DECL GLM_CONSTEXPR mat(
    61         template<typename V1, typename V2, typename V3>
    62         GLM_FUNC_DECL GLM_CONSTEXPR mat(
    63             vec<2, V1, Q> const& v1,
    64             vec<2, V2, Q> const& v2,
    65             vec<2, V3, Q> const& v3);
    69         template<typename U, qualifier P>
    70         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, U, P> const& m);
    72         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
    73         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
    74         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
    75         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
    76         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
    77         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
    78         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
    79         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
    84         GLM_FUNC_DECL mat<3, 2, T, Q> & operator=(mat<3, 2, U, Q> const& m);
    86         GLM_FUNC_DECL mat<3, 2, T, Q> & operator+=(U s);
    88         GLM_FUNC_DECL mat<3, 2, T, Q> & operator+=(mat<3, 2, U, Q> const& m);
    90         GLM_FUNC_DECL mat<3, 2, T, Q> & operator-=(U s);
    92         GLM_FUNC_DECL mat<3, 2, T, Q> & operator-=(mat<3, 2, U, Q> const& m);
    94         GLM_FUNC_DECL mat<3, 2, T, Q> & operator*=(U s);
    96         GLM_FUNC_DECL mat<3, 2, T, Q> & operator/=(U s);
   100         GLM_FUNC_DECL mat<3, 2, T, Q> & operator++ ();
   101         GLM_FUNC_DECL mat<3, 2, T, Q> & operator-- ();
   102         GLM_FUNC_DECL mat<3, 2, T, Q> operator++(
int);
   103         GLM_FUNC_DECL mat<3, 2, T, Q> operator--(
int);
   108     template<typename T, qualifier Q>
   109     GLM_FUNC_DECL mat<3, 2, T, Q> operator+(mat<3, 2, T, Q> const& m);
   111     template<typename T, qualifier Q>
   112     GLM_FUNC_DECL mat<3, 2, T, Q> operator-(mat<3, 2, T, Q> const& m);
   116     template<typename T, qualifier Q>
   117     GLM_FUNC_DECL mat<3, 2, T, Q> operator+(mat<3, 2, T, Q> const& m, T scalar);
   119     template<typename T, qualifier Q>
   120     GLM_FUNC_DECL mat<3, 2, T, Q> operator+(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
   122     template<typename T, qualifier Q>
   123     GLM_FUNC_DECL mat<3, 2, T, Q> operator-(mat<3, 2, T, Q> const& m, T scalar);
   125     template<typename T, qualifier Q>
   126     GLM_FUNC_DECL mat<3, 2, T, Q> operator-(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
   128     template<typename T, qualifier Q>
   129     GLM_FUNC_DECL mat<3, 2, T, Q> operator*(mat<3, 2, T, Q> const& m, T scalar);
   131     template<typename T, qualifier Q>
   132     GLM_FUNC_DECL mat<3, 2, T, Q> operator*(T scalar, mat<3, 2, T, Q> const& m);
   134     template<typename T, qualifier Q>
   135     GLM_FUNC_DECL typename mat<3, 2, T, Q>::col_type operator*(mat<3, 2, T, Q> const& m, typename mat<3, 2, T, Q>::row_type const& v);
   137     template<typename T, qualifier Q>
   138     GLM_FUNC_DECL typename mat<3, 2, T, Q>::row_type operator*(typename mat<3, 2, T, Q>::col_type const& v, mat<3, 2, T, Q> const& m);
   140     template<typename T, qualifier Q>
   141     GLM_FUNC_DECL mat<2, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
   143     template<typename T, qualifier Q>
   144     GLM_FUNC_DECL mat<3, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
   146     template<typename T, qualifier Q>
   147     GLM_FUNC_DECL mat<4, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
   149     template<typename T, qualifier Q>
   150     GLM_FUNC_DECL mat<3, 2, T, Q> operator/(mat<3, 2, T, Q> const& m, T scalar);
   152     template<typename T, qualifier Q>
   153     GLM_FUNC_DECL mat<3, 2, T, Q> operator/(T scalar, mat<3, 2, T, Q> const& m);
   157     template<typename T, qualifier Q>
   158     GLM_FUNC_DECL 
bool operator==(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
   160     template<typename T, qualifier Q>
   161     GLM_FUNC_DECL 
bool operator!=(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
   165 #ifndef GLM_EXTERNAL_TEMPLATE   166 #include "type_mat3x2.inl" 
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.