summaryrefslogtreecommitdiff
path: root/couche.h
blob: ec71444d925a13ff1934e883d8921f74f8c27918 (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
/********
 * Fichier: couche.h
 * Auteurs: C.-A. Brunet
 * Date: 08 janvier 2018 (creation)
 * Description: Declaration de la classe pour une couche dans un
 *    canevas. La classe Couche gere un vecteur de pointeur de formes
 *    geometriques en accord avec les specifications de Graphicus.
 *    Ce fichier fait partie de la distribution de Graphicus.
********/

#ifndef __COUCHE_H__
#define __COUCHE_H__

#define STATE_INIT 0 // Couche initialisee mais vide
#define STATE_ACTIVE 1 // Couche active (peut-etre modifiee)
#define STATE_INACTIVE 2 // Couche inactive (non modifiable)

#include "vecteur.h"

class Couche {
  private:
    int     state;
    Vecteur vecteur;
  public:
    Couche();
    ~Couche();
    int    getEtat();
    Forme  *getForme(int index);
    double aire();
    void   afficher(ostream &s);
    bool   changerEtat(int newState);
    bool   translater(int deltaX, int deltaY);
    bool   ajouterForme(Forme *f);
    Forme  *supprimerForme(int index);
    bool   reinitialiser();

};

static const char* const STATES[] = {
    "initialisee",
    "actif",
    "inactif"
};


#endif