DLA-Fire-Prediction-Thesis 1.0

FirePath.h

Go to the documentation of this file.
00001 #ifndef _FIREPATH_H_
00002 #define _FIREPATH_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 "FuelObject.h"
00010 #include "FuelPoint.h"
00011 
00012 //----------------------------------------------------------------------------------------------------------------------
00024 //----------------------------------------------------------------------------------------------------------------------
00025 
00026 class FirePath
00027 {
00028 public:
00029     //----------------------------------------------------------------------------------------------------------------------
00039     //----------------------------------------------------------------------------------------------------------------------
00040     FirePath(
00041             std::vector<FuelPoint> _allDLAList,
00042             std::vector<FuelPoint> _allDLALine,
00043             std::vector<FuelPoint> _fuelList,
00044             float _approxObjMoisture,
00045             std::vector<FuelPoint> _originList,
00046             bool _windStatus,
00047             int _windSpeed,
00048             ngl::Vector _windDirection
00049             );
00050 
00051     //----------------------------------------------------------------------------------------------------------------------
00055     //----------------------------------------------------------------------------------------------------------------------
00056     void drawDLAPath(
00057                     const std::string &_shaderName,
00058                     ngl::TransformStack &_transformStack
00059                     );
00060 
00061     //----------------------------------------------------------------------------------------------------------------------
00065     //----------------------------------------------------------------------------------------------------------------------
00066     void updateDLAList(
00067                       std::vector<FuelPoint> _allDLAList,
00068                       std::vector<FuelPoint> _allDLALine
00069                       );
00070 
00071     //----------------------------------------------------------------------------------------------------------------------
00074     //----------------------------------------------------------------------------------------------------------------------
00075     void updateFuelOnGrid(
00076                          std::vector<FuelPoint> _fuelOnGridList
00077                          );
00078 
00079     //----------------------------------------------------------------------------------------------------------------------
00081     //----------------------------------------------------------------------------------------------------------------------
00082     void resetFuel();
00083 
00084     //----------------------------------------------------------------------------------------------------------------------
00087     //----------------------------------------------------------------------------------------------------------------------
00088     std::vector<FuelPoint> getCurrentFuelList();
00089 
00090     //----------------------------------------------------------------------------------------------------------------------
00092     //----------------------------------------------------------------------------------------------------------------------
00093     void resetFuelListToOriginal();
00094 
00095     //----------------------------------------------------------------------------------------------------------------------
00098     //----------------------------------------------------------------------------------------------------------------------
00099     void timeUpdate(
00100                    int _time
00101                    );
00102 
00103     //----------------------------------------------------------------------------------------------------------------------
00105     //----------------------------------------------------------------------------------------------------------------------
00106     void resetList();
00107 
00108     //----------------------------------------------------------------------------------------------------------------------
00110     //----------------------------------------------------------------------------------------------------------------------
00111     void controlFirePathColour();
00112 
00113     //----------------------------------------------------------------------------------------------------------------------
00116     //----------------------------------------------------------------------------------------------------------------------
00117     void assignNewMoisture(
00118                           double _newMoisture
00119                           );
00120 
00121     //----------------------------------------------------------------------------------------------------------------------
00124     //----------------------------------------------------------------------------------------------------------------------
00125     void assignNewTemp(
00126                       double _newTemp
00127                       );
00128 
00129     //----------------------------------------------------------------------------------------------------------------------
00131     //----------------------------------------------------------------------------------------------------------------------
00132     void setFirePath();
00133 
00134     //----------------------------------------------------------------------------------------------------------------------
00137     //----------------------------------------------------------------------------------------------------------------------
00138     void assignNewObjMoisture(
00139                              float _newObjMoisture
00140                              );
00141 
00142     //----------------------------------------------------------------------------------------------------------------------
00144     //----------------------------------------------------------------------------------------------------------------------
00145     void analyzeBurningArea();
00146 
00147     //----------------------------------------------------------------------------------------------------------------------
00150     //----------------------------------------------------------------------------------------------------------------------
00151     void setNewOriginList(
00152                          std::vector<FuelPoint> _newOriginList
00153                          );
00154 
00155     //----------------------------------------------------------------------------------------------------------------------
00158     //----------------------------------------------------------------------------------------------------------------------
00159     void analyzeDLAAmount(
00160                          int m_newTime
00161                          );
00162 
00163     //----------------------------------------------------------------------------------------------------------------------
00166     //----------------------------------------------------------------------------------------------------------------------
00167     void resetGrid(
00168                   std::vector<FuelPoint> _currentGridPoint
00169                   );
00170 
00171     //----------------------------------------------------------------------------------------------------------------------
00174     //----------------------------------------------------------------------------------------------------------------------
00175     void pauseTheAnimation(bool _status);
00176 
00177     //----------------------------------------------------------------------------------------------------------------------
00181     //----------------------------------------------------------------------------------------------------------------------
00182     int getIndexNumber(
00183                       ngl::Vector m_position
00184                       );
00185 
00186     //----------------------------------------------------------------------------------------------------------------------
00191     //----------------------------------------------------------------------------------------------------------------------
00192     void transferHeat(
00193                      int m_gridIndex,
00194                      int m_heat,
00195                      int m_mode
00196                      );
00197 
00198     //----------------------------------------------------------------------------------------------------------------------
00200     //----------------------------------------------------------------------------------------------------------------------
00201     void calculateRateOfGrowth();
00202 
00203     //----------------------------------------------------------------------------------------------------------------------
00207     //----------------------------------------------------------------------------------------------------------------------
00208     bool checkCollisionWithBurningArea(
00209                                       ngl::Vector m_currentPos
00210                                       );
00211 
00212     //----------------------------------------------------------------------------------------------------------------------
00215     //----------------------------------------------------------------------------------------------------------------------
00216     void showFireLineOnly(
00217                          bool _showingLineOnlyStatus
00218                          );
00219 private:
00220     //----------------------------------------------------------------------------------------------------------------------
00222     //----------------------------------------------------------------------------------------------------------------------
00223     std::vector<FuelPoint> m_fireDLAForm;
00224     //----------------------------------------------------------------------------------------------------------------------
00226     //----------------------------------------------------------------------------------------------------------------------
00227     std::vector<FuelPoint> m_fireDLALine;
00228     //----------------------------------------------------------------------------------------------------------------------
00230     //----------------------------------------------------------------------------------------------------------------------
00231     std::vector<FuelPoint> m_fuelOnGridList;
00232     //----------------------------------------------------------------------------------------------------------------------
00234     //----------------------------------------------------------------------------------------------------------------------
00235     std::vector<FuelPoint> m_originalFuelOnGridList;
00236     //----------------------------------------------------------------------------------------------------------------------
00238     //----------------------------------------------------------------------------------------------------------------------
00239     std::vector<FuelPoint> m_gridList;
00240     //----------------------------------------------------------------------------------------------------------------------
00242     //----------------------------------------------------------------------------------------------------------------------
00243     std::vector<FuelPoint> m_originList;
00244     //----------------------------------------------------------------------------------------------------------------------
00246     //----------------------------------------------------------------------------------------------------------------------
00247     std::vector<FuelPoint> m_currentIndexForm;
00248     //----------------------------------------------------------------------------------------------------------------------
00250     //----------------------------------------------------------------------------------------------------------------------
00251     std::vector<FuelPoint> m_burningPointList;
00252 
00253     //----------------------------------------------------------------------------------------------------------------------
00255     //----------------------------------------------------------------------------------------------------------------------
00256     int m_timeStep;
00257     //----------------------------------------------------------------------------------------------------------------------
00259     //----------------------------------------------------------------------------------------------------------------------
00260     int m_currentDLAPointIndex;
00261     //----------------------------------------------------------------------------------------------------------------------
00263     //----------------------------------------------------------------------------------------------------------------------
00264     bool m_allShow;
00265 
00266     //----------------------------------------------------------------------------------------------------------------------
00268     //----------------------------------------------------------------------------------------------------------------------
00269     float m_rateOfGrowth;
00270 
00271     //----------------------------------------------------------------------------------------------------------------------
00273     //----------------------------------------------------------------------------------------------------------------------
00274     double m_sceneMoisture;
00275     //----------------------------------------------------------------------------------------------------------------------
00277     //----------------------------------------------------------------------------------------------------------------------
00278     double m_sceneTemp;
00279     //----------------------------------------------------------------------------------------------------------------------
00281     //----------------------------------------------------------------------------------------------------------------------
00282     float m_objMoisture;
00283     //----------------------------------------------------------------------------------------------------------------------
00285     //----------------------------------------------------------------------------------------------------------------------
00286     bool m_pause;
00287 
00288     //----------------------------------------------------------------------------------------------------------------------
00290     //----------------------------------------------------------------------------------------------------------------------
00291     ngl::Vector m_windDirection;
00292     //----------------------------------------------------------------------------------------------------------------------
00294     //----------------------------------------------------------------------------------------------------------------------
00295     int m_windSpeed;
00296     //----------------------------------------------------------------------------------------------------------------------
00298     //----------------------------------------------------------------------------------------------------------------------
00299     bool m_windEnable;
00300     //----------------------------------------------------------------------------------------------------------------------
00302     //----------------------------------------------------------------------------------------------------------------------
00303     bool m_onlyLine;
00304 
00305 }; // end class
00306 
00307 //----------------------------------------------------------------------------------------------------------------------
00308 
00309 #endif // _FIREPATH_H_
 All Classes Namespaces Files Functions Variables Enumerations Enumerator