29 #ifndef glm_core_type_mat4x3 
   30 #define glm_core_type_mat4x3 
   33 #include "type_vec3.hpp" 
   34 #include "type_vec4.hpp" 
   35 #include "type_mat.hpp" 
   41         template <
typename T, precision P>
 
   46                 typedef std::size_t size_type;
 
   47                 typedef tvec3<T, P> col_type;
 
   48                 typedef tvec4<T, P> row_type;
 
   49                 typedef tmat4x3<T, P> type;
 
   50                 typedef tmat3x4<T, P> transpose_type;
 
   52                 GLM_FUNC_DECL GLM_CONSTEXPR length_t 
length() 
const;
 
   60                 GLM_FUNC_DECL tmat4x3();
 
   61                 GLM_FUNC_DECL tmat4x3(tmat4x3<T, P> 
const & m);
 
   62                 template <precision Q>
 
   63                 GLM_FUNC_DECL tmat4x3(tmat4x3<T, Q> 
const & m);
 
   65                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   67                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   69                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   70                         T 
const & x0, T 
const & y0, T 
const & z0,
 
   71                         T 
const & x1, T 
const & y1, T 
const & z1,
 
   72                         T 
const & x2, T 
const & y2, T 
const & z2,
 
   73                         T 
const & x3, T 
const & y3, T 
const & z3);
 
   74                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   80 #if(GLM_HAS_INITIALIZER_LISTS) 
   82                 GLM_FUNC_DECL tmat4x3(std::initializer_list<U> m);
 
   84                 GLM_FUNC_DECL tmat4x3(std::initializer_list<tvec3<T, P> > m);
 
   85 #endif//GLM_HAS_INITIALIZER_LISTS 
   90                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   94                         typename X1, 
typename Y1, 
typename Z1,
 
   95                         typename X2, 
typename Y2, 
typename Z2,
 
   96                         typename X3, 
typename Y3, 
typename Z3,
 
   97                         typename X4, 
typename Y4, 
typename Z4>
 
   98                 GLM_FUNC_DECL 
explicit tmat4x3(
 
   99                         X1 
const & x1, Y1 
const & y1, Z1 
const & z1,
 
  100                         X2 
const & x2, Y2 
const & y2, Z2 
const & z2,
 
  101                         X3 
const & x3, Y3 
const & y3, Z3 
const & z3,
 
  102                         X4 
const & x4, Y4 
const & y4, Z4 
const & z4);
 
  104                 template <
typename V1, 
typename V2, 
typename V3, 
typename V4>
 
  105                 GLM_FUNC_DECL 
explicit tmat4x3(
 
  106                         tvec3<V1, P> 
const & v1,
 
  107                         tvec3<V2, P> 
const & v2,
 
  108                         tvec3<V3, P> 
const & v3,
 
  109                         tvec3<V4, P> 
const & v4);
 
  112                 template <
typename U, precision Q>
 
  113                 GLM_FUNC_DECL 
explicit tmat4x3(tmat4x3<U, Q> 
const & m);
 
  115                 GLM_FUNC_DECL 
explicit tmat4x3(tmat2x2<T, P> 
const & x);
 
  116                 GLM_FUNC_DECL 
explicit tmat4x3(tmat3x3<T, P> 
const & x);
 
  117                 GLM_FUNC_DECL 
explicit tmat4x3(tmat4x4<T, P> 
const & x);
 
  118                 GLM_FUNC_DECL 
explicit tmat4x3(tmat2x3<T, P> 
const & x);
 
  119                 GLM_FUNC_DECL 
explicit tmat4x3(tmat3x2<T, P> 
const & x);
 
  120                 GLM_FUNC_DECL 
explicit tmat4x3(tmat2x4<T, P> 
const & x);
 
  121                 GLM_FUNC_DECL 
explicit tmat4x3(tmat4x2<T, P> 
const & x);
 
  122                 GLM_FUNC_DECL 
explicit tmat4x3(tmat3x4<T, P> 
const & x);
 
  125                 GLM_FUNC_DECL col_type & operator[](size_type i);
 
  126                 GLM_FUNC_DECL col_type 
const & operator[](size_type i) 
const;
 
  129                 GLM_FUNC_DECL tmat4x3<T, P> & operator=  (tmat4x3<T, P> 
const & m);
 
  130                 template <
typename U>
 
  131                 GLM_FUNC_DECL tmat4x3<T, P> & operator=  (tmat4x3<U, P> 
const & m);
 
  132                 template <
typename U>
 
  133                 GLM_FUNC_DECL tmat4x3<T, P> & operator+= (U s);
 
  134                 template <
typename U>
 
  135                 GLM_FUNC_DECL tmat4x3<T, P> & operator+= (tmat4x3<U, P> 
const & m);
 
  136                 template <
typename U>
 
  137                 GLM_FUNC_DECL tmat4x3<T, P> & operator-= (U s);
 
  138                 template <
typename U>
 
  139                 GLM_FUNC_DECL tmat4x3<T, P> & operator-= (tmat4x3<U, P> 
const & m);
 
  140                 template <
typename U>
 
  141                 GLM_FUNC_DECL tmat4x3<T, P> & operator*= (U s);
 
  142                 template <
typename U>
 
  143                 GLM_FUNC_DECL tmat4x3<T, P> & operator/= (U s);
 
  148                 GLM_FUNC_DECL tmat4x3<T, P> & operator++ ();
 
  149                 GLM_FUNC_DECL tmat4x3<T, P> & operator-- ();
 
  150                 GLM_FUNC_DECL tmat4x3<T, P> operator++(
int);
 
  151                 GLM_FUNC_DECL tmat4x3<T, P> operator--(
int);
 
  155         template <
typename T, precision P>
 
  156         GLM_FUNC_DECL tmat4x3<T, P> operator+ (
 
  157                 tmat4x3<T, P> 
const & m,
 
  160         template <
typename T, precision P>
 
  161         GLM_FUNC_DECL tmat4x3<T, P> operator+ (
 
  162                 tmat4x3<T, P> 
const & m1,
 
  163                 tmat4x3<T, P> 
const & m2);
 
  165         template <
typename T, precision P>
 
  166         GLM_FUNC_DECL tmat4x3<T, P> operator- (
 
  167                 tmat4x3<T, P> 
const & m,
 
  170         template <
typename T, precision P>
 
  171         GLM_FUNC_DECL tmat4x3<T, P> operator- (
 
  172                 tmat4x3<T, P> 
const & m1,
 
  173                 tmat4x3<T, P> 
const & m2);
 
  175         template <
typename T, precision P>
 
  176         GLM_FUNC_DECL tmat4x3<T, P> operator* (
 
  177                 tmat4x3<T, P> 
const & m,
 
  180         template <
typename T, precision P>
 
  181         GLM_FUNC_DECL tmat4x3<T, P> operator* (
 
  183                 tmat4x3<T, P> 
const & m);
 
  185         template <
typename T, precision P>
 
  186         GLM_FUNC_DECL 
typename tmat4x3<T, P>::col_type operator* (
 
  187                 tmat4x3<T, P> 
const & m,
 
  188                 typename tmat4x3<T, P>::row_type 
const & v);
 
  190         template <
typename T, precision P>
 
  191         GLM_FUNC_DECL 
typename tmat4x3<T, P>::row_type operator* (
 
  192                 typename tmat4x3<T, P>::col_type 
const & v,
 
  193                 tmat4x3<T, P> 
const & m);
 
  195         template <
typename T, precision P>
 
  196         GLM_FUNC_DECL tmat2x3<T, P> operator* (
 
  197                 tmat4x3<T, P> 
const & m1,
 
  198                 tmat2x4<T, P> 
const & m2);
 
  200         template <
typename T, precision P>
 
  201         GLM_FUNC_DECL tmat3x3<T, P> operator* (
 
  202                 tmat4x3<T, P> 
const & m1,
 
  203                 tmat3x4<T, P> 
const & m2);
 
  205         template <
typename T, precision P>
 
  206         GLM_FUNC_DECL tmat4x3<T, P> operator* (
 
  207                 tmat4x3<T, P> 
const & m1,
 
  208                 tmat4x4<T, P> 
const & m2);
 
  210         template <
typename T, precision P>
 
  211         GLM_FUNC_DECL tmat4x3<T, P> operator/ (
 
  212                 tmat4x3<T, P> 
const & m,
 
  215         template <
typename T, precision P>
 
  216         GLM_FUNC_DECL tmat4x3<T, P> operator/ (
 
  218                 tmat4x3<T, P> 
const & m);
 
  221         template <
typename T, precision P>
 
  222         GLM_FUNC_DECL tmat4x3<T, P> 
const operator- (
 
  223                 tmat4x3<T, P> 
const & m);
 
  228 #ifndef GLM_EXTERNAL_TEMPLATE 
  229 #include "type_mat4x3.inl" 
  230 #endif //GLM_EXTERNAL_TEMPLATE 
  232 #endif//glm_core_type_mat4x3 
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).