|
|
|
@ -95,25 +95,27 @@ namespace detail |
|
|
|
|
////////////////////////////////////////////////////////////// |
|
|
|
|
// Constructors |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4() |
|
|
|
|
{ |
|
|
|
|
# ifndef GLM_FORCE_NO_CTOR_INIT |
|
|
|
|
this->value[0] = col_type(1, 0, 0, 0); |
|
|
|
|
this->value[1] = col_type(0, 1, 0, 0); |
|
|
|
|
this->value[2] = col_type(0, 0, 1, 0); |
|
|
|
|
this->value[3] = col_type(0, 0, 0, 1); |
|
|
|
|
# endif |
|
|
|
|
} |
|
|
|
|
# if !GLM_HAS_DEFAULTED_FUNCTIONS |
|
|
|
|
template <typename T, precision P> |
|
|
|
|
GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4() |
|
|
|
|
{ |
|
|
|
|
# ifndef GLM_FORCE_NO_CTOR_INIT |
|
|
|
|
this->value[0] = col_type(1, 0, 0, 0); |
|
|
|
|
this->value[1] = col_type(0, 1, 0, 0); |
|
|
|
|
this->value[2] = col_type(0, 0, 1, 0); |
|
|
|
|
this->value[3] = col_type(0, 0, 0, 1); |
|
|
|
|
# endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat4x4<T, P> const & m) |
|
|
|
|
{ |
|
|
|
|
this->value[0] = m[0]; |
|
|
|
|
this->value[1] = m[1]; |
|
|
|
|
this->value[2] = m[2]; |
|
|
|
|
this->value[3] = m[3]; |
|
|
|
|
} |
|
|
|
|
template <typename T, precision P> |
|
|
|
|
GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat4x4<T, P> const & m) |
|
|
|
|
{ |
|
|
|
|
this->value[0] = m[0]; |
|
|
|
|
this->value[1] = m[1]; |
|
|
|
|
this->value[2] = m[2]; |
|
|
|
|
this->value[3] = m[3]; |
|
|
|
|
} |
|
|
|
|
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
template <precision Q> |
|
|
|
@ -246,6 +248,7 @@ namespace detail |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// Matrix convertion constructors |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat2x2<T, P> const & m) |
|
|
|
|
{ |
|
|
|
@ -366,17 +369,19 @@ namespace detail |
|
|
|
|
////////////////////////////////////////////////////////////// |
|
|
|
|
// Operators |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
GLM_FUNC_QUALIFIER tmat4x4<T, P>& tmat4x4<T, P>::operator=(tmat4x4<T, P> const & m) |
|
|
|
|
{ |
|
|
|
|
//memcpy could be faster |
|
|
|
|
//memcpy(&this->value, &m.value, 16 * sizeof(valType)); |
|
|
|
|
this->value[0] = m[0]; |
|
|
|
|
this->value[1] = m[1]; |
|
|
|
|
this->value[2] = m[2]; |
|
|
|
|
this->value[3] = m[3]; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
# if !GLM_HAS_DEFAULTED_FUNCTIONS |
|
|
|
|
template <typename T, precision P> |
|
|
|
|
GLM_FUNC_QUALIFIER tmat4x4<T, P>& tmat4x4<T, P>::operator=(tmat4x4<T, P> const & m) |
|
|
|
|
{ |
|
|
|
|
//memcpy could be faster |
|
|
|
|
//memcpy(&this->value, &m.value, 16 * sizeof(valType)); |
|
|
|
|
this->value[0] = m[0]; |
|
|
|
|
this->value[1] = m[1]; |
|
|
|
|
this->value[2] = m[2]; |
|
|
|
|
this->value[3] = m[3]; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
template <typename U> |
|
|
|
|