
#ifndef _SCENE_H
#define _SCENE_H

#include "Animation.h"
#include "Image.h"

//! The structure Scene stores all texture Id or images used by the sceneDraw fonction
struct Scene
{
    Animation anim;
	unsigned int tex_papillon;

	Image terrain;
	unsigned int tex_terrain;

	Image mario;
	unsigned int tex_mario;

	Image terre;
	unsigned int tex_terre;

	Image lune;
	unsigned int tex_lune;

	Image arlequin;
	unsigned int tex_arlequin;

	Image tonneau;
	unsigned int tex_tonneau;

	Image mars;
	unsigned int tex_mars;

	Image jupiter;
	unsigned int tex_jupiter;

	Image soleil;
	unsigned int tex_soleil;

	Image mercure;
	unsigned int tex_mercure;

	Image starwars;
	unsigned int tex_starwars;

	Image arbre;
	unsigned int tex_arbre;

	Image eau;
	unsigned int tex_eau;

	Image cubemap1;
    Image cubemap2;
	Image cubemap3;
	Image cubemap4;
	Image cubemap5;
	Image cubemap6;
	unsigned int tex_cubemap[6];
};


//! Init a Scene
void sceneInit(Scene& sc);

//! Draw the scene
void sceneDraw(const Scene& sc);


//! Draw a cube
void draw_cube();

//! Draw a cylinder
void draw_cylinder();

//! Draw a cone
void draw_cone();

//! Draw a sphere
void draw_sphere();

//! Draw the X,Y,Z axes
void draw_axes();

//! Draw a grid in the XZ plane
void draw_grid();


#endif
