DLA-Fire-Prediction-Thesis 1.0
|
00001 #ifndef _FIREAREA_H_ 00002 #define _FIREAREA_H_ 00003 00004 #include "ngl/Obj.h" 00005 #include "ngl/ShaderManager.h" 00006 #include "ngl/TransformStack.h" 00007 #include "ngl/Vector.h" 00008 00009 #include "DLAStructure.h" 00010 #include "FirePath.h" 00011 #include "FuelObject.h" 00012 #include "FuelPoint.h" 00013 00014 //---------------------------------------------------------------------------------------------------------------------- 00028 //---------------------------------------------------------------------------------------------------------------------- 00029 00030 class FireArea 00031 { 00032 public: 00033 //---------------------------------------------------------------------------------------------------------------------- 00041 //---------------------------------------------------------------------------------------------------------------------- 00042 FireArea( 00043 int _sceneWidth, 00044 int _sceneHeight, 00045 float _objectRadius, 00046 float _objectHeight, 00047 bool _drawMountain, 00048 int _iterations 00049 ); 00050 00051 //---------------------------------------------------------------------------------------------------------------------- 00053 //---------------------------------------------------------------------------------------------------------------------- 00054 void calculateArea(); 00055 00056 //---------------------------------------------------------------------------------------------------------------------- 00060 //---------------------------------------------------------------------------------------------------------------------- 00061 void drawArea( 00062 const std::string &_shaderName, 00063 ngl::TransformStack &_transformStack 00064 )const; 00065 00066 //---------------------------------------------------------------------------------------------------------------------- 00068 //---------------------------------------------------------------------------------------------------------------------- 00069 void seperateList(); 00070 00071 //---------------------------------------------------------------------------------------------------------------------- 00075 //---------------------------------------------------------------------------------------------------------------------- 00076 void timestep( 00077 const std::string &_shaderName, 00078 ngl::TransformStack &_transformStack 00079 ); 00080 00081 //---------------------------------------------------------------------------------------------------------------------- 00083 //---------------------------------------------------------------------------------------------------------------------- 00084 void drawDLAPath(); 00085 00086 //---------------------------------------------------------------------------------------------------------------------- 00090 //---------------------------------------------------------------------------------------------------------------------- 00091 void drawRandomobject( 00092 const std::string &_shaderName, 00093 ngl::TransformStack &_transformStack 00094 )const; 00095 00096 //---------------------------------------------------------------------------------------------------------------------- 00099 //---------------------------------------------------------------------------------------------------------------------- 00100 void pickObjectPosition( 00101 int m_amountobject 00102 ); 00103 00105 //---------------------------------------------------------------------------------------------------------------------- 00108 //---------------------------------------------------------------------------------------------------------------------- 00109 int identifyArea( 00110 ngl::Vector m_checkingArea 00111 ); 00112 00113 //---------------------------------------------------------------------------------------------------------------------- 00116 //---------------------------------------------------------------------------------------------------------------------- 00117 void buildMountain(); 00118 00119 //---------------------------------------------------------------------------------------------------------------------- 00122 //---------------------------------------------------------------------------------------------------------------------- 00123 void drawGrid( 00124 bool _wireframe 00125 ); 00126 00128 //---------------------------------------------------------------------------------------------------------------------- 00130 //---------------------------------------------------------------------------------------------------------------------- 00131 void drawBase(); 00132 00133 //---------------------------------------------------------------------------------------------------------------------- 00137 //---------------------------------------------------------------------------------------------------------------------- 00138 void adjustMountainHeight( 00139 float _adjustingHeight, 00140 int _adjustStatus 00141 ); 00142 00143 //---------------------------------------------------------------------------------------------------------------------- 00146 //---------------------------------------------------------------------------------------------------------------------- 00147 void adjustMountain( 00148 int m_adjustStatus 00149 ); 00150 00151 //---------------------------------------------------------------------------------------------------------------------- 00155 //---------------------------------------------------------------------------------------------------------------------- 00156 void toggleMountainDraw( 00157 bool _mountainDraw, 00158 int _iterations 00159 ); 00160 00161 //---------------------------------------------------------------------------------------------------------------------- 00164 //---------------------------------------------------------------------------------------------------------------------- 00165 void adjustOrigin( 00166 int _direction 00167 ); 00168 00169 //---------------------------------------------------------------------------------------------------------------------- 00171 //---------------------------------------------------------------------------------------------------------------------- 00172 void updateGridPoint(); 00173 00174 //---------------------------------------------------------------------------------------------------------------------- 00178 //---------------------------------------------------------------------------------------------------------------------- 00179 void pauseTime( 00180 bool _pauseStatus, 00181 bool _editFlag 00182 ); 00183 00184 //---------------------------------------------------------------------------------------------------------------------- 00186 //---------------------------------------------------------------------------------------------------------------------- 00187 void generateNewDLA(); 00188 00190 //---------------------------------------------------------------------------------------------------------------------- 00193 //---------------------------------------------------------------------------------------------------------------------- 00194 void adjustOriginAmount( 00195 int _newAmount 00196 ); 00197 00198 //---------------------------------------------------------------------------------------------------------------------- 00201 //---------------------------------------------------------------------------------------------------------------------- 00202 void changeMovingOriginIndex( 00203 int _currentIndex 00204 ); 00205 00206 //---------------------------------------------------------------------------------------------------------------------- 00209 //---------------------------------------------------------------------------------------------------------------------- 00210 void showMark( 00211 bool _showingMode 00212 ); 00213 00214 //---------------------------------------------------------------------------------------------------------------------- 00217 //---------------------------------------------------------------------------------------------------------------------- 00218 void showLine( 00219 bool _showingMode 00220 ); 00221 00222 //---------------------------------------------------------------------------------------------------------------------- 00225 //---------------------------------------------------------------------------------------------------------------------- 00226 void pickFlammableObjectPosition( 00227 int m_amountobject 00228 ); 00229 00230 //---------------------------------------------------------------------------------------------------------------------- 00234 //---------------------------------------------------------------------------------------------------------------------- 00235 ngl::Vector getFuelColourInTheArea( 00236 ngl::Vector m_checkingArea 00237 ); 00238 00239 //---------------------------------------------------------------------------------------------------------------------- 00242 //---------------------------------------------------------------------------------------------------------------------- 00243 void assignWindDirection( 00244 ngl::Vector _windDir 00245 ); 00246 00247 //---------------------------------------------------------------------------------------------------------------------- 00250 //---------------------------------------------------------------------------------------------------------------------- 00251 void assignWindSpeed( 00252 int _newWindSpeed 00253 ); 00254 00255 //---------------------------------------------------------------------------------------------------------------------- 00258 //---------------------------------------------------------------------------------------------------------------------- 00259 void assignWind( 00260 bool _mode 00261 ); 00262 00263 //---------------------------------------------------------------------------------------------------------------------- 00267 //---------------------------------------------------------------------------------------------------------------------- 00268 void assignNewMoisture( 00269 double _newMoisture, 00270 int _mode 00271 ); 00272 00273 //---------------------------------------------------------------------------------------------------------------------- 00276 //---------------------------------------------------------------------------------------------------------------------- 00277 void assignNewObjMoisture( 00278 double _newMoisture 00279 ); 00280 00281 //---------------------------------------------------------------------------------------------------------------------- 00284 //---------------------------------------------------------------------------------------------------------------------- 00285 void changeIndexOfObj( 00286 int _newSelectedIndex 00287 ); 00288 00289 //---------------------------------------------------------------------------------------------------------------------- 00293 //---------------------------------------------------------------------------------------------------------------------- 00294 void adjustObjSize( 00295 int _side, 00296 int _mode 00297 ); 00298 00299 //---------------------------------------------------------------------------------------------------------------------- 00303 //---------------------------------------------------------------------------------------------------------------------- 00304 std::vector<FuelPoint> analyzeGridPoint( 00305 std::vector<FuelPoint> m_newDLAForm 00306 ); 00307 private: 00308 //---------------------------------------------------------------------------------------------------------------------- 00310 //---------------------------------------------------------------------------------------------------------------------- 00311 int m_areaWidth; 00312 //---------------------------------------------------------------------------------------------------------------------- 00314 //---------------------------------------------------------------------------------------------------------------------- 00315 int m_areaHeight; 00316 00317 //---------------------------------------------------------------------------------------------------------------------- 00319 //---------------------------------------------------------------------------------------------------------------------- 00320 DLAStructure *m_dlaStructureOne; 00321 00322 //---------------------------------------------------------------------------------------------------------------------- 00324 //---------------------------------------------------------------------------------------------------------------------- 00325 FirePath *m_firePathOne; 00326 00327 //---------------------------------------------------------------------------------------------------------------------- 00329 //---------------------------------------------------------------------------------------------------------------------- 00330 std::vector<FuelPoint> m_gridPointList; 00331 //---------------------------------------------------------------------------------------------------------------------- 00333 //---------------------------------------------------------------------------------------------------------------------- 00334 std::vector<FuelPoint> m_initPointList; 00335 //---------------------------------------------------------------------------------------------------------------------- 00337 //---------------------------------------------------------------------------------------------------------------------- 00338 std::vector<FuelPoint> m_flammableList; 00339 //---------------------------------------------------------------------------------------------------------------------- 00341 //---------------------------------------------------------------------------------------------------------------------- 00342 std::vector<FuelPoint> m_nonflammableList; 00343 //---------------------------------------------------------------------------------------------------------------------- 00345 //---------------------------------------------------------------------------------------------------------------------- 00346 std::vector<FuelObject> m_nonflammableObjectList; 00347 00348 //---------------------------------------------------------------------------------------------------------------------- 00350 //---------------------------------------------------------------------------------------------------------------------- 00351 int m_timeStep; 00352 //---------------------------------------------------------------------------------------------------------------------- 00354 //---------------------------------------------------------------------------------------------------------------------- 00355 float m_pointRadius; 00356 00357 //---------------------------------------------------------------------------------------------------------------------- 00359 //---------------------------------------------------------------------------------------------------------------------- 00360 float m_objRadius; 00361 //---------------------------------------------------------------------------------------------------------------------- 00363 //---------------------------------------------------------------------------------------------------------------------- 00364 float m_objHeight; 00365 00366 //---------------------------------------------------------------------------------------------------------------------- 00368 //---------------------------------------------------------------------------------------------------------------------- 00369 int m_mountainNumber; 00370 //---------------------------------------------------------------------------------------------------------------------- 00372 //---------------------------------------------------------------------------------------------------------------------- 00373 float m_displacement; 00374 //---------------------------------------------------------------------------------------------------------------------- 00376 //---------------------------------------------------------------------------------------------------------------------- 00377 float m_terrainCircleSize; 00378 00379 //---------------------------------------------------------------------------------------------------------------------- 00381 //---------------------------------------------------------------------------------------------------------------------- 00382 int m_indexOfOrigin; 00383 //---------------------------------------------------------------------------------------------------------------------- 00385 //---------------------------------------------------------------------------------------------------------------------- 00386 bool m_drawMountain; 00387 //---------------------------------------------------------------------------------------------------------------------- 00389 //---------------------------------------------------------------------------------------------------------------------- 00390 bool m_pauseAnimation; 00391 //---------------------------------------------------------------------------------------------------------------------- 00393 //---------------------------------------------------------------------------------------------------------------------- 00394 bool m_showPath; 00395 //---------------------------------------------------------------------------------------------------------------------- 00397 //---------------------------------------------------------------------------------------------------------------------- 00398 ngl::Vector m_originPosition; 00399 00400 //---------------------------------------------------------------------------------------------------------------------- 00402 //---------------------------------------------------------------------------------------------------------------------- 00403 int m_numberOfOrigin; 00404 //---------------------------------------------------------------------------------------------------------------------- 00406 //---------------------------------------------------------------------------------------------------------------------- 00407 int m_originIndex; 00408 //---------------------------------------------------------------------------------------------------------------------- 00410 //---------------------------------------------------------------------------------------------------------------------- 00411 std::vector<FuelPoint> m_originList; 00412 //---------------------------------------------------------------------------------------------------------------------- 00414 //---------------------------------------------------------------------------------------------------------------------- 00415 bool m_markShowing; 00416 //---------------------------------------------------------------------------------------------------------------------- 00418 //---------------------------------------------------------------------------------------------------------------------- 00419 std::vector<FuelPoint> m_currentDLAList; 00420 //---------------------------------------------------------------------------------------------------------------------- 00422 //---------------------------------------------------------------------------------------------------------------------- 00423 std::vector<FuelPoint> m_currentDLALine; 00424 //---------------------------------------------------------------------------------------------------------------------- 00426 //---------------------------------------------------------------------------------------------------------------------- 00427 int m_dlaAmount; 00428 //---------------------------------------------------------------------------------------------------------------------- 00430 //---------------------------------------------------------------------------------------------------------------------- 00431 std::vector<ngl::Vector> m_currentNonFlammableList; 00432 00433 //---------------------------------------------------------------------------------------------------------------------- 00435 //---------------------------------------------------------------------------------------------------------------------- 00436 int m_approxDLASize; 00437 00438 //---------------------------------------------------------------------------------------------------------------------- 00440 //---------------------------------------------------------------------------------------------------------------------- 00441 std::vector<ngl::Vector> m_currentFlammableList; 00442 00443 //---------------------------------------------------------------------------------------------------------------------- 00445 //---------------------------------------------------------------------------------------------------------------------- 00446 std::vector<FuelObject> m_flammableObjectList; 00447 00448 //---------------------------------------------------------------------------------------------------------------------- 00450 //---------------------------------------------------------------------------------------------------------------------- 00451 ngl::Vector m_windDirection; 00452 //---------------------------------------------------------------------------------------------------------------------- 00454 //---------------------------------------------------------------------------------------------------------------------- 00455 int m_windSpeed; 00456 //---------------------------------------------------------------------------------------------------------------------- 00458 //---------------------------------------------------------------------------------------------------------------------- 00459 bool m_addWind; 00460 //---------------------------------------------------------------------------------------------------------------------- 00462 //---------------------------------------------------------------------------------------------------------------------- 00463 double m_sceneTemperature; 00464 //---------------------------------------------------------------------------------------------------------------------- 00466 //---------------------------------------------------------------------------------------------------------------------- 00467 double m_sceneMoisture; 00468 //---------------------------------------------------------------------------------------------------------------------- 00470 //---------------------------------------------------------------------------------------------------------------------- 00471 float m_approxObjMoisture; 00472 //---------------------------------------------------------------------------------------------------------------------- 00474 //---------------------------------------------------------------------------------------------------------------------- 00475 int m_objIndex; 00476 00477 }; // end class 00478 00479 #endif // _FIREAREA_H_ 00480 00481 //----------------------------------------------------------------------------------------------------------------------