/*
 * $Id: backgroundnode.h 672 2009-01-16 08:34:17Z misek $
 *
 * Description  : One line description of file.
 * Author       : Antonin Misek <antonin.misek@skoda-auto.cz>
 *
 * Purpose      :
 *     Long description of what the file is for.
 */


#ifndef __BACKGROUNDNODE__H__
#define __BACKGROUNDNODE__H__

#include "scenenode.h"
//#include "moddefs.h"

namespace VRUT
{
	///\c SceneNode of type Background
	class BackgroundNode : public SceneNode
	{
	private:
	protected:
		///Material ID (\c Scene ownership)
		MATERIAL_ID materialID;

	public:
		static const SCENENODE_TYPE ClassType = BACKGROUND;

		///Class constructor, \c SWITCH type by default
		BackgroundNode(const wxString & _name) : SceneNode(_name, ClassType), materialID(MATERIAL_ID_NONE)
		{
		}

		///Copy constructor
		BackgroundNode(const BackgroundNode & b) : SceneNode(b), materialID(b.materialID)
		{
		}

		///Class destructor
		virtual ~BackgroundNode()
		{
		}

		///Get node's material ID
		MATERIAL_ID GetMaterialID() const
		{
			return materialID;
		}

		///Get string with node's properties - \c SceneNode overload
		virtual wxString ToString() const
		{
			return SceneNode::ToString()+wxString::Format(wxT("\nMaterial ID: %lu\n"), (unsigned long)materialID);
		}

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

		friend class Scene;
	};
}

#endif
