38 #ifndef GLM_GTX_simd_mat4 
   39 #define GLM_GTX_simd_mat4 GLM_VERSION 
   44 #if(GLM_ARCH != GLM_ARCH_PURE) 
   46 #if(GLM_ARCH & GLM_ARCH_SSE2) 
   47 #   include "../core/intrinsic_matrix.hpp" 
   48 #   include "../gtx/simd_vec4.hpp" 
   50 #   error "GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics" 
   53 #if(defined(GLM_MESSAGES) && !defined(glm_ext)) 
   54 #   pragma message("GLM: GLM_GTX_simd_mat4 extension included") 
   66         typedef float value_type;
 
   67         typedef fvec4SIMD col_type;
 
   68         typedef fvec4SIMD row_type;
 
   69         typedef std::size_t size_type;
 
   70         static size_type value_size();
 
   71         static size_type col_size();
 
   72         static size_type row_size();
 
   73         static bool is_matrix();
 
   81         explicit fmat4x4SIMD(
float const & s);
 
   83             float const & x0, 
float const & y0, 
float const & z0, 
float const & w0,
 
   84             float const & x1, 
float const & y1, 
float const & z1, 
float const & w1,
 
   85             float const & x2, 
float const & y2, 
float const & z2, 
float const & w2,
 
   86             float const & x3, 
float const & y3, 
float const & z3, 
float const & w3);
 
   91             fvec4SIMD 
const & v3);
 
   93             tmat4x4<float> 
const & m);
 
  111         fvec4SIMD & operator[](size_type i);
 
  112         fvec4SIMD 
const & operator[](size_type i) 
const;
 
  115         fmat4x4SIMD & operator= (fmat4x4SIMD 
const & m);
 
  116         fmat4x4SIMD & operator+= (
float const & s);
 
  117         fmat4x4SIMD & operator+= (fmat4x4SIMD 
const & m);
 
  118         fmat4x4SIMD & operator-= (
float const & s);
 
  119         fmat4x4SIMD & operator-= (fmat4x4SIMD 
const & m);
 
  120         fmat4x4SIMD & operator*= (
float const & s);
 
  121         fmat4x4SIMD & operator*= (fmat4x4SIMD 
const & m);
 
  122         fmat4x4SIMD & operator/= (
float const & s);
 
  123         fmat4x4SIMD & operator/= (fmat4x4SIMD 
const & m);
 
  129     fmat4x4SIMD 
operator+ (fmat4x4SIMD 
const & m, 
float const & s);
 
  130     fmat4x4SIMD 
operator+ (
float const & s, fmat4x4SIMD 
const & m);
 
  131     fmat4x4SIMD 
operator+ (fmat4x4SIMD 
const & m1, fmat4x4SIMD 
const & m2);
 
  133     fmat4x4SIMD 
operator- (fmat4x4SIMD 
const & m, 
float const & s);
 
  134     fmat4x4SIMD 
operator- (
float const & s, fmat4x4SIMD 
const & m);
 
  135     fmat4x4SIMD 
operator- (fmat4x4SIMD 
const & m1, fmat4x4SIMD 
const & m2);
 
  137     fmat4x4SIMD 
operator* (fmat4x4SIMD 
const & m, 
float const & s);
 
  138     fmat4x4SIMD 
operator* (
float const & s, fmat4x4SIMD 
const & m);
 
  140     fvec4SIMD 
operator* (fmat4x4SIMD 
const & m, fvec4SIMD 
const & v);
 
  141     fvec4SIMD 
operator* (fvec4SIMD 
const & v, fmat4x4SIMD 
const & m);
 
  143     fmat4x4SIMD 
operator* (fmat4x4SIMD 
const & m1, fmat4x4SIMD 
const & m2);
 
  145     fmat4x4SIMD 
operator/ (fmat4x4SIMD 
const & m, 
float const & s);
 
  146     fmat4x4SIMD 
operator/ (
float const & s, fmat4x4SIMD 
const & m);
 
  148     fvec4SIMD 
operator/ (fmat4x4SIMD 
const & m, fvec4SIMD 
const & v);
 
  149     fvec4SIMD 
operator/ (fvec4SIMD 
const & v, fmat4x4SIMD 
const & m);
 
  151     fmat4x4SIMD 
operator/ (fmat4x4SIMD 
const & m1, fmat4x4SIMD 
const & m2);
 
  154     fmat4x4SIMD 
const operator-  (fmat4x4SIMD 
const & m);
 
  155     fmat4x4SIMD 
const operator-- (fmat4x4SIMD 
const & m, 
int);
 
  156     fmat4x4SIMD 
const operator++ (fmat4x4SIMD 
const & m, 
int);
 
  159     typedef detail::fmat4x4SIMD simdMat4;
 
  167         detail::fmat4x4SIMD 
const & x);
 
  173         detail::fmat4x4SIMD 
const & x,
 
  174         detail::fmat4x4SIMD 
const & y);
 
  181         detail::fvec4SIMD 
const & c,
 
  182         detail::fvec4SIMD 
const & r);
 
  187         detail::fmat4x4SIMD 
const & x);
 
  192         detail::fmat4x4SIMD 
const & m);
 
  197         detail::fmat4x4SIMD 
const & m);
 
  204 #endif//(GLM_ARCH != GLM_ARCH_PURE) 
  206 #endif//GLM_GTX_simd_mat4 
GLM_FUNC_DECL matType::transpose_type transpose(matType const &x)
GLM_FUNC_DECL matType outerProduct(vecType const &c, vecType const &r)
GLM_FUNC_DECL half operator--(half const &s, int)
Definition: type_half.inl:356
detail::tmat4x4< T > mat4_cast(detail::tquat< T > const &x)
Definition: quaternion.inl:648
#define GLM_ALIGNED_STRUCT(x)
Definition: _detail.hpp:476
Definition: _detail.hpp:38
GLM_FUNC_DECL half operator+(half const &s1, half const &s2)
Definition: type_half.inl:330
GLM_FUNC_DECL half operator-(half const &s1, half const &s2)
Definition: type_half.inl:335
GLM_FUNC_DECL half operator++(half const &s, int)
Definition: type_half.inl:361
GLM_FUNC_DECL matType matrixCompMult(matType const &x, matType const &y)
Definition: func_matrix.inl:34
GLM_FUNC_DECL detail::tmat2x2< valType >::value_type determinant(detail::tmat2x2< valType > const &m)
GLM_FUNC_DECL half operator*(half const &s1, half const &s2)
Definition: type_half.inl:340
GLM_FUNC_DECL detail::tmat2x2< valType > inverse(detail::tmat2x2< valType > const &m)
GLM_FUNC_DECL half operator/(half const &s1, half const &s2)
Definition: type_half.inl:345