#ifndef INC_FACET_H #define INC_FACET_H #include #include #include "algebre.h" class AVertex : public std::vector {}; typedef enum {PLUS,MOINS} Signe; class Facet { public: AVertex av; Vecteur3d n; AVecteur3d an; Point3d A; Facet() {av.clear();} Facet(Point3d AA,Vecteur3d nn) {av.clear();A=AA;n=nn;} void calculerNormale(); void initA(); void tracer(int wait); void tracer(); void tracer2(); const Vecteur3d &normal() {return n;} void ajouter(Vertex *vv) {av.push_back(vv);} void clean(); ~Facet(); }; class AFacet : public std::vector { public: void clean(); ~AFacet(); void tracer(bool grille=false); void calculerNormale(); }; typedef AFacet::const_iterator ItFacet; typedef AVertex::const_iterator ItVertex; class Objet { public: AFacet af; AVertex av; AVecteur3d normale; void tracer(bool grille=false); void calculerNormaleSommet(); void gonfler(float k); void tracerNormale(); float minBox(int coord); float maxBox(int coord); void adaptBox(float x1,float x2, float y1, float y2, float z1, float z2); void translate(float x,float y,float z); void scale(float k); ~Objet(); }; void calculerNormale(AFacet &l); void initA(AFacet &l); void tracerNormale(AVertex a); #endif