summaryrefslogtreecommitdiff
path: root/couche.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'couche.cpp')
-rw-r--r--couche.cpp71
1 files changed, 70 insertions, 1 deletions
diff --git a/couche.cpp b/couche.cpp
index 07c4418..b84cc73 100644
--- a/couche.cpp
+++ b/couche.cpp
@@ -8,4 +8,73 @@
#include "couche.h"
-// Implementation a faire...
+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() {
+ if (state == STATE_INIT) return false;
+ state = STATE_INIT;
+ vecteur.vider();
+ return true;
+};
+
+