DLA-Fire-Prediction-Thesis 1.0

DLAStructure.h

Go to the documentation of this file.
00001 #ifndef _DLASTRUCTURE_H_
00002 #define _DLASTRUCTURE_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 //----------------------------------------------------------------------------------------------------------------------
00028 //----------------------------------------------------------------------------------------------------------------------
00029 
00030 class DLAStructure
00031 {
00032 public:
00033     //----------------------------------------------------------------------------------------------------------------------
00035     //----------------------------------------------------------------------------------------------------------------------
00036     DLAStructure();
00037 
00038     //----------------------------------------------------------------------------------------------------------------------
00049     //----------------------------------------------------------------------------------------------------------------------
00050     DLAStructure(
00051                std::vector<FuelPoint>  _gridPointList,
00052                std::vector<FuelObject>  _objectPointList,
00053                ngl::Vector _originPoint,
00054                int _sceneWidth,
00055                int _sceneHeight,
00056                float _pointRadius,
00057                int _dlaSize,
00058                ngl::Vector _windDirection,
00059                int _windSpeed
00060                );
00061 
00062     //----------------------------------------------------------------------------------------------------------------------
00076     //----------------------------------------------------------------------------------------------------------------------
00077     DLAStructure(
00078                std::vector<FuelPoint>  _gridPointList,
00079                std::vector<FuelObject>  _objectPointList,
00080                ngl::Vector _originPoint,
00081                int _sceneWidth,
00082                int _sceneHeight,
00083                float _pointRadius,
00084                std::vector<FuelPoint>  _previousDLAPoint,
00085                std::vector<FuelPoint> _otherOriginList,
00086                int _currentOriginIndex,
00087                int _dlaSize,
00088                ngl::Vector _windDirection,
00089                int _windSpeed
00090                );
00091 
00092     //----------------------------------------------------------------------------------------------------------------------
00095     //----------------------------------------------------------------------------------------------------------------------
00096     void findPath(
00097                  FuelPoint m_originPoint
00098                  );
00099 
00100     //----------------------------------------------------------------------------------------------------------------------
00105     //----------------------------------------------------------------------------------------------------------------------
00106     void assignDLA(
00107                   ngl::Vector m_newDLAPoint,
00108                   ngl::Vector m_seed,
00109                   int m_generationNumber
00110                   );
00111 
00112     //----------------------------------------------------------------------------------------------------------------------
00116     //----------------------------------------------------------------------------------------------------------------------
00117     ngl::Vector moveRandomPoint(
00118                                ngl::Vector m_currentPoint,
00119                                int m_mode
00120                                );
00121 
00122     //----------------------------------------------------------------------------------------------------------------------
00127     //----------------------------------------------------------------------------------------------------------------------
00128     int findFarthestPos(
00129                        int m_numberOne,
00130                        int m_numberTwo,
00131                        int m_numberThree
00132                        );
00133 
00134     //----------------------------------------------------------------------------------------------------------------------
00138     //----------------------------------------------------------------------------------------------------------------------
00139     int findMaximumSide(
00140                        ngl::Vector m_travelerPos,
00141                        ngl::Vector m_seedPos
00142                        );
00143 
00144     //----------------------------------------------------------------------------------------------------------------------
00150     //----------------------------------------------------------------------------------------------------------------------
00151     int findSideOfMaximumPosition(
00152                                  ngl::Vector m_travelerPos,
00153                                  ngl::Vector m_seedPos,
00154                                  int m_maximumSide
00155                                  );
00156 
00157     //----------------------------------------------------------------------------------------------------------------------
00160     //----------------------------------------------------------------------------------------------------------------------
00161     int checkCollision(
00162                       ngl::Vector m_travelerPos
00163                       );
00164 
00165     //----------------------------------------------------------------------------------------------------------------------
00170     //----------------------------------------------------------------------------------------------------------------------
00171     ngl::Vector getRandomPosition (
00172                                   ngl::Vector m_currentPos,
00173                                   float m_radius,
00174                                   int m_randomMode
00175                                   );
00176 
00177     //----------------------------------------------------------------------------------------------------------------------
00181     //----------------------------------------------------------------------------------------------------------------------
00182     float setDecimalValue(
00183                          float m_number,
00184                          int m_decimalPlaces
00185                          );
00186 
00187     //----------------------------------------------------------------------------------------------------------------------
00191     //----------------------------------------------------------------------------------------------------------------------
00192     ngl::Vector checkBoundary(
00193                              ngl::Vector m_newDLAPoint
00194                              );
00195 
00196     //----------------------------------------------------------------------------------------------------------------------
00199     //----------------------------------------------------------------------------------------------------------------------
00200     int checkCollisionWithNonFlammableObject(
00201                                             ngl::Vector m_newDLAPoint
00202                                             );
00203 
00204     //----------------------------------------------------------------------------------------------------------------------
00206     //----------------------------------------------------------------------------------------------------------------------
00207     void adaptPoint();
00208 
00209     //----------------------------------------------------------------------------------------------------------------------
00212     //----------------------------------------------------------------------------------------------------------------------
00213     float getCurrentYPos(
00214                         ngl::Vector m_currentDLAPos
00215                         );
00216 
00217     //----------------------------------------------------------------------------------------------------------------------
00220     //----------------------------------------------------------------------------------------------------------------------
00221     std::vector<FuelPoint> getDLAList();
00222 
00223     //----------------------------------------------------------------------------------------------------------------------
00226     //-----------------------------------------------------------------------------------------------------------------------
00227     std::vector<FuelPoint> getDLALine();
00228 
00229     //----------------------------------------------------------------------------------------------------------------------
00231     //----------------------------------------------------------------------------------------------------------------------
00232     void arrangeList();
00233 
00234     //----------------------------------------------------------------------------------------------------------------------
00237     //----------------------------------------------------------------------------------------------------------------------
00238     int checkCollisionWithOtherDLA(
00239                                   ngl::Vector m_newDLAPoint
00240                                   );
00241 
00242     //----------------------------------------------------------------------------------------------------------------------
00245     //----------------------------------------------------------------------------------------------------------------------
00246     int checkCollisionWithOtherOrigin(
00247                                   ngl::Vector m_newDLAPoint
00248                                   );
00249 private:
00250     //----------------------------------------------------------------------------------------------------------------------
00252     //----------------------------------------------------------------------------------------------------------------------
00253     int m_sceneWidth;
00254     //----------------------------------------------------------------------------------------------------------------------
00256     //----------------------------------------------------------------------------------------------------------------------
00257     int m_sceneHeight;
00258 
00259     //----------------------------------------------------------------------------------------------------------------------
00261     //----------------------------------------------------------------------------------------------------------------------
00262     std::vector<FuelPoint> m_scenePointList;
00263     //----------------------------------------------------------------------------------------------------------------------
00265     //----------------------------------------------------------------------------------------------------------------------
00266     std::vector<FuelPoint> m_dlaLine;
00267     //----------------------------------------------------------------------------------------------------------------------
00269     //----------------------------------------------------------------------------------------------------------------------
00270     std::vector<FuelPoint> m_dlaList;
00271     //----------------------------------------------------------------------------------------------------------------------
00273     //----------------------------------------------------------------------------------------------------------------------
00274     std::vector<FuelObject> m_objList;
00275 
00276     //----------------------------------------------------------------------------------------------------------------------
00278     //----------------------------------------------------------------------------------------------------------------------
00279     float m_circleRadius;
00280     //----------------------------------------------------------------------------------------------------------------------
00282     //----------------------------------------------------------------------------------------------------------------------
00283     float m_pointRadius;
00284     //----------------------------------------------------------------------------------------------------------------------
00286     //----------------------------------------------------------------------------------------------------------------------
00287     float m_dlaPointDistance;
00288     //----------------------------------------------------------------------------------------------------------------------
00290     //----------------------------------------------------------------------------------------------------------------------
00291     int m_dlaSize;
00292 
00293     //----------------------------------------------------------------------------------------------------------------------
00295     //----------------------------------------------------------------------------------------------------------------------
00296     ngl::Vector m_originSeed;
00297 
00298     //----------------------------------------------------------------------------------------------------------------------
00300     //----------------------------------------------------------------------------------------------------------------------
00301     std::vector<FuelPoint> m_otherOriginList;
00302 
00303     //----------------------------------------------------------------------------------------------------------------------
00305     //----------------------------------------------------------------------------------------------------------------------
00306     bool m_checkForm;
00307 
00308     //----------------------------------------------------------------------------------------------------------------------
00310     //----------------------------------------------------------------------------------------------------------------------
00311     ngl::Vector m_windDir;
00312     //----------------------------------------------------------------------------------------------------------------------
00314     //----------------------------------------------------------------------------------------------------------------------
00315     int m_windSpeed;
00316     //----------------------------------------------------------------------------------------------------------------------
00318     //----------------------------------------------------------------------------------------------------------------------
00319     bool m_windEnabled;
00320     //----------------------------------------------------------------------------------------------------------------------
00322     //----------------------------------------------------------------------------------------------------------------------
00323     std::vector<FuelPoint>  m_previousDLAList;
00324     //----------------------------------------------------------------------------------------------------------------------
00326     //----------------------------------------------------------------------------------------------------------------------
00327     int m_currentOriginIndex;
00328     //----------------------------------------------------------------------------------------------------------------------
00330     //----------------------------------------------------------------------------------------------------------------------
00331     int m_distanceForm;
00332 
00333 }; // end class
00334 
00335 #endif // _DLASTRUCTURE_H_
00336 
00337 //----------------------------------------------------------------------------------------------------------------------
 All Classes Namespaces Files Functions Variables Enumerations Enumerator