/*
 * $Id: cameramodule.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 __CAMERA_MODULE_H__
#define __CAMERA_MODULE_H__

#include "VrutApi.h"
#include "manipmodule.h"

namespace VRUT
{
	///Module processing input events and applying them to camera - abstract
	class VRUT_CORE_API CameraModule : public ManipulatorModule
	{
	public:
		///Class constructor
		CameraModule(const MODULE_ID & _id, const wxString & _name, unsigned _type, Kernel * _kernel);

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

		///Get window ID
		RENDER_WINDOW_ID GetWindowID() const { return windowID; }

	protected:
		///Render window ID to receive input events from
		RENDER_WINDOW_ID windowID;
		///\c windowID parameter identifier
		Parameter::ParameterIdentifier windowIDParamID;

		///Process general event - \c Module overload
		virtual void processEvent(Event * evt);
	};
}

#endif
