DLA-Fire-Prediction-Thesis 1.0

FireArea.h

Go to the documentation of this file.
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 //----------------------------------------------------------------------------------------------------------------------
 All Classes Namespaces Files Functions Variables Enumerations Enumerator