+ inline double getStrength() const { return strength; };
+ inline double getDiameter() const { return diameter; };
+ inline double getHeight() const { return height; };
+ inline double getV_up_max() const { return v_up_max; };
+ inline double getV_up_min() const { return v_up_min; };
+ inline double getR_up_frac() const { return r_up_frac; };
+
+ virtual const char* getTypeString(void) const { return "thermal"; }
+ void getGroundElev(double dt);
+
+private:
+ void Run(double dt);
+ double get_strength_fac(double alt_frac);
+ double max_strength;
+ double strength;
+ double diameter;
+ double height;
+ double factor;
+ double alt_rel;
+ double alt;
+ double v_up_max;
+ double v_up_min;
+ double r_up_frac;
+ double cycle_timer;
+ double dt_count;
+ double time;
+ double xx;
+ double ground_elev_ft; // ground level in ft
+ double altitude_agl_ft; // altitude above ground in feet
+ bool do_agl_calc;
+ bool is_forming;
+ bool is_formed;
+ bool is_dying;
+ bool is_dead;
+ SGPropertyNode_ptr _surface_wind_from_deg_node;
+ SGPropertyNode_ptr _surface_wind_speed_node;
+ SGPropertyNode_ptr _aloft_wind_from_deg_node;
+ SGPropertyNode_ptr _aloft_wind_speed_node;
+
+};