1 // Build a cloud layer based on metar 2 // 3 // Written by Harald JOHNSEN, started April 2005. 4 // 5 // Copyright (C) 2005 Harald JOHNSEN - hjohnsen@evc.net 6 // 7 // This program is free software; you can redistribute it and/or 8 // modify it under the terms of the GNU General Public License as 9 // published by the Free Software Foundation; either version 2 of the 10 // License, or (at your option) any later version. 11 // 12 // This program is distributed in the hope that it will be useful, but 13 // WITHOUT ANY WARRANTY; without even the implied warranty of 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 // General Public License for more details. 16 // 17 // You should have received a copy of the GNU General Public License 18 // along with this program; if not, write to the Free Software 19 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 // 21 // 22 #ifndef _FGCLOUDS_HXX 23 #define _FGCLOUDS_HXX 24 25 #include <string> 26 27 // forward decls 28 class SGPropertyNode; 29 class SGCloudField; 30 31 class FGClouds { 32 33 private: 34 double buildCloud(SGPropertyNode *cloud_def_root, SGPropertyNode *box_def_root, 35 const std::string& name, double grid_z_rand, SGCloudField *layer); 36 void buildLayer(int iLayer, const std::string& name, double coverage); 37 38 void buildCloudLayers(void); 39 40 int update_event; 41 42 bool clouds_3d_enabled; 43 int index; 44 45 bool add3DCloud(const SGPropertyNode *arg, SGPropertyNode * root); 46 bool delete3DCloud(const SGPropertyNode *arg, SGPropertyNode * root); 47 bool move3DCloud(const SGPropertyNode *arg, SGPropertyNode * root); 48 49 public: 50 FGClouds(); 51 ~FGClouds(); 52 53 void Init(void); 54 55 int get_update_event(void) const; 56 void set_update_event(int count); 57 bool get_3dClouds() const; 58 void set_3dClouds(bool enable); 59 60 }; 61 62 #endif // _FGCLOUDS_HXX 63 64