Principales Modifications à N3D


Beaucoup de fichiers ont été modifiés pour permettre la compilation sous GCC en Linux et Solaris.
class A {...};
class B{
    A a;
    A() { return A;}
    ...
};

Ne compile pas avec GCC, mais compile avec VC++.
--> Ce type de problème apparaissait dans les classes Fenetre,...


Rayon.h/cpp
booleen TraceRayons(const Camera& pv, Objet *scene, const entier& resx, const entier& resy, char fichier[], int antialiasinglevel=1 );

FenetrePrincipale.cpp
Classe Objet (objet.h / cpp)
protected:
      int            numeroPiece0; // Numero de la premiere piece de l'objet
      Couleur*  radiosite;        // Tableau de radiosite
public:
    int     getNumeroPiece0() const;
    void  setNumeroPiece0(int numeropiece0);
    virtual int      getNombrePieces() const;
    virtual void   centrePiece(int numero, point&, vecteur& v1, vecteur& v2, vecteur& vn);
    virtual int      getNumeroPiece(const point& p);  //retourne le numero de piece local où se trouve le point p
    void     setRadiosite(int numero, const Couleur& c); //affecte une radiosite pour un numero de piece local
    virtual void mettreRadioDansEmis(const point&, Attributs& c); //pour tracé de rayons
    virtual double calculAirePiece(int numero, const Transformation&) const;


Classe quadrilatère (quadrilatere.h / cpp)
Classe Polygone (polygone.h/cpp)
public:
    virtual int      getNombrePieces() const;
    virtual void   centrePiece(int numero, point&, vecteur& v1, vecteur& v2, vecteur& vn);
    virtual int      getNumeroPiece(const point& p);
    virtual double calculAirePiece(int numero, const Transformation&) const;
    virtual void mettreRadioDansEmis(const point&, Attributs& c); //pour tracé de rayons

Tiens compte de radiosite si pFenAff3D->Display()->Settings()->UtiliserRadiosite()=VRAI et si la radiosité a été calculée (tableau radiosites!=NULL)
Classe Display (displayopengl.h/cpp)
Classe Attributs  (attr.h/cpp)
Division de la classe en 2 classe:
Pertinant ??  (était utile pour projet IFT528)
Classe Couleur (couleur.h/cpp)
io.cpp
parser.cpp
inter.cpp
booleen    Objet_Inter (Objet& o, const point& p, const vecteur& v, reel *k, vecteur *vn, Couleurs* c, int* numeroPiece=NULL );

Si numeroPiece=NULL, le numéro de pièce n'est pas calculé. Garde la compatibilité avec ce qui a été fait antérieurement.

Avec une autre fonction, déterminé le numré pièece en même temps que les attributs n'est plus utilisé. Garder???
booleen Objet_InterPiece(Objet& o, const point& p, const vecteur& v, int* numero_piece);

Ne fait que déterminé le numéro de pièce touchée par le rayon.  Ne calcul pas les Attributs/Couleurs.
20 à 40% plus rapide!

Les rayons passes aux travers les faces arrières.
Nouveau programme : tracerayon.cpp


Le contenu de cette page est la responsabilité de son auteur et n'engage en rien l'Université de Sherbrooke et le Département de mathématiques et d'informatique