template <class T>\r
inline void CMatrix4<T>::rotateVect( vector3df& vect ) const\r
{\r
- vector3df tmp = vect;\r
- vect.X = tmp.X*M[0] + tmp.Y*M[4] + tmp.Z*M[8];\r
- vect.Y = tmp.X*M[1] + tmp.Y*M[5] + tmp.Z*M[9];\r
- vect.Z = tmp.X*M[2] + tmp.Y*M[6] + tmp.Z*M[10];\r
+ vector3d<T> tmp(static_cast<T>(vect.X), static_cast<T>(vect.Y), static_cast<T>(vect.Z));\r
+ vect.X = static_cast<f32>(tmp.X*M[0] + tmp.Y*M[4] + tmp.Z*M[8]);\r
+ vect.Y = static_cast<f32>(tmp.X*M[1] + tmp.Y*M[5] + tmp.Z*M[9]);\r
+ vect.Z = static_cast<f32>(tmp.X*M[2] + tmp.Y*M[6] + tmp.Z*M[10]);\r
}\r
\r
//! An alternate transform vector method, writing into a second vector\r
template <class T>\r
inline void CMatrix4<T>::inverseRotateVect( vector3df& vect ) const\r
{\r
- vector3df tmp = vect;\r
- vect.X = tmp.X*M[0] + tmp.Y*M[1] + tmp.Z*M[2];\r
- vect.Y = tmp.X*M[4] + tmp.Y*M[5] + tmp.Z*M[6];\r
- vect.Z = tmp.X*M[8] + tmp.Y*M[9] + tmp.Z*M[10];\r
+ vector3d<T> tmp(static_cast<T>(vect.X), static_cast<T>(vect.Y), static_cast<T>(vect.Z));\r
+ vect.X = static_cast<f32>(tmp.X*M[0] + tmp.Y*M[1] + tmp.Z*M[2]);\r
+ vect.Y = static_cast<f32>(tmp.X*M[4] + tmp.Y*M[5] + tmp.Z*M[6]);\r
+ vect.Z = static_cast<f32>(tmp.X*M[8] + tmp.Y*M[9] + tmp.Z*M[10]);\r
}\r
\r
template <class T>\r