/* Stockage d'une lumiere ponctuelle            */
/*                                              */
/* Auteur: Nicolas JANEY                        */
/* nicolas.janey@univ-fcomte.fr                 */
/* Mars 2014                                    */

#ifndef ____LUMIEREPONCTUELLE____
#define ____LUMIEREPONCTUELLE____

#include "Lumiere.h"

class Pos3D;
class Scene;
class TG3D;

class LumierePonctuelle:public Lumiere {

  public :
    Pos3D *p;
    bool attenuation;

  public :

    /* Constructeurs                            */
    LumierePonctuelle(void);
    LumierePonctuelle(Pos3D *position,double intensite,Couleur *couleur);
    LumierePonctuelle(LumierePonctuelle *lp);

    /* Destructeur                              */
    virtual ~LumierePonctuelle(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,Pos3D *p,Dir3D *n,Couleur *kd);

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

    virtual int eclaire(Pos3D *p,Scene *scn,double d);

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

    virtual double distance(Pos3D *p);
    virtual void transforme(TG3D *m);
    virtual void modeliseOpenGL(int num);

    virtual LumierePonctuelle *clone(void);
};

#endif
