/***************************************************************************
 *                          Zanoza Modeler v2.x                            *
 *      This is unpublished propietary source code of Zanoza Software.     *
 *      The copyright notice does not evidence any actual or intended      *
 *                    publication of such source code.                     *
 *                                                                         *
 *                Copyright (c) 2002-2008 Zanoza Software.                 *
 *                                                                         *
 *                        All rights reserved.                             *
 ***************************************************************************
 *--------------------------------------------------------------------------
 * @author:   Oleg Melashenko
 *--------------------------------------------------------------------------
 * @purpose:  Declaration of the class ILightsManager
 *   Interface of light managers. Ligts are restricted resources and
 *   have to be maintained properly.
 *--------------------------------------------------------------------------
 * @created: Monday, June 23, 2003 21:44:18
 */

#if !defined(ILightsManager_h_included)
#define ILightsManager_h_included
//forward declaration of this class might require
namespace rend
{ class ILightsManager; };
#include <zmodeler.h>
#include <rend/renderTypes.h>
#include <scene/ILight.h>


namespace rend
{
  
  class ILightsManager : public ZUnknown
  {
  public:
    virtual ZRESULT createLight(scene::eLightType nType, scene::ILight** ppLight)=0;
    /* Resets (disables) all lights that illuminates the scene */
    virtual ZRESULT resetSceneLights(void)=0;
    /* Provides amount of lights in scene */
    virtual long getSceneLightsCount(void)=0;
    virtual ZRESULT addSceneLight(scene::ILight* pLight)=0;
  
  };//class ILightsManager
};//rend

#endif
