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


#ifndef _OBJET_H_
#define _OBJET_H_

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

#include "New.h"
#include "Vecteur.h"
#include "Rayon.h"
#include "Couleur.h"
#include "Phong.h"
#include "Sphere.h"
#include "Plan.h"
#include "Triangle.h"

#define O_MAXNOM    (100)

#define O_SPHERE   (0)
#define O_PLAN     (1)
#define O_TRIANGLE (2)

typedef struct
{
  unsigned char type; 
  char nom[O_MAXNOM]; 
  void *forme; 
  couleur_t couleur; 
  surface_t surface; 
} objet_t; 


void O_Check(objet_t o, char *commentaire); 

void O_SetShape  (objet_t *o, int type, void *forme);
void O_SetCouleur(objet_t *o, couleur_t couleur);
void O_SetSurface(objet_t *o, surface_t surface); 
void O_SetNom    (objet_t *o, char *nom);

void O_IntersectRayon(objet_t o, rayon_t rayon, int *nb_points, vecteur_t *intersect, vecteur_t *normal);

#endif
