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 #               ifdef GLM_META_PROG_HELPERS 
   53                         static GLM_RELAXED_CONSTEXPR length_t components = 4;
 
   54                         static GLM_RELAXED_CONSTEXPR length_t cols = 4;
 
   55                         static GLM_RELAXED_CONSTEXPR length_t rows = 4;
 
   56                         static GLM_RELAXED_CONSTEXPR precision prec = P;
 
   57 #               endif//GLM_META_PROG_HELPERS 
   59                 template <
typename U, precision Q>
 
   60                 friend tvec4<U, Q> operator/(tmat4x4<U, Q> 
const & m, tvec4<U, Q> 
const & v);
 
   61                 template <
typename U, precision Q>
 
   62                 friend tvec4<U, Q> operator/(tvec4<U, Q> 
const & v, tmat4x4<U, Q> 
const & m);
 
   70                 GLM_FUNC_DECL tmat4x4() GLM_DEFAULT_CTOR;
 
   71                 GLM_FUNC_DECL tmat4x4(tmat4x4<T, P> const & m) GLM_DEFAULT;
 
   72                 template <precision Q>
 
   73                 GLM_FUNC_DECL tmat4x4(tmat4x4<T, Q> const & m);
 
   75                 GLM_FUNC_DECL explicit tmat4x4(ctor);
 
   76                 GLM_FUNC_DECL explicit tmat4x4(T const & x);
 
   77                 GLM_FUNC_DECL tmat4x4(
 
   78                         T const & x0, T const & y0, T const & z0, T const & w0,
 
   79                         T const & x1, T const & y1, T const & z1, T const & w1,
 
   80                         T const & x2, T const & y2, T const & z2, T const & w2,
 
   81                         T const & x3, T const & y3, T const & z3, T const & w3);
 
   82                 GLM_FUNC_DECL tmat4x4(
 
   91                         typename X1, typename Y1, typename Z1, typename W1,
 
   92                         typename X2, typename Y2, typename Z2, typename W2,
 
   93                         typename X3, typename Y3, typename Z3, typename W3,
 
   94                         typename X4, typename Y4, typename Z4, typename W4>
 
   95                 GLM_FUNC_DECL tmat4x4(
 
   96                         X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
 
   97                         X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
 
   98                         X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3,
 
   99                         X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);
 
  101                 template <typename V1, typename V2, typename V3, typename V4>
 
  102                 GLM_FUNC_DECL tmat4x4(
 
  103                         tvec4<V1, P> const & v1,
 
  104                         tvec4<V2, P> const & v2,
 
  105                         tvec4<V3, P> const & v3,
 
  106                         tvec4<V4, P> const & v4);
 
  110                 template <typename U, precision Q>
 
  111                 GLM_FUNC_DECL GLM_EXPLICIT 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);
 
  124 #               ifdef GLM_FORCE_SIZE_FUNC 
  125                         typedef size_t size_type;
 
  126                         GLM_FUNC_DECL GLM_CONSTEXPR 
size_t size() 
const;
 
  128                         GLM_FUNC_DECL col_type & operator[](size_type i);
 
  129                         GLM_FUNC_DECL col_type 
const & operator[](size_type i) 
const;
 
  131                         typedef length_t length_type;
 
  132                         GLM_FUNC_DECL GLM_CONSTEXPR length_type 
length() 
const;
 
  134                         GLM_FUNC_DECL col_type & operator[](length_type i);
 
  135                         GLM_FUNC_DECL col_type 
const & operator[](length_type i) 
const;
 
  136 #               endif//GLM_FORCE_SIZE_FUNC 
  140                 GLM_FUNC_DECL tmat4x4<T, P> & operator=(tmat4x4<T, P> 
const & m) GLM_DEFAULT;
 
  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);
 
  163                 GLM_FUNC_DECL tmat4x4<T, P> & operator++();
 
  164                 GLM_FUNC_DECL tmat4x4<T, P> & operator--();
 
  165                 GLM_FUNC_DECL tmat4x4<T, P> operator++(
int);
 
  166                 GLM_FUNC_DECL tmat4x4<T, P> operator--(
int);
 
  171         template <
typename T, precision P>
 
  172         GLM_FUNC_DECL tmat4x4<T, P> 
const operator-(tmat4x4<T, P> 
const & m);
 
  176         template <
typename T, precision P>
 
  177         GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> 
const & m, T 
const & s);
 
  179         template <
typename T, precision P>
 
  180         GLM_FUNC_DECL tmat4x4<T, P> operator+(T 
const & s, tmat4x4<T, P> 
const & m);
 
  182         template <
typename T, precision P>
 
  183         GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> 
const & m1, tmat4x4<T, P> 
const & m2);
 
  185         template <
typename T, precision P>
 
  186         GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> 
const & m, T 
const & s);
 
  188         template <
typename T, precision P>
 
  189         GLM_FUNC_DECL tmat4x4<T, P> operator-(T 
const & s, tmat4x4<T, P> 
const & m);
 
  191         template <
typename T, precision P>
 
  192         GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> 
const & m1, tmat4x4<T, P> 
const & m2);
 
  194         template <
typename T, precision P>
 
  195         GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> 
const & m, T 
const & s);
 
  197         template <
typename T, precision P>
 
  198         GLM_FUNC_DECL tmat4x4<T, P> operator*(T 
const & s, tmat4x4<T, P> 
const & m);
 
  200         template <
typename T, precision P>
 
  201         GLM_FUNC_DECL 
typename tmat4x4<T, P>::col_type operator*(tmat4x4<T, P> 
const & m, 
typename tmat4x4<T, P>::row_type 
const & v);
 
  203         template <
typename T, precision P>
 
  204         GLM_FUNC_DECL 
typename tmat4x4<T, P>::row_type operator*(
typename tmat4x4<T, P>::col_type 
const & v, tmat4x4<T, P> 
const & m);
 
  206         template <
typename T, precision P>
 
  207         GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat4x4<T, P> 
const & m1, tmat2x4<T, P> 
const & m2);
 
  209         template <
typename T, precision P>
 
  210         GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat4x4<T, P> 
const & m1, tmat3x4<T, P> 
const & m2);
 
  212         template <
typename T, precision P>
 
  213         GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> 
const & m1, tmat4x4<T, P> 
const & m2);
 
  215         template <
typename T, precision P>
 
  216         GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> 
const & m, T 
const & s);
 
  218         template <
typename T, precision P>
 
  219         GLM_FUNC_DECL tmat4x4<T, P> operator/(T 
const & s, tmat4x4<T, P> 
const & m);
 
  221         template <
typename T, precision P>
 
  222         GLM_FUNC_DECL 
typename tmat4x4<T, P>::col_type operator/(tmat4x4<T, P> 
const & m, 
typename tmat4x4<T, P>::row_type 
const & v);
 
  224         template <
typename T, precision P>
 
  225         GLM_FUNC_DECL 
typename tmat4x4<T, P>::row_type operator/(
typename tmat4x4<T, P>::col_type & v, tmat4x4<T, P> 
const & m);
 
  227         template <
typename T, precision P>
 
  228         GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> 
const & m1, tmat4x4<T, P> 
const & m2);
 
  232         template <
typename T, precision P>
 
  233         GLM_FUNC_DECL 
bool operator==(tmat4x4<T, P> 
const & m1, tmat4x4<T, P> 
const & m2);
 
  235         template <
typename T, precision P>
 
  236         GLM_FUNC_DECL 
bool operator!=(tmat4x4<T, P> 
const & m1, tmat4x4<T, P> 
const & m2);
 
  239 #ifndef GLM_EXTERNAL_TEMPLATE 
  240 #include "type_mat4x4.inl" 
  241 #endif//GLM_EXTERNAL_TEMPLATE 
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) 
OpenGL Mathematics (glm.g-truc.net)