Verified Commit d9d8c723 authored by Romain De Laage De Bellefaye's avatar Romain De Laage De Bellefaye 🌳
Browse files

Improve doc

parent 0ba65699
Pipeline #79684 passed with stage
in 15 seconds
......@@ -68,11 +68,15 @@ class Automate {
return *instance;
}
/// Définir la fonction de transition de l'automate, le cycle de vie de la focntion est géré par l'utilisateur
/// Définir la fonction de transition de l'automate
///
/// L'objet est géré dynamiquement par l'utilisateur mais une fois donnné à l'automate il gère son cycle de vie
void setFonction(Fonction& f) { fonction = &f; }
/// Récupérer la fonction de transition
const Fonction& getFonction() const { return *fonction; }
/// Définir une règle de voisinage, le cycle de vie de la règle est géré par l'utilisateur
/// Définir une règle de voisinage
///
/// L'objet est géré dynamiquement par l'utilisateur mais une fois donnné à l'automate il gère son cycle de vie
void setRegleVoisinage(RegleVoisinage& r) { regleVoisinage = &r; }
/// Récupérer la règle de voisinage
const RegleVoisinage& getRegleVoisinage() const { return *regleVoisinage; }
......@@ -147,6 +151,7 @@ class Automate {
/// Redéfinir le nom de l'automate
void setYear(const int y) { year = y; }
/// Réinitialiser totalement la configuration de l'automate
void reinitialiserAutomate();
};
......
......@@ -44,7 +44,13 @@ class Regle: public RegleGen {
/// @param[in] voisins Le voisinage de la cellule pour laquelle on vérifie la règle
/// @param[in] cellule La cellule pour laquelle on vérifie la règle
virtual bool verify(const Voisinage& voisins, const Cellule& cellule) const override;
/// Obtenir le seuil minimum du nombre de voisins requis pour un état donné afin de valider la règle
/// Principalement utilisé pour sauvegarder une règle de transition
/// @param[in] i numéro de l'état
int getMin(const size_t i) { if(i > 0 && i <= 8) return seuilsMin[i - 1]; else throw "Invalid number!"; }
/// Obtenir le seuil maximum du nombre de voisins requis pour un état donné afin de valider la règle
/// Principalement utilisé pour sauvegarder une règle de transition
/// @param[in] i numéro de l'état
int getMax(const size_t i) { if(i > 0 && i <= 8) return seuilsMax[i - 1]; else throw "Invalid number!"; }
};
......@@ -66,6 +72,8 @@ class RegleAvecEtatCourant: public Regle {
/// @param[in] voisins Le voisinage de la cellule pour laquelle on vérifie la règle
/// @param[in] cellule La cellule pour laquelle on vérifie la règle
bool verify(const Voisinage& voisins, const Cellule& cellule) const override;
/// Obtenir l'état courant requis pour valider la règle
/// Principalement utilisé pour sauvegarder une règle de transition
int getCourant() const override { return static_cast<int>(etatCourant); }
};
......
......@@ -88,6 +88,7 @@ class AutoCell : public QWidget
friend class NouveauModele;
public:
/// Obtenir une référence vers l'instance unique du singleton AutoCell
static AutoCell& getInstance() {
if(instance == nullptr) {
instance.reset(new AutoCell);
......@@ -99,27 +100,40 @@ class AutoCell : public QWidget
public slots:
//void chargerModele();
//void listerModele(); //à faire en dernier
/// slot pour charger les grilles disponibles pour le modèle sélectionné
void chargerGrilles();
//void listerGrille(); //déjà réfléchir à la recopie
//Reseau initialiserGrille(); //méthode à implémenter qui récupère les données du formulaire - penser à réinitialiser les données annexes
//void afficherGrille(Reseau&); //affiche une grille
//void chargerGrilles(const QString &text);
/// Afficher une grille dans l'espace dédié
void afficherGrille(Reseau* Grille);
/// Initialiser une grille
void initialiserGrille();
/// Remettre à 0 la simulation
void RAZ();
/// Gérer la mise en route automatique ou non
void gererSimulation();
//void sauvegarderGrille();
//Reseau& modifierCellule(const QModelIndex&, Reseau& Grille);//à implémenter
/// Modifier l'état d'une cellule de la grille affichée (par clic par exemple)
void modifierCellule(const QModelIndex& index);
/// Sauvegarder la grille courante dans la BDD
void sauvegarderGrille();
/// Créer un nouveau modèle
void defNouveauModele();
/// Afficher une boîte d'erreur
void afficherErreur(QString& msg);
/// Initialiser un automate par son nom
void initAutomate(const QString& name);
/// Changer le délai de l'automate
void changeDelai();
/// Aller en arrière dans la simulation
void previous();
/// Aller en avant dans la simulation
void next();
};
......
......@@ -18,29 +18,41 @@ class Database {
QSqlDatabase db;
static std::unique_ptr<Database> instance;
Database& operator=(const Database& a) = delete;
Database(const Database& a) = delete;
Database(std::string path);
Database& operator=(const Database& a) = delete;
Database(const Database& a) = delete;
Database(std::string path);
public:
/// Obtenir une référence vers l'instance unique du singleton database
static Database& getInstance() {
if(instance == nullptr) {
instance.reset(new Database("application.db"));
}
return *instance;
}
if(instance == nullptr)
instance.reset(new Database("application.db"));
return *instance;
}
~Database() { db.close(); }
/// Obtenir la liste de tous les noms d'automate disponibles
std::vector<QString> getAutomates() const;
/// Obtenir la fonction d'un automate donné
Fonction* getFonction(Automate& a) const;
/// Obtenir la règle de voisinage d'un automate par son nom
RegleVoisinage* getRegleVoisinage(const QString& name) const;
/// Obtenir la liste des grilles disponibles pour un automate par son nom
std::vector<QString> getListeReseaux(const QString& name) const;
/// Obtenir un réseau par son nom
Reseau& getReseau(int idReseau) const;
/// Sauvegarder un réseau en base de donnée
void stockerReseau(const Reseau& reseau, const QString& nomReseau, const QString& nomAutomate) const;
/// Initialise l'ensemble d'état d'un automate
void initEnsEtat(Automate& a) const;
/// Sauvegarder un automate en BDD
void saveAutomaton(const Automate& a) const;
/// Sauvegarder une fonction en BDD
void saveFunction(const QString& name, const Fonction& f) const;
/// Sauvegarder une règle de voisinage en BDD
void saveVoisinage(const QString& name, const RegleVoisinage& r) const;
/// Sauvegarder un ensemble d'états en BDD
void saveEnsemble(Automate& a) const;
/// initialiser le singleton automate depuis la bdd par son nom
void initSingletonAutomate(const QString& modele) const;
};
......
......@@ -25,8 +25,11 @@ class ParamAlpha: public QWidget {
QPushButton* valider;
public:
/// Construire une fenêtre de paramétrage de l'alphabet
/// @param[in] nbEtats nombre d'états à initialiser
ParamAlpha(const int nbEtats);
public slots:
/// Valider le paramétrage de l'alphabet, a pour effet de l'initialiser dans l'automate
void valide();
};
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment