|
Incendie
|
Public Member Functions | |
| Foret (int _largeur, int _hauteur, float proba=0.60, float _coefFeu=0.5, std::time_t graine=std::time(0)) | |
| Foret (int _largeur, int _hauteur, std::ifstream *file, LoadProgress *PB) | |
| Foret (int _largeur, int _hauteur, std::vector< std::vector< int > > *matrice, float coef_brulure) | |
| virtual | ~Foret () |
| void | initEmpty () |
| void | setValues (int largeur, int hauteur, float coef) |
| void | setWind (int angle, int vitesse) |
| int | width () const |
| int | height () const |
| int | nbEssences () |
| const Vent * | getVent () const |
| std::vector< Cellule * > * | operator[] (int ligne) |
| bool | tryLoadEssences (const std::string &fileName) |
| void | create (int largeur, int hauteur, std::vector< std::vector< int > > *matrice) |
| void | randomMatrix (float probabilite) |
| void | clean () |
| const std::list< Arbre * > * | getOnFire () const |
| std::list< Arbre * > * | getUprooted () |
| std::list< Arbre * > * | getDelayed () |
| std::list< Arbre * > * | getDelayBurned () |
| std::list< Arbre * > * | getCarbonized () |
| std::list< Arbre * > * | getBurned () |
| std::list< std::list< Arbre * > > * | getChanged () |
| void | clearUprooted () |
| void | clearDelayed () |
| void | clearDelayBurned () |
| void | clearCarbonized () |
| void | clearBurned () |
| void | clearChanged () |
| void | plantTree (int col, int row) |
| void | plantTree (int col, int row, unsigned int numEss, int PdV, float humidite, float coef, int etat) |
| void | uproot (Arbre *ab) |
| void | uproot (int col, int row) |
| void | delay (Arbre *ab, float coef=0.5) |
| void | kindle (Arbre *ab) |
| void | kindle (int col, int row) |
| void | blast (Arbre *ab) |
| void | spark (Arbre *ab, int intensite) |
| void | spark (int col, int row, int intensite) |
| void | cut (int xDep, int yDep, int xArr, int yArr) |
| void | delay (int xDep, int yDep, int xArr, int yArr) |
| std::list< Arbre * > | adjacents (int col, int row, int distance) const |
| std::list< Arbre * > | adjacents (const Arbre *ab, int distance) const |
| void | sparkAdjacentsWind (int posCol, int posRow, int hor, int vert) |
| void | sparkAdjacentsWind (Arbre *a, const Vent *vent) |
| void | transition (Arbre *ab) |
| void | transitionWind (Arbre *a, const Vent *vent) |
| bool | NextMove () |
| void | loadSizes (std::ifstream *file) |
| void | loadBurningCoef (std::ifstream *file) |
| void | loadEssences (std::ifstream *file) |
| void | loadMatrix (std::ifstream *file, LoadProgress *progress) |
| bool | tryLoad (std::ifstream *file, LoadProgress *progress) |
| void | saveProperties (std::ofstream *file) |
| void | saveEssences (std::ofstream *file) |
| void | saveMatrix (std::ofstream *file) |
| bool | trySave (std::string filePath="save_forest") |
| bool | trySaveSeed (std::string filePath="save_forest") |
| void | showEssences () const |
| Foret::Foret | ( | int | _largeur, |
| int | _hauteur, | ||
| float | proba = 0.60, |
||
| float | _coefFeu = 0.5, |
||
| std::time_t | graine = std::time(0) |
||
| ) |
Constructeurs de forêt aléatoirement, à partir de paramètres
| _largeur | nombre de colonnes de la matrice représentant la forêt, sa largeur |
| _hauteur | nombre de lignes de la matrice, la hauteur |
| proba,probabilite | qu'il y ait un arbre, pour chaque case de la matrice. C'est environ le pourcentage d'arbres |
| _coefFeu | coefficient de propagation du feu : 1 forêt "classique"; <1 progression plus lente (humidité...); >1 progression plus rapide (sécheresse ?) |
| Foret::Foret | ( | int | _largeur, |
| int | _hauteur, | ||
| std::ifstream * | file, | ||
| LoadProgress * | PB | ||
| ) |
Constructeurs de forêt aléatoirement, à partir d'un fichier de sauvegarde
| _largeur | nombre de colonnes de la matrice représentant la forêt, sa largeur |
| _hauteur | nombre de lignes de la matrice, la hauteur |
| file | fichier de sauvegarde d'une foret précédente, contenant les essences et l'emplacement des arbres et leur indice d'essence |
| PB | barre de progression Qt, pour afficher l'avancement du chargement |
| Foret::Foret | ( | int | _largeur, |
| int | _hauteur, | ||
| std::vector< std::vector< int > > * | matrice, | ||
| float | coef_brulure | ||
| ) |
Constructeurs de forêt aléatoirement, à partir d'une image
| _largeur | nombre de colonnes de la matrice représentant la forêt, sa largeur |
| _hauteur | nombre de lignes de la matrice, la hauteur |
| matrice | matrice d'intensités de couleur verte selon l'emplacement dans l'image |
|
virtual |
On vide également les listes utile ?
| std::list< Arbre * > Foret::adjacents | ( | int | col, |
| int | row, | ||
| int | distance | ||
| ) | const |
Retourne les arbres qui sont proches d'une cellule donnée
| col | indice de la colonne de la cellule |
| row | indice de la ligne de la cellule |
| distance | distance sur laquelle s'effectue la recherche de voisins |
Retourne les arbres qui sont proches d'une cellule donnée, appelle adjacents(int, int)
| ab | arbre dont on veut connaître les voisins |
| distance | distance sur laquelle s'effectue la recherche de voisins |
| void Foret::blast | ( | Arbre * | ab | ) |
Definit un arbre comme étant en cendres
| ab | arbre à mettre en cendres |
| void Foret::clean | ( | ) |
Met la foret à l'état vierge : aucun arbre
| void Foret::clearChanged | ( | ) |
Vide les listes d'éléments modifiés
| void Foret::create | ( | int | largeur, |
| int | hauteur, | ||
| std::vector< std::vector< int > > * | matrice | ||
| ) |
Crée une foret à partir d'une matrice de niveau de couleur de vert
| largeur | largeur de la foret à créer |
| hauteur | hauteur de la foret à créer |
| matrice | de taille largeur x hauteur, d'intensités de vert dans l'image |
| void Foret::cut | ( | int | xDep, |
| int | yDep, | ||
| int | xArr, | ||
| int | yArr | ||
| ) |
Coupe les arbres se trouvant dans un rectangle
| all | positions de 2 points diagonaux du rectangle |
| void Foret::delay | ( | Arbre * | ab, |
| float | coef = 0.5 |
||
| ) |
Eteint un arbre en conservant ses points de vie courant
| ab | arbre à éteindre |
| void Foret::delay | ( | int | xDep, |
| int | yDep, | ||
| int | xArr, | ||
| int | yArr | ||
| ) |
Applique un retardateur sur les arbres se trouvant dans un rectangle
| all | positions de 2 points diagonaux du rectangle |
| std::list< list< Arbre * > > * Foret::getChanged | ( | ) |
Retourne les listes d'éléments modfiés
| void Foret::initEmpty | ( | ) |
Initialise une matrice avec des cellules (vierge)
| void Foret::kindle | ( | Arbre * | ab | ) |
Definit un arbre comme étant en feu
| ab | arbre à allumer |
| void Foret::kindle | ( | int | col, |
| int | row | ||
| ) |
Definit une position comme étant en feu, si c'est un arbre
| all | position de l'arbre à allumer |
| void Foret::loadBurningCoef | ( | std::ifstream * | file | ) |
Lit le coefficient de brulure d'une foret dans un fichier de sauvegarde
| file | fichier de sauvegarde de foret |
| void Foret::loadEssences | ( | std::ifstream * | file | ) |
Lit les essences d'une foret dans un fichier de sauvegarde
| file | fichier de sauvegarde de foret |
| void Foret::loadMatrix | ( | std::ifstream * | file, |
| LoadProgress * | progress | ||
| ) |
Charge une foret à partir d'un fichier de sauvegarde
| file | fichier de sauvegarde d'une foret |
| PB | barre de progression pour suivre le chargement de la foret IMPROVEIT |
| void Foret::loadSizes | ( | std::ifstream * | file | ) |
Lit les tailles d'une foret dans un fichier de sauvegarde
| file | fichier de sauvegarde de foret |
| bool Foret::NextMove | ( | ) |
Passe de t à t+1 tous les arbres à l'aide de la liste d'arbres en feu
| void Foret::plantTree | ( | int | col, |
| int | row | ||
| ) |
"Plante" un arbre à la position donnée dans la matrice
| all | position de l'arbre dans la matrice |
| void Foret::plantTree | ( | int | col, |
| int | row, | ||
| unsigned int | numEss, | ||
| int | PdV, | ||
| float | humidite, | ||
| float | coef, | ||
| int | etat | ||
| ) |
"Plante" un arbre à la position donnée dans la matrice
| col | abscisse de l'arbre |
| row | ordonnée de l'arbre |
| numEss | indice de l'essence de l'arbre à utiliser |
| void Foret::randomMatrix | ( | float | probabilite | ) |
Initialise une matrice vide puis ajoute des arbre dans la Foret
| probabilite | chance qu'a un arbre d'être placé sur chaque case |
| void Foret::saveEssences | ( | std::ofstream * | file | ) |
Sauvegarde les essences de la foret et leur nombre dans un fichier de sauvegarde
| file | fichier où sauvegarder les données de la forêt |
| void Foret::saveMatrix | ( | std::ofstream * | file | ) |
Sauvegarde les arbres de la foret dans un fichier de sauvegarde
| file | fichier où sauvegarder les données de la forêt |
| void Foret::saveProperties | ( | std::ofstream * | file | ) |
Sauvegarde les tailles et le coefficient de brulure de la foret dans un fichier de sauvegarde
| file | fichier où sauvegarder les données de la forêt |
| void Foret::setValues | ( | int | largeur, |
| int | hauteur, | ||
| float | coef | ||
| ) |
Définit/redéfinit la taille et le coefficient de brulure d'une foret
| all | définit les paramètres particuliers de la forêt (en dehors du vent) |
| void Foret::setWind | ( | int | angle, |
| int | vitesse | ||
| ) |
Définit la direction du vent
| angle | angle du nouveau vent |
| vitesse | force du nouveau |
| void Foret::showEssences | ( | ) | const |
Affiche les essences de la foret sur la sortie standard (debuggage)
| void Foret::spark | ( | Arbre * | ab, |
| int | intensite | ||
| ) |
Enflamme un arbre : un autre arbre lui "transmet" du feu
| ab | arbre à enflammer |
| intensite | force de transmission du feu |
| void Foret::spark | ( | int | col, |
| int | row, | ||
| int | intensite | ||
| ) |
Enflamme une cellule si elle existe, selon sa position dans la matrice
| row | ligne où est la cellule |
| col | colonne où est la cellule |
| intensite | force de transmission du feu |
| void Foret::sparkAdjacentsWind | ( | int | posCol, |
| int | posRow, | ||
| int | hor, | ||
| int | vert | ||
| ) |
Transmet le feu d'un arbre à ses voisins, selon la position de l'arbre
| posCol | abscisse de l'arbre qui est en feu |
| posRow | ordonnée de l'arbre qui est en feu |
| hor | force du vent horizontalement |
| vert | force du vent verticalement |
Transmet le feu d'un arbre à ses voisins, selon la position de l'arbre
| a | arbre qui transmet le feu |
| vent | qui influe la transmission |
| void Foret::transition | ( | Arbre * | ab | ) |
Applique une transition de l'état t à l'état t+1 d'un arbre
| ab | arbre en feu qui doit le transmettre |
Un arbre brule pendant une unité de temps : il enflamme les voisins en tenant compte de la direction du vent et perd des PV
| a | arbre qui brule |
| vent | qui influe la transmission |
| bool Foret::tryLoad | ( | std::ifstream * | file, |
| LoadProgress * | progress | ||
| ) |
Initialise la foret et rempli la matrice d'arbres à partir d"un fichier de sauvegarde
| file | fichier de sauvegarde de foret |
| PB | barre de progression pour suivre le chargement de la foret IMPROVEIT |
| bool Foret::tryLoadEssences | ( | const std::string & | fileName | ) |
Charge des essences dans le tableau d'essences à partir d'un fichier texte Format des lignes : "Nom" "masse volumique (kg/m³)" "diametre moyen dans R" "hauteur moyenne" "type (0/1)"
| fileName | nom du fichier qui contient les essences |
| bool Foret::trySave | ( | std::string | filePath = "save_forest" | ) |
Sauvegarde une forêt dans un fichier (tailles-essences-arbres)
| filename | chemin où sauvegarder le fichier de sauvegarde |
| bool Foret::trySaveSeed | ( | std::string | filePath = "save_forest" | ) |
Sauvegarde la taille et la graine aléatoire d'une forêt
| file |
| void Foret::uproot | ( | Arbre * | ab | ) |
Coupe ou déracine un arbre
| ab | arbre à supprimer |
| void Foret::uproot | ( | int | col, |
| int | row | ||
| ) |
Coupe ou déracine l'arbre à la position donnée
| all | position de l'arbre à supprimer |
1.8.11