#pragma once

#include <GL/glew.h>
#include "CGShaderProgram.h"
#include "CGScene.h"
#include "CGCamera.h"

//
// CLASE: CGModel
//
// DESCRIPCIÓN: Construye un modelo con un programa gráfico que muestra una escena con varias
//              figuras geométricas, incluyendo un modelo de iluminación
//
class CGModel
{
public:
	void initialize(int w, int h);
	void finalize();
	void render();
	void update();
	void key_pressed(int key);
	void mouse_button(int button, int action);
	void mouse_move(double xpos, double ypos);
	void resize(int w, int h);

private:
	CGShaderProgram* program;
	CGScene* scene;
	CGCamera* camera;

	glm::mat4 projection;
};


