Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Romain De Laage De Bellefaye
LO21-projet
Commits
21e14c30
Verified
Commit
21e14c30
authored
Jun 09, 2021
by
Romain De Laage De Bellefaye
🌳
Browse files
add getters
parent
4f0b600d
Changes
2
Hide whitespace changes
Inline
Side-by-side
includes/Fonction.h
View file @
21e14c30
...
...
@@ -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
includes/voisinage.h
View file @
21e14c30
...
...
@@ -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
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment