43         template <
typename T, precision P = defaultp>
 
   46                 typedef tvec4<T, P> col_type;
 
   47                 typedef tvec4<T, P> row_type;
 
   48                 typedef tmat4x4<T, P> type;
 
   49                 typedef tmat4x4<T, P> transpose_type;
 
   52                 template <
typename U, precision Q>
 
   53                 friend tvec4<U, Q> operator/(tmat4x4<U, Q> 
const & m, tvec4<U, Q> 
const & v);
 
   54                 template <
typename U, precision Q>
 
   55                 friend tvec4<U, Q> operator/(tvec4<U, Q> 
const & v, tmat4x4<U, Q> 
const & m);
 
   64                 GLM_FUNC_DECL tmat4x4();
 
   65                 template <precision Q>
 
   66                 GLM_FUNC_DECL tmat4x4(tmat4x4<T, Q> 
const & m);
 
   68                 GLM_FUNC_DECL 
explicit tmat4x4(ctor);
 
   69                 GLM_FUNC_DECL 
explicit tmat4x4(T 
const & x);
 
   70                 GLM_FUNC_DECL tmat4x4(
 
   71                         T 
const & x0, T 
const & y0, T 
const & z0, T 
const & w0,
 
   72                         T 
const & x1, T 
const & y1, T 
const & z1, T 
const & w1,
 
   73                         T 
const & x2, T 
const & y2, T 
const & z2, T 
const & w2,
 
   74                         T 
const & x3, T 
const & y3, T 
const & z3, T 
const & w3);
 
   75                 GLM_FUNC_DECL tmat4x4(
 
   85                         typename X1, 
typename Y1, 
typename Z1, 
typename W1,
 
   86                         typename X2, 
typename Y2, 
typename Z2, 
typename W2,
 
   87                         typename X3, 
typename Y3, 
typename Z3, 
typename W3,
 
   88                         typename X4, 
typename Y4, 
typename Z4, 
typename W4>
 
   89                 GLM_FUNC_DECL tmat4x4(
 
   90                         X1 
const & x1, Y1 
const & y1, Z1 
const & z1, W1 
const & w1,
 
   91                         X2 
const & x2, Y2 
const & y2, Z2 
const & z2, W2 
const & w2,
 
   92                         X3 
const & x3, Y3 
const & y3, Z3 
const & z3, W3 
const & w3,
 
   93                         X4 
const & x4, Y4 
const & y4, Z4 
const & z4, W4 
const & w4);
 
   95                 template <
typename V1, 
typename V2, 
typename V3, 
typename V4>
 
   96                 GLM_FUNC_DECL tmat4x4(
 
   97                         tvec4<V1, P> 
const & v1,
 
   98                         tvec4<V2, P> 
const & v2,
 
   99                         tvec4<V3, P> 
const & v3,
 
  100                         tvec4<V4, P> 
const & v4);
 
  105 #               ifdef GLM_FORCE_EXPLICIT_CTOR 
  106                         template <
typename U, precision Q>
 
  107                         GLM_FUNC_DECL 
explicit tmat4x4(tmat4x4<U, Q> 
const & m);
 
  109                         template <
typename U, precision Q>
 
  110                         GLM_FUNC_DECL tmat4x4(tmat4x4<U, Q> 
const & m);
 
  113                 GLM_FUNC_DECL 
explicit tmat4x4(tmat2x2<T, P> 
const & x);
 
  114                 GLM_FUNC_DECL 
explicit tmat4x4(tmat3x3<T, P> 
const & x);
 
  115                 GLM_FUNC_DECL 
explicit tmat4x4(tmat2x3<T, P> 
const & x);
 
  116                 GLM_FUNC_DECL 
explicit tmat4x4(tmat3x2<T, P> 
const & x);
 
  117                 GLM_FUNC_DECL 
explicit tmat4x4(tmat2x4<T, P> 
const & x);
 
  118                 GLM_FUNC_DECL 
explicit tmat4x4(tmat4x2<T, P> 
const & x);
 
  119                 GLM_FUNC_DECL 
explicit tmat4x4(tmat3x4<T, P> 
const & x);
 
  120                 GLM_FUNC_DECL 
explicit tmat4x4(tmat4x3<T, P> 
const & x);
 
  125 #               ifdef GLM_FORCE_SIZE_FUNC 
  126                         typedef size_t size_type;
 
  127                         GLM_FUNC_DECL GLM_CONSTEXPR 
size_t size() 
const;
 
  129                         GLM_FUNC_DECL col_type & operator[](size_type i);
 
  130                         GLM_FUNC_DECL col_type 
const & operator[](size_type i) 
const;
 
  132                         typedef length_t length_type;
 
  133                         GLM_FUNC_DECL GLM_CONSTEXPR length_type 
length() 
const;
 
  135                         GLM_FUNC_DECL col_type & operator[](length_type i);
 
  136                         GLM_FUNC_DECL col_type 
const & operator[](length_type i) 
const;
 
  137 #               endif//GLM_FORCE_SIZE_FUNC 
  142                 template <
typename U>
 
  143                 GLM_FUNC_DECL tmat4x4<T, P> & operator=(tmat4x4<U, P> 
const & m);
 
  144                 template <
typename U>
 
  145                 GLM_FUNC_DECL tmat4x4<T, P> & operator+=(U s);
 
  146                 template <
typename U>
 
  147                 GLM_FUNC_DECL tmat4x4<T, P> & operator+=(tmat4x4<U, P> 
const & m);
 
  148                 template <
typename U>
 
  149                 GLM_FUNC_DECL tmat4x4<T, P> & operator-=(U s);
 
  150                 template <
typename U>
 
  151                 GLM_FUNC_DECL tmat4x4<T, P> & operator-=(tmat4x4<U, P> 
const & m);
 
  152                 template <
typename U>
 
  153                 GLM_FUNC_DECL tmat4x4<T, P> & operator*=(U s);
 
  154                 template <
typename U>
 
  155                 GLM_FUNC_DECL tmat4x4<T, P> & operator*=(tmat4x4<U, P> 
const & m);
 
  156                 template <
typename U>
 
  157                 GLM_FUNC_DECL tmat4x4<T, P> & operator/=(U s);
 
  158                 template <
typename U>
 
  159                 GLM_FUNC_DECL tmat4x4<T, P> & operator/=(tmat4x4<U, P> 
const & m);
 
  164                 GLM_FUNC_DECL tmat4x4<T, P> & operator++();
 
  165                 GLM_FUNC_DECL tmat4x4<T, P> & operator--();
 
  166                 GLM_FUNC_DECL tmat4x4<T, P> operator++(
int);
 
  167                 GLM_FUNC_DECL tmat4x4<T, P> operator--(
int);
 
  171         template <
typename T, precision P>
 
  172         GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> 
const & m, T 
const & s);
 
  174         template <
typename T, precision P>
 
  175         GLM_FUNC_DECL tmat4x4<T, P> operator+(T 
const & s, tmat4x4<T, P> 
const & m);
 
  177         template <
typename T, precision P> 
 
  178         GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> 
const & m1, tmat4x4<T, P> 
const & m2);
 
  180         template <
typename T, precision P> 
 
  181         GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> 
const & m, T 
const & s);
 
  183         template <
typename T, precision P> 
 
  184         GLM_FUNC_DECL tmat4x4<T, P> operator-(T 
const & s, tmat4x4<T, P> 
const & m);
 
  186         template <
typename T, precision P>
 
  187         GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> 
const & m1, tmat4x4<T, P> 
const & m2);
 
  189         template <
typename T, precision P>
 
  190         GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> 
const & m, T 
const & s);
 
  192         template <
typename T, precision P>
 
  193         GLM_FUNC_DECL tmat4x4<T, P> operator*(T 
const & s, tmat4x4<T, P> 
const & m);
 
  195         template <
typename T, precision P>
 
  196         GLM_FUNC_DECL 
typename tmat4x4<T, P>::col_type operator*(tmat4x4<T, P> 
const & m, 
typename tmat4x4<T, P>::row_type 
const & v);
 
  198         template <
typename T, precision P>
 
  199         GLM_FUNC_DECL 
typename tmat4x4<T, P>::row_type operator*(
typename tmat4x4<T, P>::col_type 
const & v, tmat4x4<T, P> 
const & m);
 
  201         template <
typename T, precision P>
 
  202         GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat4x4<T, P> 
const & m1, tmat2x4<T, P> 
const & m2);
 
  204         template <
typename T, precision P>
 
  205         GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat4x4<T, P> 
const & m1, tmat3x4<T, P> 
const & m2);
 
  207         template <
typename T, precision P>
 
  208         GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> 
const & m1, tmat4x4<T, P> 
const & m2);
 
  210         template <
typename T, precision P>
 
  211         GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> 
const & m, T 
const & s);
 
  213         template <
typename T, precision P>
 
  214         GLM_FUNC_DECL tmat4x4<T, P> operator/(T 
const & s, tmat4x4<T, P> 
const & m);
 
  216         template <
typename T, precision P>
 
  217         GLM_FUNC_DECL 
typename tmat4x4<T, P>::col_type operator/(tmat4x4<T, P> 
const & m, 
typename tmat4x4<T, P>::row_type 
const & v);
 
  219         template <
typename T, precision P>
 
  220         GLM_FUNC_DECL 
typename tmat4x4<T, P>::row_type operator/(
typename tmat4x4<T, P>::col_type & v, tmat4x4<T, P> 
const & m);
 
  222         template <
typename T, precision P>
 
  223         GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> 
const & m1, tmat4x4<T, P> 
const & m2);
 
  226         template <
typename T, precision P>
 
  227         GLM_FUNC_DECL tmat4x4<T, P> 
const operator-(tmat4x4<T, P> 
const & m);
 
  230 #ifndef GLM_EXTERNAL_TEMPLATE 
  231 #include "type_mat4x4.inl" 
  232 #endif//GLM_EXTERNAL_TEMPLATE 
OpenGL Mathematics (glm.g-truc.net) 
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x). 
OpenGL Mathematics (glm.g-truc.net)