+/* Get the current visibility */
+float fgWeatherGetVisibility( void ) {
+ struct fgWEATHER *w;
+ w = ¤t_weather;
+
+ return ( w->visibility );
+}
+
+
+/* Set the visibility and update fog parameters */
+void fgWeatherSetVisibility( float visibility ) {
+ struct fgWEATHER *w;
+ w = ¤t_weather;
+
+ w->visibility = visibility; /* in meters */
+ // w->fog_density = -log(0.01 / w->visibility; /* for GL_FOG_EXP */
+ w->fog_density = sqrt( -log(0.01) ) / w->visibility; /* for GL_FOG_EXP2 */
+ xglFogf (GL_FOG_DENSITY, w->fog_density);
+ fgPrintf( FG_INPUT, FG_DEBUG,
+ "Fog density = %.4f\n", w->fog_density);
+}
+
+