29 #ifndef glm_core_type_mat3x4 
   30 #define glm_core_type_mat3x4 
   37         template <
typename T> 
struct tvec1;
 
   38         template <
typename T> 
struct tvec2;
 
   39         template <
typename T> 
struct tvec3;
 
   40         template <
typename T> 
struct tvec4;
 
   41         template <
typename T> 
struct tmat2x2;
 
   42         template <
typename T> 
struct tmat2x3;
 
   43         template <
typename T> 
struct tmat2x4;
 
   44         template <
typename T> 
struct tmat3x2;
 
   45         template <
typename T> 
struct tmat3x3;
 
   46         template <
typename T> 
struct tmat3x4;
 
   47         template <
typename T> 
struct tmat4x2;
 
   48         template <
typename T> 
struct tmat4x3;
 
   49         template <
typename T> 
struct tmat4x4;
 
   56                 typedef std::size_t size_type;
 
   57                 typedef tvec4<T> col_type;
 
   58                 typedef tvec3<T> row_type;
 
   59                 typedef tmat3x4<T> type;
 
   60                 typedef tmat4x3<T> transpose_type;
 
   62                 static GLM_FUNC_DECL size_type col_size();
 
   63                 static GLM_FUNC_DECL size_type row_size();
 
   65                 GLM_FUNC_DECL GLM_CONSTEXPR size_type 
length() 
const;
 
   73                 GLM_FUNC_DECL tmat3x4();
 
   74                 GLM_FUNC_DECL tmat3x4(tmat3x4 
const & m);
 
   76                 GLM_FUNC_DECL 
explicit tmat3x4(
 
   78                 GLM_FUNC_DECL 
explicit tmat3x4(
 
   79                         value_type 
const & s);
 
   80                 GLM_FUNC_DECL 
explicit tmat3x4(
 
   81                         value_type 
const & x0, value_type 
const & y0, value_type 
const & z0, value_type 
const & w0,
 
   82                         value_type 
const & x1, value_type 
const & y1, value_type 
const & z1, value_type 
const & w1,
 
   83                         value_type 
const & x2, value_type 
const & y2, value_type 
const & z2, value_type 
const & w2);
 
   84                 GLM_FUNC_DECL 
explicit tmat3x4(
 
   92                 GLM_FUNC_DECL 
explicit tmat3x4(
 
   97             typename X1, 
typename Y1, 
typename Z1, 
typename W1, 
 
   98             typename X2, 
typename Y2, 
typename Z2, 
typename W2, 
 
   99             typename X3, 
typename Y3, 
typename Z3, 
typename W3 
 
  101                 GLM_FUNC_DECL 
explicit tmat3x4(
 
  102             X1 
const & x1, Y1 
const & y1, Z1 
const & z1, W1 
const & w1, 
 
  103             X2 
const & x2, Y2 
const & y2, Z2 
const & z2, W2 
const & w2, 
 
  104             X3 
const & x3, Y3 
const & y3, Z3 
const & z3, W3 
const & w3);
 
  106                 template <
typename V1, 
typename V2, 
typename V3> 
 
  107                 GLM_FUNC_DECL 
explicit tmat3x4(
 
  108             tvec4<V1> 
const & v1, 
 
  109             tvec4<V2> 
const & v2,
 
  110             tvec4<V3> 
const & v3);
 
  113                 template <
typename U> 
 
  114                 GLM_FUNC_DECL 
explicit tmat3x4(tmat3x4<U> 
const & m);
 
  116                 GLM_FUNC_DECL 
explicit tmat3x4(tmat2x2<T> 
const & x);
 
  117                 GLM_FUNC_DECL 
explicit tmat3x4(tmat3x3<T> 
const & x);
 
  118                 GLM_FUNC_DECL 
explicit tmat3x4(tmat4x4<T> 
const & x);
 
  119                 GLM_FUNC_DECL 
explicit tmat3x4(tmat2x3<T> 
const & x);
 
  120                 GLM_FUNC_DECL 
explicit tmat3x4(tmat3x2<T> 
const & x);
 
  121                 GLM_FUNC_DECL 
explicit tmat3x4(tmat2x4<T> 
const & x);
 
  122                 GLM_FUNC_DECL 
explicit tmat3x4(tmat4x2<T> 
const & x);
 
  123                 GLM_FUNC_DECL 
explicit tmat3x4(tmat4x3<T> 
const & x);
 
  126                 col_type & operator[](size_type i);
 
  127                 col_type 
const & operator[](size_type i) 
const;
 
  130                 GLM_FUNC_DECL tmat3x4<T> & operator=  (tmat3x4<T> 
const & m);
 
  131                 template <
typename U> 
 
  132                 GLM_FUNC_DECL tmat3x4<T> & operator=  (tmat3x4<U> 
const & m);
 
  133                 template <
typename U> 
 
  134                 GLM_FUNC_DECL tmat3x4<T> & operator+= (U 
const & s);
 
  135                 template <
typename U> 
 
  136                 GLM_FUNC_DECL tmat3x4<T> & operator+= (tmat3x4<U> 
const & m);
 
  137                 template <
typename U> 
 
  138                 GLM_FUNC_DECL tmat3x4<T> & operator-= (U 
const & s);
 
  139                 template <
typename U> 
 
  140                 GLM_FUNC_DECL tmat3x4<T> & operator-= (tmat3x4<U> 
const & m);
 
  141                 template <
typename U> 
 
  142                 GLM_FUNC_DECL tmat3x4<T> & operator*= (U 
const & s);
 
  143                 template <
typename U> 
 
  144                 GLM_FUNC_DECL tmat3x4<T> & operator*= (tmat3x4<U> 
const & m);
 
  145                 template <
typename U> 
 
  146                 GLM_FUNC_DECL tmat3x4<T> & operator/= (U 
const & s);
 
  148                 GLM_FUNC_DECL tmat3x4<T> & operator++ ();
 
  149                 GLM_FUNC_DECL tmat3x4<T> & operator-- ();
 
  153         template <
typename T> 
 
  154         tmat3x4<T> operator+ (
 
  155                 tmat3x4<T> 
const & m, 
 
  156                 typename tmat3x4<T>::value_type 
const & s);
 
  158         template <
typename T> 
 
  159         tmat3x4<T> operator+ (
 
  160                 tmat3x4<T> 
const & m1, 
 
  161                 tmat3x4<T> 
const & m2);
 
  163         template <
typename T> 
 
  164         tmat3x4<T> operator- (
 
  165                 tmat3x4<T> 
const & m, 
 
  166                 typename tmat3x4<T>::value_type 
const & s);
 
  168         template <
typename T> 
 
  169         tmat3x4<T> operator- (
 
  170                 tmat3x4<T> 
const & m1, 
 
  171                 tmat3x4<T> 
const & m2);
 
  173         template <
typename T> 
 
  174         tmat3x4<T> operator* (
 
  175                 tmat3x4<T> 
const & m, 
 
  176                 typename tmat3x4<T>::value_type 
const & s);
 
  178         template <
typename T> 
 
  179         tmat3x4<T> operator* (
 
  180                 typename tmat3x4<T>::value_type 
const & s, 
 
  181                 tmat3x4<T> 
const & m);
 
  183         template <
typename T>
 
  184         typename tmat3x4<T>::col_type operator* (
 
  185                 tmat3x4<T> 
const & m, 
 
  186                 typename tmat3x4<T>::row_type 
const & v);
 
  188         template <
typename T> 
 
  189         typename tmat3x4<T>::row_type operator* (
 
  190                 typename tmat3x4<T>::col_type 
const & v, 
 
  191                 tmat3x4<T> 
const & m);
 
  193         template <
typename T>
 
  194         tmat4x4<T> operator* (
 
  195                 tmat3x4<T> 
const & m1, 
 
  196                 tmat4x3<T> 
const & m2);
 
  198         template <
typename T>
 
  199         tmat2x4<T> operator* (
 
  200                 tmat3x4<T> 
const & m1, 
 
  201                 tmat2x3<T> 
const & m2);
 
  203         template <
typename T>
 
  204         tmat3x4<T> operator* (
 
  205                 tmat3x4<T> 
const & m1, 
 
  206                 tmat3x3<T> 
const & m2);
 
  208         template <
typename T> 
 
  209         tmat3x4<T> operator/ (
 
  210                 tmat3x4<T> 
const & m, 
 
  211                 typename tmat3x4<T>::value_type 
const & s);
 
  213         template <
typename T> 
 
  214         tmat3x4<T> operator/ (
 
  215                 typename tmat3x4<T>::value_type 
const & s, 
 
  216                 tmat3x4<T> 
const & m);
 
  219         template <
typename T> 
 
  220         tmat3x4<T> 
const operator-  (
 
  221                 tmat3x4<T> 
const & m);
 
  223         template <
typename T> 
 
  224         tmat3x4<T> 
const operator-- (
 
  225                 tmat3x4<T> 
const & m, 
 
  228         template <
typename T> 
 
  229         tmat3x4<T> 
const operator++ (
 
  230                 tmat3x4<T> 
const & m, 
 
  262 #ifndef GLM_EXTERNAL_TEMPLATE 
  263 #include "type_mat3x4.inl" 
  266 #endif //glm_core_type_mat3x4