DLA-Fire-Prediction-Thesis 1.0

FuelPoint.cpp

Go to the documentation of this file.
00001 //----------------------------------------------------------------------------------------------------------------------
00004 //----------------------------------------------------------------------------------------------------------------------
00005 
00006 #include "FuelPoint.h"
00007 
00008 #include "ngl/Vector.h"
00009 
00010 #include "GLWindow.h"
00011 
00012 //----------------------------------------------------------------------------------------------------------------------
00013 // ctor of point
00014 FuelPoint::FuelPoint(
00015                     ngl::Vector _pointPosition,
00016                     int _pointStatus
00017                     )
00018 {
00019     m_position = _pointPosition;
00020 
00021     if(_pointStatus==1)             // flammable point starts with 100 fuel power
00022     {
00023         // ----- flammable point
00024         m_isFlammable = true;
00025         m_isBurning = false;
00026         m_fuel = 100.0;
00027         // set initial colour to green, depends on the fuel amount
00028         float m_fuelColour = m_fuel/100;
00029         m_currentColour = ngl::Vector(0.0f,m_fuelColour,0.0f);
00030 
00031         m_moisture = 0.1;
00032         m_isMountainPoint = false;
00033         m_isOrigin = false;
00034     }
00035     else                            // non-flammable starts with no fuel
00036     {
00037         // ----- non-flammable point
00038         m_isFlammable = false;
00039         m_isBurning = false;
00040         m_fuel = 0.0;
00041         // set initial colour
00042         m_currentColour = ngl::Vector(0.0f,0.0f,1.0f);
00043 
00044         m_moisture = 0.8;
00045         m_isMountainPoint = false;
00046         m_isOrigin = false;
00047     }
00048 
00049     m_pointCircleSize = 1.0f;
00050     m_pointCircleHeight = 1.0f;
00051     m_isFuel = false;
00052 
00053     m_burningTimeAtThePoint = 10.0;
00054 
00055     m_emittedHeat = 0.0;
00056 
00057     m_generation = 0;
00058 
00059     m_gridIndex = 0;
00060     m_burningFormNumber = -10;   // negative 10 means it has not been burnt yet
00061     m_isBurningDown = false;
00062     m_draw = true;
00063 }
00064 
00065 //----------------------------------------------------------------------------------------------------------------------
00066 bool FuelPoint::canDraw()
00067 {
00068     return m_draw;
00069 }
00070 
00071 //----------------------------------------------------------------------------------------------------------------------
00072 void FuelPoint::setDrawingFlag(bool _drawFlag)
00073 {
00074     m_draw = _drawFlag;
00075 }
00076 
00077 //----------------------------------------------------------------------------------------------------------------------
00078 bool FuelPoint::isBurningDown()
00079 {
00080     return m_isBurningDown;
00081 }
00082 
00083 //----------------------------------------------------------------------------------------------------------------------
00084 void FuelPoint::setToBeBurningDown()
00085 {
00086     m_isBurningDown = true;
00087 }
00088 
00089 //----------------------------------------------------------------------------------------------------------------------
00090 int FuelPoint::getBurningFormNumber()
00091 {
00092     return m_burningFormNumber;
00093 }
00094 
00095 //----------------------------------------------------------------------------------------------------------------------
00096 void FuelPoint::setBurningFormNumber(int _formNumber)
00097 {
00098     m_burningFormNumber = _formNumber;
00099 }
00100 
00101 //----------------------------------------------------------------------------------------------------------------------
00102 int FuelPoint::getGridIndex()
00103 {
00104     return m_gridIndex;
00105 }
00106 
00107 //----------------------------------------------------------------------------------------------------------------------
00108 void FuelPoint::setGridIndex(int _gridIndex)
00109 {
00110     m_gridIndex = _gridIndex;
00111 }
00112 
00113 //----------------------------------------------------------------------------------------------------------------------
00114 bool FuelPoint::isMointain()
00115 {
00116     return m_isMountainPoint;
00117 }
00118 
00119 //----------------------------------------------------------------------------------------------------------------------
00120 void FuelPoint::setGeneration(
00121                              int _generationNumber
00122                              )
00123 {
00124     m_generation = _generationNumber;
00125 }
00126 
00127 //----------------------------------------------------------------------------------------------------------------------
00128 int FuelPoint::getGeneration()
00129 {
00130     return m_generation;
00131 }
00132 
00133 //----------------------------------------------------------------------------------------------------------------------
00134 void FuelPoint::setToBeBigFuel(
00135                               float _fuelAmount
00136                               )
00137 {
00138     m_fuel = _fuelAmount;
00139     m_isFuel = true;
00140 }
00141 
00142 //----------------------------------------------------------------------------------------------------------------------
00143 bool FuelPoint::isFuel()
00144 {
00145     return m_isFuel;
00146 }
00147 
00148 //----------------------------------------------------------------------------------------------------------------------
00149 void FuelPoint::setToBeNonBigFuel()
00150 {
00151     m_isFuel = false;
00152 }
00153 
00154 //----------------------------------------------------------------------------------------------------------------------
00155 void FuelPoint::setBurningTime(
00156                               float _burningTime
00157                               )
00158 {
00159     if(_burningTime<0)
00160         _burningTime = 1;
00161     else if(_burningTime>15)
00162         _burningTime = 15;
00163 
00164     m_burningTimeAtThePoint = _burningTime;
00165 }
00166 
00167 //----------------------------------------------------------------------------------------------------------------------
00168 float FuelPoint::getBurningTime()
00169 {
00170     return m_burningTimeAtThePoint;
00171 }
00172 
00173 //----------------------------------------------------------------------------------------------------------------------
00174 float FuelPoint::getEmittedHeat()
00175 {
00176     return m_emittedHeat;
00177 }
00178 
00179 //----------------------------------------------------------------------------------------------------------------------
00180 void FuelPoint::setEmittedHeat(
00181                               float _heat
00182                               )
00183 {
00184     m_emittedHeat = _heat;
00185 
00186     // set the colour along the heat
00187     m_currentColour = ngl::Vector(_heat/1000, (1000-_heat)/1000 , 0.0);
00188 
00189 }
00190 
00191 //----------------------------------------------------------------------------------------------------------------------
00192 void FuelPoint::setToBeMountain(
00193                                float _circleSize,
00194                                float _circleHeight
00195                                )
00196 {
00197     m_isMountainPoint = true;
00198     m_pointCircleSize = _circleSize;
00199     m_pointCircleHeight = _circleHeight;
00200 }
00201 
00202 //----------------------------------------------------------------------------------------------------------------------
00203 void FuelPoint::setPosition(
00204                            ngl::Vector _newPosition
00205                            )
00206 {
00207     m_position = _newPosition;
00208 }
00209 
00210 //----------------------------------------------------------------------------------------------------------------------
00211 ngl::Vector& FuelPoint::getPosition()
00212 {
00213     return m_position;
00214 }
00215 
00216 //----------------------------------------------------------------------------------------------------------------------
00217 ngl::Vector& FuelPoint::getColour()
00218 {
00219     return m_currentColour;
00220 }
00221 
00222 //----------------------------------------------------------------------------------------------------------------------
00223 void FuelPoint::changeColour(
00224                             ngl::Vector _assignedColour
00225                             )
00226 {
00227     m_currentColour = _assignedColour;
00228 }
00229 
00230 //----------------------------------------------------------------------------------------------------------------------
00231 void FuelPoint::makeToBeNonflammable()
00232 {
00233     m_isFlammable = false;
00234     m_fuel = 0.0;
00235     // set initial colour to blue
00236     m_currentColour = ngl::Vector(0.0f,0.0f,1.0f);
00237 
00238     m_moisture = 1.0;
00239 }
00240 
00241 //----------------------------------------------------------------------------------------------------------------------
00242 void FuelPoint::makeToBeflammable(
00243                                  float _fuel
00244                                  )
00245 {
00246     m_isFlammable = true;
00247     m_fuel = _fuel;
00248     float m_fuelColour = m_fuel/100;
00249     // set initial colour to green, depends on the adding fuel
00250     m_currentColour = ngl::Vector(0.0f,m_fuelColour,0.0f);
00251 }
00252 
00253 //----------------------------------------------------------------------------------------------------------------------
00254 void FuelPoint::setFire()
00255 {
00256     m_isBurning = true;
00257     float m_fuelColour = m_fuel/100;
00258     // set colour of the burning point to red, depends on fuel amount
00259     m_currentColour = ngl::Vector(m_fuelColour,0.0f,0.0f);
00260 }
00261 
00262 //----------------------------------------------------------------------------------------------------------------------
00263 void FuelPoint::setFuelAmount(
00264                              float _newFuel
00265                              )
00266 {
00267     m_fuel = _newFuel;
00268     float m_fuelColour = m_fuel/100;
00269     // set colour of the burning point to red, depends on fuel amount
00270     m_currentColour = ngl::Vector(0.0f,m_fuelColour,0.0f);
00271 }
00272 
00273 //----------------------------------------------------------------------------------------------------------------------
00274 // this function will change the colour if the point is in burning state
00275 void FuelPoint::subtractFuel(
00276                             float _decreaseAmount
00277                             )
00278 {
00279     if(m_fuel>0.0)
00280     {
00281         m_fuel = m_fuel-_decreaseAmount;
00282 
00283         //float m_fuelColour = m_fuel/100;
00284         // set colour of the burning point to red, depends on fuel amount
00285         //m_currentColour = ngl::Vector(m_fuelColour,0.0f,0.0f);
00286     }
00287     else
00288     {
00289         m_fuel = 0.0;
00290     }
00291 
00292 }
00293 
00294 //----------------------------------------------------------------------------------------------------------------------
00295 bool FuelPoint::isFlammable()
00296 {
00297     return m_isFlammable;
00298 }
00299 
00300 //----------------------------------------------------------------------------------------------------------------------
00301 bool FuelPoint::isBurning()
00302 {
00303     return m_isBurning;
00304 }
00305 
00306 //----------------------------------------------------------------------------------------------------------------------
00307 float FuelPoint::getCurrentFuelValue()
00308 {
00309     return m_fuel;
00310 }
00311 
00312 //----------------------------------------------------------------------------------------------------------------------
00313 float FuelPoint::getMoisture()
00314 {
00315     return m_moisture;
00316 }
00317 
00318 //----------------------------------------------------------------------------------------------------------------------
00319 void FuelPoint::setNewMoisture(
00320                               float _moistureAmount
00321                               )
00322 {
00323     m_moisture = _moistureAmount;
00324 }
00325 
00326 //----------------------------------------------------------------------------------------------------------------------
00327 void FuelPoint::decreaseMoisture(
00328                                 float _decreasedAmount
00329                                 )
00330 {
00331     m_moisture -= _decreasedAmount;
00332 }
00333 
00334 //----------------------------------------------------------------------------------------------------------------------
00335 float FuelPoint::getCircleHeight()
00336 {
00337     return m_pointCircleHeight;
00338 }
00339 
00340 //----------------------------------------------------------------------------------------------------------------------
00341 float FuelPoint::getCircleSize()
00342 {
00343     return m_pointCircleSize;
00344 }
00345 
00346 //----------------------------------------------------------------------------------------------------------------------
00347 void FuelPoint::setCircleHeight(
00348                                float m_circleHeight
00349                                )
00350 {
00351     m_pointCircleHeight = m_circleHeight;
00352 }
00353 
00354 //----------------------------------------------------------------------------------------------------------------------
00355 void FuelPoint::setToOrigin()
00356 {
00357     m_isOrigin = true;
00358 }
00359 
00360 //----------------------------------------------------------------------------------------------------------------------
00361 void FuelPoint::setToRegular()
00362 {
00363     m_isOrigin = false;
00364 }
00365 
00366 //----------------------------------------------------------------------------------------------------------------------
00367 bool FuelPoint::isOrigin()
00368 {
00369     return m_isOrigin;
00370 }
 All Classes Namespaces Files Functions Variables Enumerations Enumerator