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

add getters

parent 4f0b600d
......@@ -27,6 +27,9 @@ class 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
virtual bool verify(const Voisinage& voisins, const Cellule& cellule) const;
virtual int getCourant() const { return -1; }
int getMin(const size_t i) { if(i > 0 && i <= 8) return seuilsMin[i - 1]; else throw "Invalid number!"; }
int getMax(const size_t i) { if(i > 0 && i <= 8) return seuilsMax[i - 1]; else throw "Invalid number!"; }
};
class RegleAvecEtatCourant: public Regle {
......@@ -44,6 +47,7 @@ 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;
int getCourant() const { return static_cast<int>(etatCourant); }
};
class Fonction {
......@@ -76,6 +80,8 @@ class Fonction {
/// @param[in] voisins voisins de la cellule à laquelle appliquer la fonction
/// @param[in] cellule cellule à laquelle appliquer la fonction
virtual const Etat& getEtatSuivant(const Voisinage& voisins, const Cellule& cellule) const;
/// Accesseur sur la liste de règles, il est impossible de modifier les règles de cette manière, la liste est en lecture seule
const std::list<Regle*>& getRules() const { return regles; }
};
#endif
......@@ -68,6 +68,7 @@ public:
class RegleVoisinage{
public :
virtual void calculVoisinage(Voisinage& v, const Reseau& r) const = 0;
virtual int getType() const = 0;
};
class RegleVoisinageNeumann : public RegleVoisinage {
......@@ -77,6 +78,7 @@ class RegleVoisinageNeumann : public RegleVoisinage {
void calculVoisinage(Voisinage& v, const Reseau& r) const override;
void setr(unsigned int r);
unsigned int getr() const { return rayon; }
int getType() const { return 1; }
};
class RegleVoisinageMoore : public RegleVoisinage {
......@@ -86,12 +88,14 @@ class RegleVoisinageMoore : public RegleVoisinage {
void calculVoisinage(Voisinage& v, const Reseau& r) const override;
void setr(unsigned int r);
unsigned int getr() const { return rayon; }
int getType() const { return 2; }
};
class RegleVoisinageArbitraire : public RegleVoisinage { //définit la règle pour le voisinage arbitraire
private:
unsigned int nbVoisin;
public:
int getType() const { return 3; }
void setNbVoisins(unsigned int r) { nbVoisin = r; }
unsigned int getNbVoisin() { return nbVoisin; }
vector<Coordonnees> coordonnees;
......
Markdown is supported
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