|
|
@ -556,6 +556,22 @@ namespace detail |
|
|
|
v.x * m[3][0] + v.y * m[3][1] + v.z * m[3][2]); |
|
|
|
v.x * m[3][0] + v.y * m[3][1] + v.z * m[3][2]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tmat2x3<T> operator* |
|
|
|
|
|
|
|
( |
|
|
|
|
|
|
|
tmat4x3<T> const & m1, |
|
|
|
|
|
|
|
tmat2x4<T> const & m2 |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return tmat2x3<T>( |
|
|
|
|
|
|
|
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2] + m1[3][0] * m2[0][3], |
|
|
|
|
|
|
|
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2] + m1[3][1] * m2[0][3], |
|
|
|
|
|
|
|
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1] + m1[2][2] * m2[0][2] + m1[3][2] * m2[0][3], |
|
|
|
|
|
|
|
m1[0][0] * m2[1][0] + m1[1][0] * m2[1][1] + m1[2][0] * m2[1][2] + m1[3][0] * m2[1][3], |
|
|
|
|
|
|
|
m1[0][1] * m2[1][0] + m1[1][1] * m2[1][1] + m1[2][1] * m2[1][2] + m1[3][1] * m2[1][3], |
|
|
|
|
|
|
|
m1[0][2] * m2[1][0] + m1[1][2] * m2[1][1] + m1[2][2] * m2[1][2] + m1[3][2] * m2[1][3]); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
template <typename T> |
|
|
|
GLM_FUNC_QUALIFIER tmat3x3<T> operator* |
|
|
|
GLM_FUNC_QUALIFIER tmat3x3<T> operator* |
|
|
|
( |
|
|
|
( |
|
|
@ -602,6 +618,28 @@ namespace detail |
|
|
|
return Result; |
|
|
|
return Result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tmat4x3<T> operator* |
|
|
|
|
|
|
|
( |
|
|
|
|
|
|
|
tmat4x3<T> const & m1, |
|
|
|
|
|
|
|
tmat4x4<T> const & m2 |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return tmat4x3<T>( |
|
|
|
|
|
|
|
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2] + m1[3][0] * m2[0][3], |
|
|
|
|
|
|
|
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2] + m1[3][1] * m2[0][3], |
|
|
|
|
|
|
|
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1] + m1[2][2] * m2[0][2] + m1[3][2] * m2[0][3], |
|
|
|
|
|
|
|
m1[0][0] * m2[1][0] + m1[1][0] * m2[1][1] + m1[2][0] * m2[1][2] + m1[3][0] * m2[1][3], |
|
|
|
|
|
|
|
m1[0][1] * m2[1][0] + m1[1][1] * m2[1][1] + m1[2][1] * m2[1][2] + m1[3][1] * m2[1][3], |
|
|
|
|
|
|
|
m1[0][2] * m2[1][0] + m1[1][2] * m2[1][1] + m1[2][2] * m2[1][2] + m1[3][2] * m2[1][3], |
|
|
|
|
|
|
|
m1[0][0] * m2[2][0] + m1[1][0] * m2[2][1] + m1[2][0] * m2[2][2] + m1[3][0] * m2[2][3], |
|
|
|
|
|
|
|
m1[0][1] * m2[2][0] + m1[1][1] * m2[2][1] + m1[2][1] * m2[2][2] + m1[3][1] * m2[2][3], |
|
|
|
|
|
|
|
m1[0][2] * m2[2][0] + m1[1][2] * m2[2][1] + m1[2][2] * m2[2][2] + m1[3][2] * m2[2][3], |
|
|
|
|
|
|
|
m1[0][0] * m2[3][0] + m1[1][0] * m2[3][1] + m1[2][0] * m2[3][2] + m1[3][0] * m2[3][3], |
|
|
|
|
|
|
|
m1[0][1] * m2[3][0] + m1[1][1] * m2[3][1] + m1[2][1] * m2[3][2] + m1[3][1] * m2[3][3], |
|
|
|
|
|
|
|
m1[0][2] * m2[3][0] + m1[1][2] * m2[3][1] + m1[2][2] * m2[3][2] + m1[3][2] * m2[3][3]); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
template <typename T> |
|
|
|
GLM_FUNC_QUALIFIER tmat4x3<T> operator/ |
|
|
|
GLM_FUNC_QUALIFIER tmat4x3<T> operator/ |
|
|
|
( |
|
|
|
( |
|
|
|