#ifndef ITEM_VIEWER_H
#define ITEM_VIEWER_H


#include "./renderer/GLphongRender.h"
#include "./modelViewer/modelViewer.h"
#include "./illumination/Light.h"
#include "softProj\Render\GameFunctionalityInterface.h"
#include <vector>

/// Basic 3D model viewer application.
/**
*  Basic 3D model viewer application. Given models can be rotated, 
*	zoomed, lit by given lights and rendered.
**/
class ItemViewer : public GameFunctionalityInterface
{
private:
	ModelViewer modelViewer;
	GLPhongRender &renderer;

public:
	vector<Model> models;	/**< Array of rendered models */
	float rotationSpeed[3];	/**< Speed of models rotation for axisX, axisY and axisZ */
	LightManager lights;	/**< Lights which lit the models in the scene. */

	ItemViewer( GLPhongRender &render);
	~ItemViewer(void) {};

	//---------------GAME INTERFACE-------------------
	virtual void simulate( float dt );
	virtual void render( void );
	virtual void handleKeyboard( Keyboard &keyboard );
	virtual void handleMouse( Mouse &mouse );
	//------------------------------------------------
};

#endif