From cd5a7202111b53d4c69cf6ca3ad267abdd070d78 Mon Sep 17 00:00:00 2001 From: mfranz Date: Sun, 24 Jun 2007 08:09:07 +0000 Subject: [PATCH] Vivian MEAZZA: add support for aircraft radar signatures --- simgear/environment/visual_enviro.cxx | 14 ++++++++------ simgear/environment/visual_enviro.hxx | 18 +++++++++++++++--- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/simgear/environment/visual_enviro.cxx b/simgear/environment/visual_enviro.cxx index 9371503e..b879d025 100644 --- a/simgear/environment/visual_enviro.cxx +++ b/simgear/environment/visual_enviro.cxx @@ -1,6 +1,9 @@ // Visual environment helper class // // Written by Harald JOHNSEN, started April 2005. +// Minor changes/additions by Vivian Meazza Apr- May 2007 +// +// Ported to OSG by Tim Moore Jun 2007 // // Copyright (C) 2005 Harald JOHNSEN - hjohnsen@evc.net // @@ -331,9 +334,7 @@ void SGEnviro::setLight(sgVec4 adj_fog_color) { } } -void SGEnviro::callback_cloud(float heading, float alt, float radius, int family, float dist, int cloudId) { - // OSGFIXME - return; +void SGEnviro::callback_cloud(float bearing, float alt, float radius, int family, float dist, int cloudId) { // send data to wx radar // compute turbulence // draw precipitation @@ -405,9 +406,10 @@ void SGEnviro::callback_cloud(float heading, float alt, float radius, int family LWC = 0.29*2.0; break; } + // add to the list for the wxRadar instrument if( LWC > 0.0 ) - radarEcho.push_back( SGWxRadarEcho ( heading, alt, radius, dist, LWC, false, cloudId ) ); + radarEcho.push_back( SGWxRadarEcho ( bearing, alt, radius, dist, 0.0 , LWC, false, cloudId, false ) ); // NB:data valid only from cockpit view @@ -420,7 +422,7 @@ void SGEnviro::callback_cloud(float heading, float alt, float radius, int family orig.setlon(last_lon * SG_DEGREES_TO_RADIANS ); orig.setelev(0.0); dist = sgSqrt(dist); - dest = calc_gc_lon_lat(orig, heading, dist); + dest = calc_gc_lon_lat(orig, bearing, dist); lon = dest.lon() * SG_RADIANS_TO_DEGREES; lat = dest.lat() * SG_RADIANS_TO_DEGREES; addLightning( lon, lat, alt ); @@ -712,7 +714,7 @@ void SGLightning::lt_Render(void) { glTranslatef( ax, ay, -sgEnviro.last_alt ); - sgEnviro.radarEcho.push_back( SGWxRadarEcho ( course, 0.0, 0.0, dist, age, true, 0 ) ); + sgEnviro.radarEcho.push_back( SGWxRadarEcho ( course, 0.0, 0.0, dist, 0.0, age, true, 0, false ) ); for( int n = 0 ; n < nb_tree ; n++ ) { if( lt_tree[n].prev < 0 ) diff --git a/simgear/environment/visual_enviro.hxx b/simgear/environment/visual_enviro.hxx index e51bd4d6..8eb8b3e9 100644 --- a/simgear/environment/visual_enviro.hxx +++ b/simgear/environment/visual_enviro.hxx @@ -1,6 +1,9 @@ // Visual environment helper class // // Written by Harald JOHNSEN, started April 2005. +// Minor changes/additions by Vivian Meazza Apr- May 2007 +// +// Ported to OSG by Tim Moore Jun 2007 // // Copyright (C) 2005 Harald JOHNSEN - hjohnsen@evc.net // @@ -40,23 +43,32 @@ class SGSoundMgr; */ class SGWxRadarEcho { public: - SGWxRadarEcho(float _heading, float _alt, float _radius, float _dist, double _LWC, bool _lightning, int _cloudId) : + SGWxRadarEcho(float _bearing, float _alt, float _radius, float _dist, float _heading, + double _LWC, bool _lightning, int _cloudId, bool _aircraft) : + bearing (_bearing), heading( _heading ), alt ( _alt ), radius ( _radius ), dist ( _dist ), LWC ( _LWC ), lightning ( _lightning ), + aircraft ( _aircraft ), cloudId ( _cloudId ) {} - /** the heading in radian is versus north */ - float heading; + /** the heading and bearing in radian are versus north */ + float bearing, heading; float alt, radius, dist; + /** reflectivity converted to liquid water content. */ double LWC; + /** if true then this data is for a lightning else it is for water echo. */ bool lightning; + + /** if true then this data is for an aircraft */ + bool aircraft; + /** Unique identifier of cloud */ int cloudId; }; -- 2.39.5