
//=============================================
// 
// Mercredi 12 decembre 2001
//  
// Arash Habibi
// 
// Scene.h
//
//============================================


#ifndef _SCENE_H_
#define _SCENE_H_

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include "New.h"
#include "PpmMaker.h"
#include "Source.h"
#include "Objet.h"
#include "Rayon.h"
#include "Phong.h"

#define SC_TRESLOIN    (1e30)
#define SC_NBMAX_OBJET (100)
#define SC_NBMAX_SOURCE (50)

typedef struct
{
  int largeur, hauteur; 
  float dist_obs_ecran; 
  float taille_pixel, 
    largeurF, // taille de la scene dans le monde 3D. 
    hauteurF; // taille de la scene dans le monde 3D. 
  vecteur_t pixel_inf_gauche; 
  vecteur_t observateur, gauche, regard, haut; 
  couleur_t couleur_fond; 
  couleur_t lumiere_ambiante;

  int nb_sources; 
  source_t source[SC_NBMAX_SOURCE]; 

  int nb_objets; 
  objet_t   objet       [SC_NBMAX_OBJET]; 
  vecteur_t intersection[SC_NBMAX_OBJET]; 
  vecteur_t normal      [SC_NBMAX_OBJET]; 
} scene_t; 

void SC_Check(scene_t *scene, char *commentaire); 
void SC_Build(scene_t *scene, int largeur, int hauteur);
void SC_Visualize(scene_t *scene, char *nomprog, char *nomppm); 

#endif
