vonNeumannNeighborhoodRule.hpp 1.14 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
\file vonNeumannNeighborhoodRule.hpp
\date 13/05/2021
\author Eugene Pin
\version 1
\brief vonNeumannNeighborhoodRule

Contient la classe de la règle de Von Neumann.
**/

#ifndef VONNEUMANNNEIGHBORHOODRULE_HPP
#define VONNEUMANNNEIGHBORHOODRULE_HPP

#include "neighborhoodrule.hpp"
#include "neighborhood.hpp"

class vonNeumannNeighborhoodRule : public NeighborhoodRule
{
    //! \brief Rayon du voisinage (en nombre de cellule)
    int radius;
    NeighborhoodFormat format;
public:
    vonNeumannNeighborhoodRule(int _radius = 1);

    //! \brief Retourne l'ensemble des voisins d'une cellule de position 'pos' sur la grille 'grid' sous la forme d'une structure 'Neighborhood'
    //! \return L'ensemble des voisins de la cellule à 'pos'
    Neighborhood getNeighborhood(const Grid& grid, Coord pos) const;

29
    //! \brief Retourne 'format' de VonNeumann dans un vecteur (méthode dérivée)
30
31
32
    //! \return Retourne les formats de voisinage possible dans un std::vector.
    std::vector<NeighborhoodFormat> getFormats() const;
};
33
REGISTER_FACTORY_ENTRY(NeighborhoodRule, vonNeumannNeighborhoodRule, "Von Neumann");
34
35

#endif // VONNEUMANNNEIGHBORHOODRULE_HPP