From c9921271d6355fbbfc614f1c20e768c81f1bf63b Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 12 Nov 2015 02:57:51 +0100 Subject: [PATCH] Fix recursion in inline function in LFrustum --- panda/src/mathutil/frustum_src.I | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/panda/src/mathutil/frustum_src.I b/panda/src/mathutil/frustum_src.I index be0bf11aee..ce1e72eebc 100644 --- a/panda/src/mathutil/frustum_src.I +++ b/panda/src/mathutil/frustum_src.I @@ -203,16 +203,20 @@ get_perspective_projection_mat(CoordinateSystem cs) const { case CS_yup_right: return FLOATNAME(LMatrix4)( a, 0.0f, 0.0f, 0.0f, 0.0f, e, 0.0f, 0.0f, - d, b, -c,-1.0f, + d, b, -c, -1.0f, 0.0f, 0.0f, f, 0.0f); case CS_zup_left: - return FLOATNAME(LMatrix4)::convert_mat(CS_zup_right, CS_zup_left) * - get_perspective_projection_mat(CS_zup_right); + return FLOATNAME(LMatrix4)( a, 0.0f, 0.0f, 0.0f, + 0.0f, b, -c, -1.0f, + d, e, 0.0f, 0.0f, + 0.0f, 0.0f, f, 0.0f); case CS_yup_left: - return FLOATNAME(LMatrix4)::convert_mat(CS_yup_right, CS_yup_left) * - get_perspective_projection_mat(CS_yup_right); + return FLOATNAME(LMatrix4)( a, 0.0f, 0.0f, 0.0f, + 0.0f, e, 0.0f, 0.0f, + -d, -b, c, 1.0f, + 0.0f, 0.0f, f, 0.0f); default: mathutil_cat.error() @@ -251,8 +255,10 @@ get_ortho_projection_mat(CoordinateSystem cs) const { */ switch (cs) { case CS_zup_right: - return FLOATNAME(LMatrix4)::convert_mat(CS_yup_right, CS_zup_right) * - get_ortho_projection_mat(CS_yup_right); + return FLOATNAME(LMatrix4)( a, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, -c, 0.0f, + 0.0f, -b, 0.0f, 0.0f, + -d, -e, -f, 1.0f); case CS_yup_right: return FLOATNAME(LMatrix4)( a, 0.0f, 0.0f, 0.0f, @@ -261,12 +267,16 @@ get_ortho_projection_mat(CoordinateSystem cs) const { -d, -e, -f, 1.0f); case CS_zup_left: - return FLOATNAME(LMatrix4)::convert_mat(CS_zup_right, CS_zup_left) * - get_ortho_projection_mat(CS_zup_right); + return FLOATNAME(LMatrix4)( a, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, -c, 0.0f, + 0.0f, b, 0.0f, 0.0f, + -d, -e, -f, 1.0f); case CS_yup_left: - return FLOATNAME(LMatrix4)::convert_mat(CS_yup_right, CS_yup_left) * - get_ortho_projection_mat(CS_yup_right); + return FLOATNAME(LMatrix4)( a, 0.0f, 0.0f, 0.0f, + 0.0f, b, 0.0f, 0.0f, + 0.0f, 0.0f, c, 0.0f, + -d, -e, -f, 1.0f); default: mathutil_cat.error()