L'exécutable

Classes

CoordonneesHomogenes.h CoordonneesHomogenes.cpp
Position3D.h Position3D.cpp
Direction3D.h Direction3D.cpp
FacetteTriangulaire.h FacetteTriangulaire.cpp
LumierePonctuelle.h LumierePonctuelle.cpp
Couleur.h Couleur.cpp
Energie.h Energie.cpp

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);
}

RETOUR