//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
//
#ifndef _FGCLOUDS_HXX
#define _FGCLOUDS_HXX
-#ifdef HAVE_CONFIG
-# include <config.h>
-#endif
+#include <string>
-#include <simgear/compiler.h>
-#include <simgear/sound/soundmgr_openal.hxx>
-#include <Main/fg_props.hxx>
-
-#include STL_STRING
-
-SG_USING_STD(string);
-
-class SGNewCloud;
+// forward decls
+class SGPropertyNode;
class SGCloudField;
-class FGMetar;
class FGClouds {
private:
- SGNewCloud *buildCloud(SGPropertyNode *cloud_def_root, string name);
- void buildLayer(SGCloudField *layer, string name, double alt, double coverage);
-
- void buildMETAR(void);
-
- void buildScenario( string scenario );
+ 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 setLayer( int iLayer, float alt_m, string coverage, string layer_type );
-
- void update_metar_properties( FGMetar *m );
-
- void FGClouds::update_env_config ();
+ void buildCloudLayers(void);
int update_event;
- SGSoundSample *snd_lightning;
-
- float station_elevation_ft;
+ bool clouds_3d_enabled;
+ int index;
+
+ bool add3DCloud(const SGPropertyNode *arg);
+ bool delete3DCloud(const SGPropertyNode *arg);
+ bool move3DCloud(const SGPropertyNode *arg);
+
public:
FGClouds();
~FGClouds();
- void build(void);
-
- void init(void);
+ void Init(void);
int get_update_event(void) const;
void set_update_event(int count);
+ bool get_3dClouds() const;
+ void set_3dClouds(bool enable);
};
-#endif // _FGCLOUDS_HXX
\ No newline at end of file
+#endif // _FGCLOUDS_HXX
+