62 typename X0,
typename Y0,
typename Z0,
typename W0,
63 typename X1,
typename Y1,
typename Z1,
typename W1,
64 typename X2,
typename Y2,
typename Z2,
typename W2,
65 typename X3,
typename Y3,
typename Z3,
typename W3>
80 template<
typename V1,
typename V2,
typename V3,
typename V4>
107 this->value[0] =
m[0];
108 this->value[1] =
m[1];
109 this->value[1] =
m[1];
110 this->value[2] =
m[2];
139 this->value[0] +=
m[0];
140 this->value[1] +=
m[1];
141 this->value[2] +=
m[2];
142 this->value[3] +=
m[3];
159 this->value[0] -=
m[0];
160 this->value[1] -=
m[1];
161 this->value[2] -=
m[2];
162 this->value[3] -=
m[3];
179 return (*
this = *
this *
m);
231 column_type value[4];
299 const column_type
mov0(
v[0]);
300 const column_type
mov1(
v[1]);
304 const column_type
mov2(
v[2]);
305 const column_type
mov3(
v[3]);
317 m[0][0] *
v[0] +
m[0][1] *
v[1] +
m[0][2] *
v[2] +
m[0][3] *
v[3],
318 m[1][0] *
v[0] +
m[1][1] *
v[1] +
m[1][2] *
v[2] +
m[1][3] *
v[3],
319 m[2][0] *
v[0] +
m[2][1] *
v[1] +
m[2][2] *
v[2] +
m[2][3] *
v[3],
320 m[3][0] *
v[0] +
m[3][1] *
v[1] +
m[3][2] *
v[2] +
m[3][3] *
v[3]
329 const column_type&
a0 = a[0];
330 const column_type& a1 = a[1];
331 const column_type& a2 = a[2];
332 const column_type& a3 = a[3];
334 const column_type&
b0 = b[0];
335 const column_type&
b1 = b[1];
336 const column_type&
b2 = b[2];
337 const column_type&
b3 = b[3];
340 rv[0] =
a0 *
b0[0] + a1 *
b0[1] + a2 *
b0[2] + a3 *
b0[3];
341 rv[1] =
a0 *
b1[0] + a1 *
b1[1] + a2 *
b1[2] + a3 *
b1[3];
342 rv[2] =
a0 *
b2[0] + a1 *
b2[1] + a2 *
b2[2] + a3 *
b2[3];
343 rv[3] =
a0 *
b3[0] + a1 *
b3[1] + a2 *
b3[2] + a3 *
b3[3];
Definition custom_decoration_generator.h:5
constexpr std::common_type_t< Angle< Rep1, Units1 >, Angle< Rep2, Units2 > > operator+(const Angle< Rep1, Units1 > &lhs, const Angle< Rep2, Units2 > &rhs)
Definition angle.h:99
Matrix< T, 3, 3 > operator/(const Matrix< T, 3, 3 > &m, T scalar)
Definition matrix3x3.h:341
constexpr U to(T &&value)
Definition conversion.h:56
T inverse(const Matrix< T, 3, 3 > &m)
Definition matrix_functions.h:158
Matrix< T, 3, 3 > operator*(const Matrix< T, 3, 3 > &m, T scalar)
Definition matrix3x3.h:273
constexpr Matrix4x4 identity< Matrix4x4 >()
Definition matrix4x4.h:390
constexpr std::common_type_t< Angle< Rep1, Units1 >, Angle< Rep2, Units2 > > operator-(const Angle< Rep1, Units1 > &lhs, const Angle< Rep2, Units2 > &rhs)
Definition angle.h:114
constexpr iterator begin()
Definition matrix4x4.h:117
Matrix & operator--()
Definition matrix4x4.h:207
constexpr iterator end()
Definition matrix4x4.h:119
constexpr const_iterator begin() const
Definition matrix4x4.h:118
constexpr Matrix(const T &x0, const T &y0, const T &z0, const T &w0, const T &x1, const T &y1, const T &z1, const T &w1, const T &x2, const T &y2, const T &z2, const T &w2, const T &x3, const T &y3, const T &z3, const T &w3)
Definition matrix4x4.h:38
Matrix & operator-=(const Matrix< U, 4, 4 > &m)
Definition matrix4x4.h:157
Matrix & operator=(const Matrix< U, 4, 4 > &m)
Definition matrix4x4.h:105
Matrix operator--(int)
Definition matrix4x4.h:223
T element_type
Definition matrix4x4.h:17
Matrix & operator++()
Definition matrix4x4.h:198
friend bool operator==(const Matrix &, const Matrix &)=default
constexpr reference operator[](size_type pos)
Definition matrix4x4.h:121
constexpr Matrix(const column_type &v0, const column_type &v1, const column_type &v2, const column_type &v3)
Definition matrix4x4.h:52
ptrdiff_t difference_type
Definition matrix4x4.h:19
Matrix operator++(int)
Definition matrix4x4.h:216
constexpr Matrix(T s)
Definition matrix4x4.h:29
constexpr const_pointer data() const
Definition matrix4x4.h:116
size_t size_type
Definition matrix4x4.h:18
Matrix & operator/=(U s)
Definition matrix4x4.h:183
constexpr Matrix(const Matrix< T, 3, 3 > &m)
Definition matrix4x4.h:95
Matrix & operator*=(U s)
Definition matrix4x4.h:167
constexpr Matrix()=default
constexpr const_reference operator[](size_type pos) const
Definition matrix4x4.h:122
constexpr const_iterator end() const
Definition matrix4x4.h:120
constexpr Matrix(const Vector< V1, 4 > &v1, const Vector< V2, 4 > &v2, const Vector< V3, 4 > &v3, const Vector< V4, 4 > &v4)
Definition matrix4x4.h:81
Matrix & operator+=(U s)
Definition matrix4x4.h:127
Matrix & operator+=(const Matrix< U, 4, 4 > &m)
Definition matrix4x4.h:137
constexpr pointer data()
Definition matrix4x4.h:115
constexpr size_type size() const
Definition matrix4x4.h:114
Matrix & operator-=(U s)
Definition matrix4x4.h:147
Matrix & operator/=(const Matrix< U, 4, 4 > &m)
Definition matrix4x4.h:193
constexpr Matrix(const X0 &x0, const Y0 &y0, const Z0 &z0, const W0 &w0, const X1 &x1, const Y1 &y1, const Z1 &z1, const W1 &w1, const X2 &x2, const Y2 &y2, const Z2 &z2, const W2 &w2, const X3 &x3, const Y3 &y3, const Z3 &z3, const W3 &w3)
Definition matrix4x4.h:66
Matrix & operator*=(const Matrix< U, 4, 4 > &m)
Definition matrix4x4.h:177