diff --git a/src/Base/Matrix.h b/src/Base/Matrix.h index bbc4141b68..25fac709ee 100644 --- a/src/Base/Matrix.h +++ b/src/Base/Matrix.h @@ -309,13 +309,15 @@ inline void Matrix4D::multVec(const Vector3d & src, Vector3d & dst) const inline void Matrix4D::multVec(const Vector3f & src, Vector3f & dst) const { - float x = (dMtrx4D[0][0]*src.x + dMtrx4D[0][1]*src.y + - dMtrx4D[0][2]*src.z + dMtrx4D[0][3]); - float y = (dMtrx4D[1][0]*src.x + dMtrx4D[1][1]*src.y + - dMtrx4D[1][2]*src.z + dMtrx4D[1][3]); - float z = (dMtrx4D[2][0]*src.x + dMtrx4D[2][1]*src.y + - dMtrx4D[2][2]*src.z + dMtrx4D[2][3]); - dst.Set(x,y,z); + double x = (dMtrx4D[0][0]*src.x + dMtrx4D[0][1]*src.y + + dMtrx4D[0][2]*src.z + dMtrx4D[0][3]); + double y = (dMtrx4D[1][0]*src.x + dMtrx4D[1][1]*src.y + + dMtrx4D[1][2]*src.z + dMtrx4D[1][3]); + double z = (dMtrx4D[2][0]*src.x + dMtrx4D[2][1]*src.y + + dMtrx4D[2][2]*src.z + dMtrx4D[2][3]); + dst.Set(static_cast(x), + static_cast(y), + static_cast(z)); } inline bool Matrix4D::operator== (const Matrix4D& rclMtrx) const