From 3fb4ef9717f52398d6a731ffe637815ed37b45ab Mon Sep 17 00:00:00 2001 From: Christian Vazquez Date: Fri, 27 May 2011 18:56:22 +0000 Subject: Créé la classe Color. A voir si on en fait hériter quelques classes filles de Printable (p.ex. les Particles) ... MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/Color.cc | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/Color.h | 56 +++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 src/main/Color.cc create mode 100644 src/main/Color.h diff --git a/src/main/Color.cc b/src/main/Color.cc new file mode 100644 index 0000000..91b94d0 --- /dev/null +++ b/src/main/Color.cc @@ -0,0 +1,113 @@ +/* + * Color.cc + * + * Created on: 27 mai 2011 + * Author: christian + */ + +#include "Color.h" + +namespace vhc { + +static double Color::red[4] = {1.0,0.0,0.0,1.0}; +static double Color::green[4] = {0.0,1.0,0.0,1.0}; +static double Color::blue[4] = {0.0,0.0,1.0,1.0}; +static double Color::turquoise[4] = {0.0,1.0,1.0,1.0}; +static double Color::purple[4] = {1.0,0.0,1.0,1.0}; +static double Color::yellow[4] = {1.0,1.0,0.0,1.0}; +static double Color::white[4] = {1.0,1.0,1.0,1.0}; +static double Color::black[4] = {0.0,0.0,0.0,1.0}; +static double Color::grey[4] = {0.6,0.6,0.6,1.0}; + +vector Color::convertTabToVector(double const& tab[4]) { + vector tmp; + for (unsigned int i(0); i < 4; ++i) { + tmp.push_back(tab[i]); + } + return tmp; +} + +Color::setColor(vector const& co){ + color = co; +} + +Color::setColor(string co) const { + + switch(co){ + case "red" : + color = convertTabToVector(red[4]); + break; + case "green" : + color = convertTabToVector(green[4]); + break; + case "blue" : + color = convertTabToVector(blue[4]); + break; + case "turquoise" : + color = convertTabToVector(turquoise[4]); + break; + case "purple" : + color = convertTabToVector(purple[4]); + break; + case "yellow" : + color = convertTabToVector(yellow[4]); + break; + case "white" : + color = convertTabToVector(white[4]); + break; + case "black" : + color = convertTabToVector(black[4]); + break; + case "grey" : + color = convertTabToVector(grey[4]); + break; + default: + throw IllegalArgumentException("Color is not defined."); + } +} + +Color::getColor() const { + return color; +} + +Color::getStringColor() const { + + string tmp; + + switch(color){ + case convertTabToVector(red) : + tmp="red"; + break; + case convertTabToVector(green) : + tmp="green"; + break; + case convertTabToVector(blue) : + tmp="blue"; + break; + case convertTabToVector(turquoise) : + break; + tmp="turquoise"; + case convertTabToVector(purple) : + tmp="purple"; + break; + case convertTabToVector(yellow) : + tmp="yellow"; + break; + case convertTabToVector(white) : + tmp="white"; + break; + case convertTabToVector(black) : + tmp="black"; + break; + case convertTabToVector(grey) : + tmp="grey"; + break; + default : + tmp="No valid color."; + break; + } + + return tmp; +} + +} diff --git a/src/main/Color.h b/src/main/Color.h new file mode 100644 index 0000000..fa0f05e --- /dev/null +++ b/src/main/Color.h @@ -0,0 +1,56 @@ +/* + * Color.h + * + * Created on: 27 mai 2011 + * Author: christian + */ + +#ifndef COLOR_H_ +#define COLOR_H_ +#include +#include +#include "exceptions.h" + +namespace vhc { + +/** Représente un objet coloré de couleurs suivantes : + * rouge, vert, bleu, turquoise, violet, jaune, blanc, noir et gris. + * ATTENTION<\b> : la méthode 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) la couleur de cet objet. **/ + vector 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 const& co); + +protected: + vector color; +private: + vector 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_ */ -- cgit v1.2.3