From 5592bb326ffa09df31d39e4068bbe8c20d538280 Mon Sep 17 00:00:00 2001 From: timoore Date: Tue, 28 Oct 2008 12:10:27 +0000 Subject: [PATCH] Don't allow negative values as argument to pow(). This was a source of a spew of "NaN" error messages at night when the sun is at a large angle to the zenith. I don't know why this wasn't a problem before now. --- src/Main/renderer.cxx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Main/renderer.cxx b/src/Main/renderer.cxx index c952faed9..97fbcb989 100644 --- a/src/Main/renderer.cxx +++ b/src/Main/renderer.cxx @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -612,8 +613,14 @@ FGRenderer::update( bool refresh_camera_settings ) { double sun_horiz_eff, moon_horiz_eff; if (fgGetBool("/sim/rendering/horizon-effect")) { - sun_horiz_eff = 0.67+pow(0.5+cos(l->get_sun_angle())*2/2, 0.33)/3; - moon_horiz_eff = 0.67+pow(0.5+cos(l->get_moon_angle())*2/2, 0.33)/3; + sun_horiz_eff + = 0.67 + pow(osg::clampAbove(0.5 + cos(l->get_sun_angle()), + 0.0), + 0.33) / 3.0; + moon_horiz_eff + = 0.67 + pow(osg::clampAbove(0.5 + cos(l->get_moon_angle()), + 0.0), + 0.33)/3.0; } else { sun_horiz_eff = moon_horiz_eff = 1.0; } -- 2.39.5