Incendie
|
#include <firewidget.h>
Public Slots | |
void | setWind (int angle, int vitesse) |
bool | next () |
void | actionReceived (int x) |
Signals | |
void | releaseSignal () |
Public Member Functions | |
FireWidget () | |
void | initialise (int largeur, int hauteur, float proba=0.60, float coef_brulure=1.0, std::time_t graine=std::time(0)) |
bool | tryInitialise (int largeur, int hauteur, std::ifstream *file) |
bool | tryInitialise (int largeur, int hauteur, QImage *imageForet, float coef_brulure) |
void | razRubber () |
void | delForest () |
void | delPicture () |
int | getTailleCell () const |
Foret * | getForet () const |
void | loadFromPicture (int largeurImage, int hauteurImage, QImage *imageForet, float coef_brulure) |
bool | trySaveForest (std::string &filePath) const |
bool | trySaveSeed (std::string &filePath) const |
bool | trySaveImage (QString filename) const |
bool | tryAllumerFeu (int colonne, int ligne) |
bool | tryFinirFeu (int colonne, int ligne) |
void | drawCell (int colonne, int ligne) |
void | drawTree (const Arbre *ab) |
void | drawList (std::list< Arbre * > *arbres) |
void | drawForest () |
bool | tryDrawPicture () |
bool | tryDrawPictureForest () |
void | drawChanged () |
void | redraw () |
Protected Member Functions | |
void | mousePressEvent (QMouseEvent *event) |
void | mouseMoveEvent (QMouseEvent *event) |
void | mouseReleaseEvent (QMouseEvent *event) |
void | resizeEvent (QResizeEvent *event) |
void | paintEvent (QPaintEvent *event) |
Widget d'affichage de l'automate cellulaire. Ce composant permet de suivre graphiquement l'évolution de l'automate. Il utilise un système de buffering et s'appuie sur la classe Foret du moteur.
FireWidget::FireWidget | ( | ) |
Initialise les différents pointeurs et fixe la taille minimale du widget
int | _largeur : nombre de colonnes de la matrice |
int | _hauteur : nombre de lignes de la matrice |
float | _proba : probabilité qu'une cellule deviennent un arbre |
float | _coef : coefficient de combustion de l'incendie |
|
slot |
Execute l'action choisie sur une zone, suite à releaseMouseEvent. 0 correspond à une coupure, 1 à un retardateur
reinitialise la foret
void FireWidget::delForest | ( | ) |
Méthodes de destruction de la forêt pour gérer la ré-initialisation de la matrice
void FireWidget::delPicture | ( | ) |
Crée une nouvelle image de fond vierge
void FireWidget::drawCell | ( | int | colonne, |
int | ligne | ||
) |
Imprime une cellule à une position donnée, utilise la couleur courante
int | col,row indices de la colonne et de la ligne de la cellules |
void FireWidget::drawChanged | ( | ) |
Redessine les arbres qui ont changés d'état, sur l'ancienne matrice On réutilise les cellules non susceptibles d'avoir été modifiées
void FireWidget::drawForest | ( | ) |
Dessine les arbres et cellules vides dans le buffer
void FireWidget::drawList | ( | std::list< Arbre * > * | arbres | ) |
Dessine l'ensemble des arbres de la liste passée en paramètre
arbres | liste des arbres à dessiner |
void FireWidget::drawTree | ( | const Arbre * | ab | ) |
Imprime un arbre selon sa position, utilise la couleur courante.
ab | arbre à dessiner |
void FireWidget::initialise | ( | int | largeur, |
int | hauteur, | ||
float | proba = 0.60 , |
||
float | coef_brulure = 1.0 , |
||
std::time_t | graine = std::time(0) |
||
) |
Fonction de création d'une foret ALEATOIRE lors de la (ré)initialisation, aléatoirement
all | identiques au constructeur de Foret aléatoire |
void FireWidget::loadFromPicture | ( | int | largeurImage, |
int | hauteurImage, | ||
QImage * | imageForet, | ||
float | coef_brulure | ||
) |
Fonction à commenter par son auteur :p
imageForet | image de la forêt à charger |
coef_brulure | coefficient de brulure de la nouvelle forêt |
others | taille de l'image/forêt |
|
protected |
|
slot |
Passe de l'etat t à t+1 la foret
void FireWidget::redraw | ( | ) |
Vide le buffer et rafraichit l'affichage
|
signal |
Récupere l'action sélectionnée dans les menus
|
protected |
|
inlineslot |
Met à jour les valeurs du vent dans la forêt
angle | nouvel angle du vent |
vitesse | nouvelle vitesse du vent |
bool FireWidget::tryAllumerFeu | ( | int | colonne, |
int | ligne | ||
) |
Eteint un arbre à une position donnée
int/int | indices de la colonne et de la ligne de l'arbre à éteindre |
colonne | de l'arbre à enflammer |
ligne | de l'arbre à enflammer |
bool FireWidget::tryDrawPicture | ( | ) |
Tente de dessiner la photo de foret dans le buffer
bool FireWidget::tryDrawPictureForest | ( | ) |
Dessine la forêt avec une image en dessous Les arbres ne sont donc pas dessinés
bool FireWidget::tryFinirFeu | ( | int | colonne, |
int | ligne | ||
) |
Opere une combustion complete sur un arbre en feu (IMPROVEIT faire sur les arbres non en feu ?)
ligne | |
colonne | ligne et colonne de l'arbre à bruler totalement |
bool FireWidget::tryInitialise | ( | int | largeur, |
int | hauteur, | ||
std::ifstream * | file | ||
) |
Fonction de création d'une foret, à partir d'un fichier de sauvegarde OUVERT
largeur | de la nouvelle forêt |
hauteur | de la nouvelle forêt |
file | fichier binaire, ouvert, contenant la sauvegarde de la forêt (essences-arbres), dont les tailles ont déjà été lues lors de la (ré)initialisation |
bool FireWidget::tryInitialise | ( | int | largeur, |
int | hauteur, | ||
QImage * | imageForet, | ||
float | coef_brulure | ||
) |
Fonction de création d'une foret ALEATOIRE lors de la (ré)initialisation, à partir d'une image
largeur | de la nouvelle forêt |
hauteur | de la nouvelle forêt |
imageForet | image d'une foret, pour l'instant une image converie du jpg au tif |
bool FireWidget::trySaveForest | ( | std::string & | filePath | ) | const |
Sauvegarde la foret dans un fichier de sauvegarde
filePath | chemin du nouveau fichier de sauvegarde |
bool FireWidget::trySaveImage | ( | QString | filename | ) | const |
Sauvegarde la forêt sous forme d'image
filePath | chemin du nouveau fichier de sauvegarde |
bool FireWidget::trySaveSeed | ( | std::string & | filePath | ) | const |
Sauvegarde la graine aléatoire et les caractéristiques de la forêt dans un fichier de sauvegarde
filePath | chemin du nouveau fichier de sauvegarde |