DLA-Fire-Prediction-Thesis 1.0
|
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 }