void MatrixManager::RotateZ( const Angle p_Angle ) { // Calculate the rotation matrix const Float32 AngleSin = Math::Sin<Float32>( static_cast<Float32>( p_Angle.AsRadians( ) ) ); const Float32 AngleCos = Math::Cos<Float32>( static_cast<Float32>( p_Angle.AsRadians( ) ) ); Matrix4x4f32 rotation ( AngleCos, -AngleSin, 0.0, 0.0f, AngleSin, AngleCos, 0.0, 0.0f, 0.0f, 0.0, 1.0, 0.0f, 0.0f, 0.0, 0.0, 1.0f ); // Multiply the rotation matrix by the current matrix. g_pCurrentStack->top( ) = g_pCurrentStack->top( ) * rotation; }