summaryrefslogtreecommitdiff
path: root/couche.h
blob: dc82e01c2ef61ab1963984b39d721a0ffc7bbd30 (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
/********
 * 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:
    // Initialisation
    Couche();
    ~Couche();
    // Informations
    int    getEtat();
    Forme  *getForme(int index);
    double aire();
    void   afficher(ostream &s);
    // Modifications
    bool   changerEtat(int newState);
    bool   translater(int deltaX, int deltaY);
    bool   ajouterForme(Forme *f);
    Forme  *supprimerForme(int index);
    bool   reinitialiser();

};

#endif