INFO702 - TPs
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
Color Struct Reference

#include <Color.hpp>

Public Types

enum  Channel { Red , Green , Blue }
 Sert à désigner un canal. More...
 
typedef unsigned char Byte
 

Public Member Functions

 Color (Byte _red, Byte _green, Byte _blue)
 Crée la couleur spécifiée par (_red,_green,_blue).
 
float r () const
 
float g () const
 
float b () const
 
Channel argmax () const
 
float max () const
 
float min () const
 
void getHSV (int &h, float &s, float &v) const
 
void setHSV (int h, float s, float v)
 

Public Attributes

Byte red
 Code les 3 canaux RGB sur 3 octets.
 
Byte green
 
Byte blue
 

Detailed Description

Représente une couleur avec un codage RGB. Ce codage utilise 3 octets, le premier octet code l'intensité du rouge, le deuxième l'intensité du vert, le troisième l'intensité du bleu.

Definition at line 9 of file Color.hpp.

Member Typedef Documentation

◆ Byte

typedef unsigned char Color::Byte

Definition at line 10 of file Color.hpp.

Member Enumeration Documentation

◆ Channel

Sert à désigner un canal.

Definition at line 28 of file Color.hpp.

28{ Red, Green, Blue };

Constructor & Destructor Documentation

◆ Color() [1/2]

Color::Color ( )
inline

Definition at line 15 of file Color.hpp.

15{}

◆ Color() [2/2]

Color::Color ( Byte  _red,
Byte  _green,
Byte  _blue 
)
inline

Crée la couleur spécifiée par (_red,_green,_blue).

Definition at line 17 of file Color.hpp.

18 : red( _red ), green( _green ), blue( _blue ) {}
Byte red
Code les 3 canaux RGB sur 3 octets.
Definition Color.hpp:13

Member Function Documentation

◆ argmax()

Channel Color::argmax ( ) const
inline
Returns
le canal le plus intense.

Definition at line 30 of file Color.hpp.

31 {
32 if ( red >= green ) return red >= blue ? Red : Blue;
33 else return green >= blue ? Green : Blue;
34 }

◆ b()

float Color::b ( ) const
inline
Returns
l'intensité de bleu (entre 0.0 et 1.0)

Definition at line 25 of file Color.hpp.

25{ return ( (float) blue ) / 255.0; }

◆ g()

float Color::g ( ) const
inline
Returns
l'intensité de vert (entre 0.0 et 1.0)

Definition at line 23 of file Color.hpp.

23{ return ( (float) green ) / 255.0; }

◆ getHSV()

void Color::getHSV ( int &  h,
float &  s,
float &  v 
) const
inline

Convertit la couleur RGB en le modèle HSV (TSV en français).

Parameters
hla teinte de la couleur (entre 0 et 359), hue en anglais.
sla saturation de la couleur (entre 0.0 et 1.0)
vla valeur ou brillance de la couleur (entre 0.0 et 1.0).

Definition at line 45 of file Color.hpp.

46 {
47 // Taking care of hue
48 if ( max() == min() ) h = 0;
49 else {
50 switch ( argmax() ) {
51 case Red: h = ( (int) ( 60.0 * ( g() - b() ) / ( max() - min() ) + 360.0 ) ) % 360;
52 break;
53 case Green: h = ( (int) ( 60.0 * ( b() - r() ) / ( max() - min() ) + 120.0 ) );
54 break;
55 case Blue: h = ( (int) ( 60.0 * ( r() - g() ) / ( max() - min() ) + 240.0 ) );
56 break;
57 }
58 }
59 // Taking care of saturation
60 s = max() == 0.0 ? 0.0 : 1.0 - min() / max();
61 // Taking care of value
62 v = max();
63 }
float g() const
Definition Color.hpp:23
float b() const
Definition Color.hpp:25
float max() const
Definition Color.hpp:36
Channel argmax() const
Definition Color.hpp:30
float r() const
Definition Color.hpp:21
float min() const
Definition Color.hpp:38

◆ max()

float Color::max ( ) const
inline
Returns
l'intensité maximale des canaux

Definition at line 36 of file Color.hpp.

36{ return std::max( std::max( r(), g() ), b() ); }

◆ min()

float Color::min ( ) const
inline
Returns
l'intensité minimale des canaux

Definition at line 38 of file Color.hpp.

38{ return std::min( std::min( r(), g() ), b() ); }

◆ r()

float Color::r ( ) const
inline
Returns
l'intensité de rouge (entre 0.0 et 1.0)

Definition at line 21 of file Color.hpp.

21{ return ( (float) red ) / 255.0; }

◆ setHSV()

void Color::setHSV ( int  h,
float  s,
float  v 
)
inline

TODO: Convertit la couleur donnée avec le modèle HSV (TSV en français) en une couleur RGB.

Definition at line 68 of file Color.hpp.

69 {}

Member Data Documentation

◆ blue

Byte Color::blue

Definition at line 13 of file Color.hpp.

◆ green

Byte Color::green

Definition at line 13 of file Color.hpp.

◆ red

Byte Color::red

Code les 3 canaux RGB sur 3 octets.

Definition at line 13 of file Color.hpp.


The documentation for this struct was generated from the following file: