/***************************************************************************** Header: BalloonSim.h Author: Christian Mayer Date started: 01.09.99 -------- Copyright (C) 1999 Christian Mayer (fgfs@christianmayer.de) -------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Further information about the GNU General Public License can also be found on the world wide web at http://www.gnu.org. FUNCTIONAL DESCRIPTION ------------------------------------------------------------------------------ Header for the hot air balloon simulator HISTORY ------------------------------------------------------------------------------ 01.09.1999 Christian Mayer Created 03.10.1999 Christian Mayer cleaned the code by moveing WeatherDatabase calls inside the update() *****************************************************************************/ /****************************************************************************/ /* SENTRY */ /****************************************************************************/ #ifndef BalloonSim_H #define BalloonSim_H /****************************************************************************/ /* INCLUDES */ /****************************************************************************/ #include /****************************************************************************/ /* DEFINES */ /****************************************************************************/ /****************************************************************************/ /* CLASS DECLARATION */ /****************************************************************************/ class balloon { private: float dt; //in s SGVec3f gravity_vector; //in m/s*s SGVec3f hpr; //the balloon isn't allways exactly vertical (e.g. during gusts); normalized SGVec3f velocity; //current velocity; it gets iterated at each 'update' SGVec3f position; //current position in lat/lon/alt float balloon_envelope_area; //area of the envelope float balloon_envelope_volume; //volume of the envelope float wind_facing_area_of_balloon; float wind_facing_area_of_basket; float cw_envelope; //wind resistance of the envelope float cw_basket; //wind resistance of the bakset //all weights in kg float weight_of_total_fuel; float weight_of_envelope; float weight_of_basket; //weight of all the unmovable stuff such as the basket, the burner and the empty tanks float weight_of_cargo; //passengers and anything left (e.g. sand bags that are thrown away to give additional lift) float fuel_left; //as a percentage float max_flow_of_fuel_per_second; //in percent per second float current_burner_strength; float lambda; //waermeuebergangskoeffizient (heat transmission coefficent?!?) for the envelope float l_of_the_envelope; //the thickness of the envelope (in m) float T; //tempereature inside the balloon float ground_level; public: balloon(); //constructor for initializing the balloon void update(); //dt = time in seconds since last call void set_burner_strength(const float bs); void getVelocity(SGVec3f& v) const; void setVelocity(const SGVec3f& v); void getPosition(SGVec3f& v) const; void setPosition(const SGVec3f& v); void getHPR(SGVec3f& angles) const; //the balloon isn't allways exactly vertical void setHPR(const SGVec3f& angles); //the balloon isn't allways exactly vertical void setGroundLevel(const float altitude); float getTemperature(void) const; float getFuelLeft(void) const; void set_dt(const float new_dt) { dt = new_dt; } }; /****************************************************************************/ #endif /*BalloonSim_H*/