/////////////////////////////////////////////////////////////////////////
//                                                                     //
// This file contains the declaration of the CLight class.             //
//                                                                     //
/////////////////////////////////////////////////////////////////////////
#ifndef __CLIGHT_HPP__
#define __CLIGHT_HPP__


#include "real.hpp"
#include "CVector.hpp"
#include "CColor.hpp"
#include "CPropertyObject.hpp"


/////////////////////////////////////////////////////////////////////////
//                                                                     //
// This class represents a light in the scene.                         //
//                                                                     //
/////////////////////////////////////////////////////////////////////////
class CLight : public CPropertyObject
{
public:
  CLight() :
    CPropertyObject("Light")           ,
    m_PropPosition(0.0f, 0.0f, 0.0f)   ,
    m_PropLightColor(1.0f, 1.0f, 1.0f) ,
    m_PropIntensity(1.0f)
    {
      REGISTER_PROPERTY(Position);
      REGISTER_PROPERTY(LightColor);
      REGISTER_PROPERTY(Intensity);
    }


  ////////////////
  // Properties //
  ////////////////

  // Position of the light
  CVector  m_PropPosition;

  // Color of the light
  CColor   m_PropLightColor;

  // Intensity of the light
  real_t   m_PropIntensity;
};


#endif // __CLIGHT_H__
