mooreNeighborhoodRule.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
29
30
31
/**
\file mooreNeighborhoodRule.hpp
\date 13/05/2021
\author Eugene Pin
\version 1
\brief mooreNeighborhoodRule

Contient la classe de la règle de Moore (semblable à VonNeumann avec les diagonales en plus).
**/

#ifndef MOORENEIGHBOURHOODRULE_HPP
#define MOORENEIGHBOURHOODRULE_HPP
#include "neighborhoodrule.hpp"
#include "neighborhood.hpp"

class mooreNeighborhoodRule : public NeighborhoodRule
{
    //! \brief Rayon du voisinage (en nombre de cellule)
    int radius;
    NeighborhoodFormat format;
public:
    mooreNeighborhoodRule(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;

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

#endif // MOORENEIGHBOURHOODRULE_HPP