From 1a4993f08b1bfa0dd66274a3eb3be8b6a8ab5b32 Mon Sep 17 00:00:00 2001 From: James Turner Date: Wed, 27 Mar 2013 22:48:43 +0000 Subject: [PATCH] Minor cleanup of cloud commands. --- src/Environment/fgclouds.cxx | 44 +++++++++++------------------------- src/Environment/fgclouds.hxx | 28 +++++++++-------------- 2 files changed, 24 insertions(+), 48 deletions(-) diff --git a/src/Environment/fgclouds.cxx b/src/Environment/fgclouds.cxx index f19d9d6fc..f83a72767 100644 --- a/src/Environment/fgclouds.cxx +++ b/src/Environment/fgclouds.cxx @@ -24,6 +24,8 @@ # include "config.h" #endif +#include "fgclouds.hxx" + #include #include #include
@@ -42,20 +44,11 @@ #include #include -#include "fgclouds.hxx" - -static bool do_delete_3Dcloud (const SGPropertyNode *arg); -static bool do_move_3Dcloud (const SGPropertyNode *arg); -static bool do_add_3Dcloud (const SGPropertyNode *arg); - // RNG seed to ensure cloud synchronization across multi-process // deployments static mt seed; FGClouds::FGClouds() : -#if 0 - snd_lightning(0), -#endif clouds_3d_enabled(false), index(0) { @@ -75,27 +68,19 @@ void FGClouds::set_update_event(int count) { buildCloudLayers(); } -void FGClouds::Init(void) { -#if 0 - if( snd_lightning == NULL ) { - snd_lightning = new SGSoundSample("Sounds/thunder.wav", SGPath()); - snd_lightning->set_max_dist(7000.0f); - snd_lightning->set_reference_dist(3000.0f); - SGSoundMgr *smgr = globals->get_soundmgr(); - SGSampleGroup *sgr = smgr->find("weather", true); - sgr->add( snd_lightning, "thunder" ); - } -#endif - +void FGClouds::Init(void) +{ mt_init_time_10(&seed); - globals->get_commands()->addCommand("add-cloud", do_add_3Dcloud); - globals->get_commands()->addCommand("del-cloud", do_delete_3Dcloud); - globals->get_commands()->addCommand("move-cloud", do_move_3Dcloud); + globals->get_commands()->addCommand("add-cloud", this, &FGClouds::add3DCloud); + globals->get_commands()->addCommand("del-cloud", this, &FGClouds::delete3DCloud); + globals->get_commands()->addCommand("move-cloud", this, &FGClouds::move3DCloud); } // Build an invidual cloud. Returns the extents of the cloud for coverage calculations -double FGClouds::buildCloud(SGPropertyNode *cloud_def_root, SGPropertyNode *box_def_root, const string& name, double grid_z_rand, SGCloudField *layer) { +double FGClouds::buildCloud(SGPropertyNode *cloud_def_root, SGPropertyNode *box_def_root, + const std::string& name, double grid_z_rand, SGCloudField *layer) +{ SGPropertyNode *box_def=NULL; SGPropertyNode *cld_def=NULL; double extent = 0.0; @@ -358,8 +343,7 @@ bool FGClouds::get_3dClouds() const * (Various) - cloud definition properties. See README.3DClouds * */ - static bool - do_add_3Dcloud (const SGPropertyNode *arg) + bool FGClouds::add3DCloud(const SGPropertyNode *arg) { int l = arg->getIntValue("layer", 0); int index = arg->getIntValue("index", 0); @@ -394,8 +378,7 @@ bool FGClouds::get_3dClouds() const * index - the cloud index * */ - static bool - do_delete_3Dcloud (const SGPropertyNode *arg) + bool FGClouds::delete3DCloud(const SGPropertyNode *arg) { int l = arg->getIntValue("layer", 0); int i = arg->getIntValue("index", 0); @@ -414,8 +397,7 @@ bool FGClouds::get_3dClouds() const * lon/lat/alt - the position for the cloud * */ - static bool - do_move_3Dcloud (const SGPropertyNode *arg) +bool FGClouds::move3DCloud(const SGPropertyNode *arg) { int l = arg->getIntValue("layer", 0); int i = arg->getIntValue("index", 0); diff --git a/src/Environment/fgclouds.hxx b/src/Environment/fgclouds.hxx index cf3e8a4f9..cd6df0c3b 100644 --- a/src/Environment/fgclouds.hxx +++ b/src/Environment/fgclouds.hxx @@ -22,36 +22,30 @@ #ifndef _FGCLOUDS_HXX #define _FGCLOUDS_HXX -#ifdef HAVE_CONFIG -# include -#endif - -#include -#include -#include -#include
- #include -using std::string; - +// forward decls +class SGPropertyNode; class SGCloudField; class FGClouds { private: - double buildCloud(SGPropertyNode *cloud_def_root, SGPropertyNode *box_def_root, const string& name, double grid_z_rand, SGCloudField *layer); - void buildLayer(int iLayer, const string& name, double coverage); + double buildCloud(SGPropertyNode *cloud_def_root, SGPropertyNode *box_def_root, + const std::string& name, double grid_z_rand, SGCloudField *layer); + void buildLayer(int iLayer, const std::string& name, double coverage); void buildCloudLayers(void); int update_event; -#if 0 - SGSoundSample *snd_lightning; -#endif + bool clouds_3d_enabled; - int index; + int index; + bool add3DCloud(const SGPropertyNode *arg); + bool delete3DCloud(const SGPropertyNode *arg); + bool move3DCloud(const SGPropertyNode *arg); + public: FGClouds(); ~FGClouds(); -- 2.39.5