Incendie
Public Member Functions | List of all members
Foret Class Reference

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 VentgetVent () 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
 

Constructor & Destructor Documentation

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

Author
Florian
Parameters
_largeurnombre de colonnes de la matrice représentant la forêt, sa largeur
_hauteurnombre de lignes de la matrice, la hauteur
proba,probabilitequ'il y ait un arbre, pour chaque case de la matrice. C'est environ le pourcentage d'arbres
_coefFeucoefficient 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

Author
Florian
Parameters
_largeurnombre de colonnes de la matrice représentant la forêt, sa largeur
_hauteurnombre de lignes de la matrice, la hauteur
filefichier de sauvegarde d'une foret précédente, contenant les essences et l'emplacement des arbres et leur indice d'essence
PBbarre 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

Author
Florian
Parameters
_largeurnombre de colonnes de la matrice représentant la forêt, sa largeur
_hauteurnombre de lignes de la matrice, la hauteur
matricematrice d'intensités de couleur verte selon l'emplacement dans l'image
Foret::~Foret ( )
virtual

On vide également les listes utile ?

  • *
    Author
    Florian

Member Function Documentation

std::list< Arbre * > Foret::adjacents ( int  col,
int  row,
int  distance 
) const

Retourne les arbres qui sont proches d'une cellule donnée

Author
Florian and Ugo
Parameters
colindice de la colonne de la cellule
rowindice de la ligne de la cellule
distancedistance sur laquelle s'effectue la recherche de voisins
Returns
list de pointeurs sur arbres proches
std::list< Arbre * > Foret::adjacents ( const Arbre ab,
int  distance 
) const

Retourne les arbres qui sont proches d'une cellule donnée, appelle adjacents(int, int)

Author
Florian
Parameters
abarbre dont on veut connaître les voisins
distancedistance sur laquelle s'effectue la recherche de voisins
Returns
list de pointeurs sur arbres
void Foret::blast ( Arbre ab)

Definit un arbre comme étant en cendres

Author
Florian
Parameters
abarbre à mettre en cendres
void Foret::clean ( )

Met la foret à l'état vierge : aucun arbre

Author
Florian
void Foret::clearChanged ( )

Vide les listes d'éléments modifiés

Author
Florian
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

Author
Florian
Parameters
largeurlargeur de la foret à créer
hauteurhauteur de la foret à créer
matricede 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

Parameters
allpositions 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

Author
Florian
Parameters
abarbre à éteindre
void Foret::delay ( int  xDep,
int  yDep,
int  xArr,
int  yArr 
)

Applique un retardateur sur les arbres se trouvant dans un rectangle

Parameters
allpositions de 2 points diagonaux du rectangle
std::list< list< Arbre * > > * Foret::getChanged ( )

Retourne les listes d'éléments modfiés

Author
Florian IMPROVEIT ? Inutilisé, car il faudrait regarder pour chaque élément avec quelle couleur l'afficher au lieu d'une couleur par liste
void Foret::initEmpty ( )

Initialise une matrice avec des cellules (vierge)

Author
Ugo and Florian
void Foret::kindle ( Arbre ab)

Definit un arbre comme étant en feu

Author
Florian
Parameters
abarbre à allumer
void Foret::kindle ( int  col,
int  row 
)

Definit une position comme étant en feu, si c'est un arbre

Author
Florian
Parameters
allposition de l'arbre à allumer
void Foret::loadBurningCoef ( std::ifstream *  file)

Lit le coefficient de brulure d'une foret dans un fichier de sauvegarde

Author
Florian
Parameters
filefichier de sauvegarde de foret
void Foret::loadEssences ( std::ifstream *  file)

Lit les essences d'une foret dans un fichier de sauvegarde

Author
Florian
Parameters
filefichier de sauvegarde de foret
void Foret::loadMatrix ( std::ifstream *  file,
LoadProgress progress 
)

Charge une foret à partir d'un fichier de sauvegarde

Author
Florian
Parameters
filefichier de sauvegarde d'une foret
PBbarre 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

Author
Florian
Parameters
filefichier de sauvegarde de foret
Deprecated:
taille lues dans fwelcome, pour initialiser les tailles des fenetres
bool Foret::NextMove ( )

Passe de t à t+1 tous les arbres à l'aide de la liste d'arbres en feu

Author
Florian et Ugo
Returns
vrai si il y eu des changements, faux sinon
void Foret::plantTree ( int  col,
int  row 
)

"Plante" un arbre à la position donnée dans la matrice

Author
Florian et Ugo
Parameters
allposition 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

Author
Florian et Ugo
Parameters
colabscisse de l'arbre
rowordonnée de l'arbre
numEssindice de l'essence de l'arbre à utiliser
void Foret::randomMatrix ( float  probabilite)

Initialise une matrice vide puis ajoute des arbre dans la Foret

Author
Florian and Ugo
Parameters
probabilitechance 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

Author
Florian
Parameters
filefichier 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

Author
Florian
Parameters
filefichier 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

Author
Florian
Parameters
filefichier 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

Author
Florian
Parameters
alldéfinit les paramètres particuliers de la forêt (en dehors du vent)
Deprecated:
void Foret::setWind ( int  angle,
int  vitesse 
)

Définit la direction du vent

Author
Florian
Parameters
angleangle du nouveau vent
vitesseforce du nouveau
void Foret::showEssences ( ) const

Affiche les essences de la foret sur la sortie standard (debuggage)

Author
Florian
void Foret::spark ( Arbre ab,
int  intensite 
)

Enflamme un arbre : un autre arbre lui "transmet" du feu

Author
Florian
Parameters
abarbre à enflammer
intensiteforce 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

Author
Florian
Parameters
rowligne où est la cellule
colcolonne où est la cellule
intensiteforce de transmission du feu
Deprecated:
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

Author
Ugo et Florian
Parameters
posColabscisse de l'arbre qui est en feu
posRowordonnée de l'arbre qui est en feu
horforce du vent horizontalement
vertforce du vent verticalement
void Foret::sparkAdjacentsWind ( Arbre a,
const Vent vent 
)

Transmet le feu d'un arbre à ses voisins, selon la position de l'arbre

Author
Ugo et Florian
Parameters
aarbre qui transmet le feu
ventqui influe la transmission
void Foret::transition ( Arbre ab)

Applique une transition de l'état t à l'état t+1 d'un arbre

Author
Florian et Ugo
Parameters
abarbre en feu qui doit le transmettre
Deprecated:
transmission sans vent
void Foret::transitionWind ( Arbre a,
const Vent vent 
)

Un arbre brule pendant une unité de temps : il enflamme les voisins en tenant compte de la direction du vent et perd des PV

Author
Ugo
Parameters
aarbre qui brule
ventqui 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

Author
Florian
Parameters
filefichier de sauvegarde de foret
PBbarre de progression pour suivre le chargement de la foret IMPROVEIT
Returns
vrai si le chargement a reussi ? TODO vérifier
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)"

Author
Ugo
Parameters
fileNamenom du fichier qui contient les essences
Returns
vrai si le fichier a été ouvert, faux sinon
bool Foret::trySave ( std::string  filePath = "save_forest")

Sauvegarde une forêt dans un fichier (tailles-essences-arbres)

Author
Florian
Parameters
filenamechemin où sauvegarder le fichier de sauvegarde
Returns
vrai si la sauvegarde a réussi ? TODO vérifier
bool Foret::trySaveSeed ( std::string  filePath = "save_forest")

Sauvegarde la taille et la graine aléatoire d'une forêt

Author
Florian
Parameters
file
Returns
vrai si la sauvegarde a réussi ? TODO vérifier
void Foret::uproot ( Arbre ab)

Coupe ou déracine un arbre

Author
Florian
Parameters
abarbre à supprimer
void Foret::uproot ( int  col,
int  row 
)

Coupe ou déracine l'arbre à la position donnée

Author
Florian
Parameters
allposition de l'arbre à supprimer

The documentation for this class was generated from the following files: