Programme principal : Illuminations.cpp
/* Calculs d'illumination : */
/* - diffusion sous lumiere ponctuelle */
/* - reflexion speculaire sous lumiere ponctuelle */
/* */
/* Auteur: Nicolas JANEY */
/* nicolas.janey@univ-fcomte.fr */
/* Octobre 2010 */
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include "CoordonneesHomogenes.h"
#include "Position3D.h"
#include "Direction3D.h"
#include "FacetteTriangulaire.h"
#include "LumierePonctuelle.h"
#include "Energie.h"
#include "Couleur.h"
/* Variables et constantes globales */
/* pour les angles et les couleurs utilises */
#ifndef M_PI
#define M_PI 3.14159
#endif
/* Fonction principale */
int main(int argc,char **argv) {
Position3D *p1 = new Position3D(3.0,0.0,0.0);
Position3D *p2 = new Position3D(1.0,3.0,1.0);
Position3D *p3 = new Position3D(-1.0,-1.0,-1.0);
FacetteTriangulaire *fct = new FacetteTriangulaire(p1,p2,p3);
p1->print();
printf("\n");
p2->print();
printf("\n");
p3->print();
printf("\n");
printf("\n");
fct->print();
printf("\n");
printf("\n");
Position3D *cntr = new Position3D((p1->c[0]+p2->c[0]+p3->c[0])/3.0,
(p1->c[1]+p2->c[1]+p3->c[1])/3.0,
(p1->c[2]+p2->c[2]+p3->c[2])/3.0);
Couleur *kd = new Couleur(0.8,0.2,0.2);
Couleur *kr = new Couleur(0.2,0.8,0.8);
Position3D *pos = new Position3D(0.2,0.3,3.5);
Couleur *jaunatre = new Couleur(1.0,1.0,0.7);
LumierePonctuelle *lp = new LumierePonctuelle(pos,10.0,jaunatre);
Position3D *obs = new Position3D(0.0,0.0,20.0);
Energie *e = new Energie();
e->calculDiffusion(cntr,fct,kd,lp);
e->print();
printf("\n");
e->calculReflexionSpeculaire(cntr,fct,kr,lp,obs);
e->print();
printf("\n");
delete(obs);
delete(pos);
delete(jaunatre);
delete(lp);
delete(kd);
delete(kr);
delete(e);
delete(cntr);
delete(fct);
delete(p3);
delete(p2);
delete(p1);
return(0);
}