blob: 3d31ebbd62db5bfd5d8c72ab13693fc7f29e41c9 (
plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/********
* Fichier: couche.cpp
* Auteurs: C.-A. Brunet
* Date: 08 janvier 2018 (creation)
* Description: Implementation des methodes des classes decrites dans
* couche.h. Ce fichier fait partie de la distribution de Graphicus.
********/
#include "couche.h"
Couche::Couche() {
state = STATE_INIT;
Vecteur vecteur;
};
Couche::~Couche() {
vecteur.vider();
};
int Couche::getEtat() {
return state;
};
Forme *Couche::getForme(int index) {
return vecteur.getForme(index);
};
double Couche::aire() {
double aire = 0;
for (int i = 0; i < vecteur.getTaille(); i++) {
aire += vecteur.getForme(i)->aire();
};
return aire;
};
void Couche::afficher(ostream &s) {
if (state == STATE_INIT) {
s << "Couche initialisée\n";
} else {
vecteur.afficher(s);
};
};
bool Couche::changerEtat(int newState) {
if ( newState>=STATE_INIT && newState<=STATE_INACTIVE ) {
state = newState;
return true;
};
return false;
};
bool Couche::translater(int deltaX, int deltaY) {
if (state != STATE_ACTIVE) return false;
for (int i = 0; i < vecteur.getTaille(); i++)
vecteur.getForme(i)->translater(deltaX, deltaY);
return true;
};
bool Couche::ajouterForme(Forme *f) {
if (state != STATE_ACTIVE) return false;
return vecteur.ajouterForme(f);
};
Forme *Couche::supprimerForme(int index) {
if (state != STATE_ACTIVE) {
return NULL;
} else {
return vecteur.supprimerForme(index);
};
return vecteur.supprimerForme(index);
};
bool Couche::reinitialiser() {
state = STATE_INIT;
vecteur.vider();
return true;
};
|