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

#ifndef ____LUMIERESPOT____
#define ____LUMIERESPOT____

#include "LumierePonctuelle.h"

class Pos3D;
class TG3D;

class LumiereSpot:public LumierePonctuelle {

  public :
    Dir3D *d;
    double ouverture;

  public :

    /* Constructeurs                            */
    LumiereSpot(void);
    LumiereSpot(LumiereSpot *lp);

    /* Destructeur                              */
    virtual ~LumiereSpot(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 LumiereSpot *clone(void);
};

#endif
