|
|
|
@ -97,6 +97,18 @@ namespace glm |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tmat4x4<T> extractMatrixRotation( |
|
|
|
|
detail::tmat4x4<T> const & mat) |
|
|
|
|
{ |
|
|
|
|
return detail::tmat4x4<T>( |
|
|
|
|
mat[0][0], mat[0][1], mat[0][2], 0.0, |
|
|
|
|
mat[1][0], mat[1][1], mat[1][2], 0.0, |
|
|
|
|
mat[2][0], mat[2][1], mat[2][2], 0.0, |
|
|
|
|
0.0, 0.0, 0.0, 1.0 |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tmat4x4<T> interpolate |
|
|
|
|
( |
|
|
|
@ -109,7 +121,7 @@ namespace glm |
|
|
|
|
detail::tvec3<T> dltAxis; |
|
|
|
|
T dltAngle; |
|
|
|
|
axisAngle(dltRotation, dltAxis, dltAngle); |
|
|
|
|
detail::tmat4x4<T> out = axisAngleMatrix(dltAxis, dltAngle * delta) * rotationMatrix(m1); |
|
|
|
|
detail::tmat4x4<T> out = axisAngleMatrix(dltAxis, dltAngle * delta) * extractMatrixRotation(m1); |
|
|
|
|
out[3][0] = m1[3][0] + delta * (m2[3][0] - m1[3][0]); |
|
|
|
|
out[3][1] = m1[3][1] + delta * (m2[3][1] - m1[3][1]); |
|
|
|
|
out[3][2] = m1[3][2] + delta * (m2[3][2] - m1[3][2]); |
|
|
|
|