29 #ifndef glm_core_type_mat4x3 
   30 #define glm_core_type_mat4x3 
   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 tvec3<T> col_type;
 
   58                 typedef tvec4<T> row_type;
 
   59                 typedef tmat4x3<T> type;
 
   60                 typedef tmat3x4<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 tmat4x3();
 
   74                 GLM_FUNC_DECL tmat4x3(tmat4x3 
const & m);
 
   76                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   78                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   79                         value_type 
const & x);
 
   80                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   81                         value_type 
const & x0, value_type 
const & y0, value_type 
const & z0,
 
   82                         value_type 
const & x1, value_type 
const & y1, value_type 
const & z1,
 
   83                         value_type 
const & x2, value_type 
const & y2, value_type 
const & z2,
 
   84                         value_type 
const & x3, value_type 
const & y3, value_type 
const & z3);
 
   85                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   94                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   98                         typename X1, 
typename Y1, 
typename Z1, 
 
   99                         typename X2, 
typename Y2, 
typename Z2, 
 
  100                         typename X3, 
typename Y3, 
typename Z3, 
 
  101                         typename X4, 
typename Y4, 
typename Z4> 
 
  102                 GLM_FUNC_DECL 
explicit tmat4x3(
 
  103                         X1 
const & x1, Y1 
const & y1, Z1 
const & z1, 
 
  104                         X2 
const & x2, Y2 
const & y2, Z2 
const & z2, 
 
  105                         X3 
const & x3, Y3 
const & y3, Z3 
const & z3, 
 
  106                         X4 
const & x4, Y4 
const & y4, Z4 
const & z4);
 
  108                 template <
typename V1, 
typename V2, 
typename V3, 
typename V4> 
 
  109                 GLM_FUNC_DECL 
explicit tmat4x3(
 
  110                         tvec3<V1> 
const & v1, 
 
  111                         tvec3<V2> 
const & v2,
 
  112                         tvec3<V3> 
const & v3,
 
  113                         tvec3<V4> 
const & v4);
 
  116                 template <
typename U> 
 
  117                 GLM_FUNC_DECL 
explicit tmat4x3(tmat4x3<U> 
const & m);
 
  119                 GLM_FUNC_DECL 
explicit tmat4x3(tmat2x2<T> 
const & x);
 
  120                 GLM_FUNC_DECL 
explicit tmat4x3(tmat3x3<T> 
const & x);
 
  121                 GLM_FUNC_DECL 
explicit tmat4x3(tmat4x4<T> 
const & x);
 
  122                 GLM_FUNC_DECL 
explicit tmat4x3(tmat2x3<T> 
const & x);
 
  123                 GLM_FUNC_DECL 
explicit tmat4x3(tmat3x2<T> 
const & x);
 
  124                 GLM_FUNC_DECL 
explicit tmat4x3(tmat2x4<T> 
const & x);
 
  125                 GLM_FUNC_DECL 
explicit tmat4x3(tmat4x2<T> 
const & x);
 
  126                 GLM_FUNC_DECL 
explicit tmat4x3(tmat3x4<T> 
const & x);
 
  129                 col_type & operator[](size_type i);
 
  130                 col_type 
const & operator[](size_type i) 
const;
 
  133                 GLM_FUNC_DECL tmat4x3<T> & operator=  (tmat4x3<T> 
const & m);
 
  134                 template <
typename U> 
 
  135                 GLM_FUNC_DECL tmat4x3<T> & operator=  (tmat4x3<U> 
const & m);
 
  136                 template <
typename U> 
 
  137                 GLM_FUNC_DECL tmat4x3<T> & operator+= (U 
const & s);
 
  138                 template <
typename U> 
 
  139                 GLM_FUNC_DECL tmat4x3<T> & operator+= (tmat4x3<U> 
const & m);
 
  140                 template <
typename U> 
 
  141                 GLM_FUNC_DECL tmat4x3<T> & operator-= (U 
const & s);
 
  142                 template <
typename U> 
 
  143                 GLM_FUNC_DECL tmat4x3<T> & operator-= (tmat4x3<U> 
const & m);
 
  144                 template <
typename U> 
 
  145                 GLM_FUNC_DECL tmat4x3<T> & operator*= (U 
const & s);
 
  146                 template <
typename U> 
 
  147                 GLM_FUNC_DECL tmat4x3<T> & operator*= (tmat4x3<U> 
const & m);
 
  148                 template <
typename U> 
 
  149                 GLM_FUNC_DECL tmat4x3<T> & operator/= (U 
const & s);
 
  151                 GLM_FUNC_DECL tmat4x3<T> & operator++ ();
 
  152                 GLM_FUNC_DECL tmat4x3<T> & operator-- ();
 
  156         template <
typename T> 
 
  157         tmat4x3<T> operator+ (
 
  158                 tmat4x3<T> 
const & m, 
 
  159                 typename tmat4x3<T>::value_type 
const & s);
 
  161         template <
typename T> 
 
  162         tmat4x3<T> operator+ (
 
  163                 tmat4x3<T> 
const & m1, 
 
  164                 tmat4x3<T> 
const & m2);
 
  166         template <
typename T> 
 
  167         tmat4x3<T> operator- (
 
  168                 tmat4x3<T> 
const & m, 
 
  169                 typename tmat4x3<T>::value_type 
const & s);
 
  171         template <
typename T> 
 
  172         tmat4x3<T> operator- (
 
  173                 tmat4x3<T> 
const & m1, 
 
  174                 tmat4x3<T> 
const & m2);
 
  176         template <
typename T> 
 
  177         tmat4x3<T> operator* (
 
  178                 tmat4x3<T> 
const & m, 
 
  179                 typename tmat4x3<T>::value_type 
const & s);
 
  181         template <
typename T> 
 
  182         tmat4x3<T> operator* (
 
  183                 typename tmat4x3<T>::value_type 
const & s, 
 
  184                 tmat4x3<T> 
const & m);
 
  186         template <
typename T>
 
  187         typename tmat4x3<T>::col_type operator* (
 
  188                 tmat4x3<T> 
const & m, 
 
  189                 typename tmat4x3<T>::row_type 
const & v);
 
  191         template <
typename T> 
 
  192         typename tmat4x3<T>::row_type operator* (
 
  193                 typename tmat4x3<T>::col_type 
const & v, 
 
  194                 tmat4x3<T> 
const & m);
 
  196         template <
typename T> 
 
  197         tmat2x3<T> operator* (
 
  198                 tmat4x3<T> 
const & m1, 
 
  199                 tmat2x4<T> 
const & m2);
 
  201         template <
typename T> 
 
  202         tmat3x3<T> operator* (
 
  203                 tmat4x3<T> 
const & m1, 
 
  204                 tmat3x4<T> 
const & m2);
 
  206         template <
typename T>
 
  207         tmat4x3<T> operator* (
 
  208                 tmat4x3<T> 
const & m1, 
 
  209                 tmat4x4<T> 
const & m2);
 
  211         template <
typename T> 
 
  212         tmat4x3<T> operator/ (
 
  213                 tmat4x3<T> 
const & m, 
 
  214                 typename tmat4x3<T>::value_type 
const & s);
 
  216         template <
typename T> 
 
  217         tmat4x3<T> operator/ (
 
  218                 typename tmat4x3<T>::value_type 
const & s, 
 
  219                 tmat4x3<T> 
const & m);
 
  222         template <
typename T> 
 
  223         tmat4x3<T> 
const operator- (
 
  224                 tmat4x3<T> 
const & m);
 
  226         template <
typename T> 
 
  227         tmat4x3<T> 
const operator-- (
 
  228                 tmat4x3<T> 
const & m, 
 
  231         template <
typename T> 
 
  232         tmat4x3<T> 
const operator++ (
 
  233                 tmat4x3<T> 
const & m, 
 
  264 #ifndef GLM_EXTERNAL_TEMPLATE 
  265 #include "type_mat4x3.inl" 
  266 #endif //GLM_EXTERNAL_TEMPLATE 
  268 #endif//glm_core_type_mat4x3