summaryrefslogtreecommitdiff
path: root/src/main/Color.h
blob: c95207119f7c4a0d8547eeb6bf3371dd40515deb (plain) (blame)
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
/*
 * Color.h
 *
 *  Created on: 27 mai 2011
 *      Author: christian
 */

#ifndef COLOR_H_
#define COLOR_H_
#include <string>
#include <vector>
#include "exceptions.h"

using namespace std;

namespace vhc {

/** Représente un objet coloré de couleurs suivantes :
 * rouge, vert, bleu, turquoise, violet, jaune, blanc, noir et gris.
 * <b>ATTENTION<\b> : la méthode <code>setColor(string color = "white")<\code> lance une exception si la couleur n'est pas reconnue.
 **/

class Color {
public:
	Color() {}
	virtual ~Color() {}

	/** Retourne (sous forme de vector<double>) la couleur de cet objet. **/
	vector<double> getColor() const;

	/** Retourne (sous forme de string) la couleur de cet objet. **/
	string getStringColor() const;

	/** Affecte la couleur de l'objet selon l'argument de la fonction.(Ici un string) **/
	void setColor(string color = "white");

	/** Affecte la couleur de l'objet selon l'argument de la fonction
	 * (Ici un vector, donc à appeler si on souhaite utiliser d'autres couleurs que celles de la classe Color.) **/
	void setColor(vector<double> const& co);

protected:
	vector<double> color;
private:
	vector<double> convertTabToVector(double const& tab[4]);
	static double red[4];
	static double green[4];
	static double blue[4];
	static double turquoise[4];
	static double purple[4];
	static double yellow[4];
	static double white[4];
	static double black[4];
	static double grey[4];
};

}

#endif /* COLOR_H_ */