#define _VISUAL_ENVIRO_HXX
#include <simgear/compiler.h>
-#include STL_STRING
+#include <string>
#include <vector>
-SG_USING_STD(vector);
-SG_USING_STD(string);
+#include <simgear/math/SGMath.hxx>
class SGLightning;
-class SGSoundMgr;
+class SGSampleGroup;
/**
* Simulate some echo on a weather radar.
*/
class SGWxRadarEcho {
public:
- SGWxRadarEcho(float _heading, float _alt, float _radius, float _dist, double _LWC, bool _lightning, int _cloudId) :
+ SGWxRadarEcho(float _heading, float _alt, float _radius, float _dist,
+ double _LWC, bool _lightning, int _cloudId ) :
heading( _heading ),
alt ( _alt ),
radius ( _radius ),
/** 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;
+ bool lightning;
/** Unique identifier of cloud */
int cloudId;
};
-typedef vector<SGWxRadarEcho> list_of_SGWxRadarEcho;
+typedef std::vector<SGWxRadarEcho> list_of_SGWxRadarEcho;
/**
* Visual environment helper class.
double last_cloud_turbulence, cloud_turbulence;
bool lightning_enable_state;
double elapsed_time, dt;
- sgVec4 fog_color;
- sgMat4 transform;
+ SGVec4f fog_color;
+ SGMatrixf transform;
double last_lon, last_lat, last_alt;
- SGSoundMgr *soundMgr;
+ SGSampleGroup *sampleGroup;
bool snd_active, snd_playing;
double snd_timer, snd_wait, snd_pos_lat, snd_pos_lon, snd_dist;
double min_time_before_lt;
/** a list of all the radar echo. */
list_of_SGWxRadarEcho radarEcho;
- static sgVec3 min_light;
- static SGfloat streak_bright_nearmost_layer,
+ static SGVec3f min_light;
+ static float streak_bright_nearmost_layer,
streak_bright_farmost_layer,
streak_period_max,
streak_period_change_per_kt,
streak_length_change_per_kt,
streak_length_max;
static int streak_count_min, streak_count_max;
- static SGfloat cone_base_radius,
+ static float cone_base_radius,
cone_height;
public:
/**
* Forward a few states used for renderings.
*/
- void startOfFrame( sgVec3 p, sgVec3 up, double lon, double lat, double alt, double delta_time);
+ void startOfFrame( SGVec3f p, SGVec3f up, double lon, double lat, double alt, double delta_time);
void endOfFrame(void);
+#if 0
/**
* Whenever a cloud is drawn we check his 'impact' on the environment.
* @param heading direction of cloud in radians
* @param dist squared dist to cloud in meters
*/
void callback_cloud(float heading, float alt, float radius, int family, float dist, int cloudId);
-
+#endif
void drawRain(double pitch, double roll, double heading, double hspeed, double rain_norm);
/**
* Draw rain or snow precipitation around the viewer.
* Forward the fog color used by the rain rendering.
* @param adj_fog_color color of the fog
*/
- void setLight(sgVec4 adj_fog_color);
+ void setLight(SGVec4f adj_fog_color);
// this can be queried to add some turbulence for example
bool is_view_in_cloud(void) const;
* Forward the sound manager instance to be able to play samples.
* @param mgr a running sound manager
*/
- void set_soundMgr(SGSoundMgr *mgr);
+ void set_sampleGroup(SGSampleGroup *sgr);
void setFOV( float w, float h );
void getFOV( float &w, float &h );
list_of_SGWxRadarEcho *get_radar_echo(void);
- sgMat4 *get_transform(void) { return &transform; }
+ SGMatrixf *get_transform(void) { return &transform; }
};
extern SGEnviro sgEnviro;