/*
 * $Id: lightnode.h 4270 2016-11-06 11:02:47Z antonin.misek-skoda-auto.cz $
 *
 * Description  : One line description of file.
 * Author       : Vaclav Kyba <mail/Jabber: vaseo1@gmail.com>  <ICQ: 98576293>
 * 
 * Purpose      :
 *     Long description of what the file is for.
 */


#ifndef __LIGHTNODE__H__
#define __LIGHTNODE__H__

#include "scenenode.h"
#include "light.h"


namespace VRUT
{
	///\c SceneNode with light definition
	class LightNode : public SceneNode
	{
	protected:
		///Light definition
		Light light;

	public:
		static const SCENENODE_TYPE ClassType = LIGHT;

		///Class constructor
		LightNode(const wxString & _name) : SceneNode(_name, ClassType), light()
		{
		}

		///Copy constructor
		LightNode(const LightNode & l) : SceneNode(l)
		{
			light = l.light;
		}
		
		///Class destructor
		virtual ~LightNode()
		{
		}

		///Get the parameters of the light
		const Light & GetLight() const
		{
			return light;
		}

		///Get string with node's properties - \c SceneNode overload
		virtual wxString ToString() const
		{
			return SceneNode::ToString()+wxT("\n")+(light.ToString());
		}

		///Get copy of instance - \c SceneNode overload
		virtual SceneNode * Clone() const
		{
			return new LightNode(*this);
		}

		friend class Scene;
	};
}

#endif
