coordonnees.h 1.63 KB
Newer Older
1
2
3
#ifndef COORDONNEES_H
#define COORDONNEES_H

4
/// @brief Structure de Coordonnees permettant de décrire les coordonnées d'une cellule
5
6
7
///
/// etant donné que notre grille est en 2D, on a donc deux coordonnées x et y
/// peu d'intérêt de définir une classe pour qq chose de si simple, une structure fait l'affaire
8
/// les opérateurs ==, !=, + et - ont été redéfinis pour cette classe
9
struct Coordonnees
10
{
11
12
13
14
	/// Abscisse de la Coordonnees
	int x;
	/// Ordonnées de la Coordonnees
	int y;
15
16
};

17
18
19
20
21
/// Test de l'égalité entre deux Coordonnees
/// @param[in] gauche Coordonnees 1 de l'assertion
/// @param[in] droite Coordonnees 2 de l'assertion
inline bool operator==(const Coordonnees& gauche, const Coordonnees& droite) {
	return gauche.x == droite.x && gauche.y == droite.y;
22
23
}

24
25
26
27
28
/// Test si deux coordonnées sont différentes
/// @param[in] gauche Coordonnees 1 de l'assertion
/// @param[in] droite Coordonnees 2 de l'assertion
inline bool operator!=(const Coordonnees& gauche, const Coordonnees& droite) {
	return !(gauche == droite);
29
30
}

31
32
33
34
35
/// Opération d'addition entre deux coordonnées
/// @param[in] gauche Coordonnees 1 de l'opération
/// @param[in] droite Coordonnees 2 de l'opération
inline Coordonnees operator+(const Coordonnees& gauche, const Coordonnees& droite) {
	return {gauche.x + droite.x, gauche.y + droite.y};
36
37
}

38
39
40
41
42
/// Opération de soustraction entre deux coordonnées
/// @param[in] gauche Coordonnees 1 de l'opération
/// @param[in] droite Coordonnees 2 de l'opération
inline Coordonnees operator-(const Coordonnees& gauche, const Coordonnees& droite) {
	return {gauche.x - droite.x, gauche.y - droite.y};
43
44
45
46
}

#endif // COORDONNEES_H