/* Stockage d'une lumiere                       */
/*                                              */
/* Auteur: Nicolas JANEY                        */
/* nicolas.janey@univ-fcomte.fr                 */
/* Novembre 2012                                */

#ifndef ____LUMIERE____
#define ____LUMIERE____

class Couleur;
class Energie;
class Position3D;
class Direction3D;

class Lumiere  {

  public :
    Couleur *c;
    double intensite;
    bool on;

  public :

    /* Constructeurs                            */
    Lumiere(void);
    Lumiere(Lumiere *c);

    /* Destructeur                              */
    ~Lumiere(void);

//////////////////////////////////////////////////

    /* Methode de calcul de la quantite         */
    /* d'energie diffusee en un point p         */
    /* de normale n et de coefficient           */
    /* de diffusion kd                          */
    virtual void energieDiffusee(Energie *e,Position3D *p,Direction3D *n,Couleur *kd) = 0;

//////////////////////////////////////////////////

    /* Methode d'affichage texte                */
    virtual void print(void);
};

#endif
