From 920d2c84bf62c5c262d6e1209e90f51416ba863d Mon Sep 17 00:00:00 2001 From: Yoann Date: Mon, 19 Dec 2011 08:55:33 +0100 Subject: [PATCH] =?UTF-8?q?Simplification=20pour=20la=20cr=C3=A9ation=20de?= =?UTF-8?q?=20faces=20avec=20l'ajout=20d'une=20fonction=20addQuad()=20qui?= =?UTF-8?q?=20permet=20d'ajouter=20directement=20un=20quadrilat=C3=A8re=20?= =?UTF-8?q?et=20coupe=20le=20coupe=20en=20deux=20triangles.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rules/batiment/batimentquadmaison.cpp | 8 ++++---- rules/chose.cpp | 5 +++++ rules/chose.hh | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/rules/batiment/batimentquadmaison.cpp b/rules/batiment/batimentquadmaison.cpp index ca1b1eb..41c0582 100644 --- a/rules/batiment/batimentquadmaison.cpp +++ b/rules/batiment/batimentquadmaison.cpp @@ -51,10 +51,10 @@ void BatimentQuadMaison::triangulation() { Vertex toit = (neh + seh + nwh + swh) / 4 + Vertex(0,0,htoit); // 4 Murs - addTriangle(new Triangle(lctr+neh,lctr+seh,lctr+ne,0xf1,0xe3,0xad)); addTriangle(new Triangle(lctr+seh,lctr+se,lctr+ne,0xf1,0xe3,0xad)); // ne-se-seh-neh - addTriangle(new Triangle(lctr+seh,lctr+swh,lctr+se,0xf1,0xe3,0xad)); addTriangle(new Triangle(lctr+swh,lctr+sw,lctr+se,0xf1,0xe3,0xad)); // se-sw-swh-seh - addTriangle(new Triangle(lctr+swh,lctr+nwh,lctr+sw,0xf1,0xe3,0xad)); addTriangle(new Triangle(lctr+nwh,lctr+nw,lctr+sw,0xf1,0xe3,0xad)); // sw-nw-nwh-swh - addTriangle(new Triangle(lctr+nwh,lctr+neh,lctr+nw,0xf1,0xe3,0xad)); addTriangle(new Triangle(lctr+neh,lctr+ne,lctr+nw,0xf1,0xe3,0xad)); // nw-ne-neh-nwh + addQuad(lctr+neh,lctr+seh,lctr+se,lctr+ne,0xf1,0xe3,0xad); + addQuad(lctr+seh,lctr+swh,lctr+sw,lctr+se,0xf1,0xe3,0xad); + addQuad(lctr+swh,lctr+nwh,lctr+nw,lctr+sw,0xf1,0xe3,0xad); + addQuad(lctr+nwh,lctr+neh,lctr+ne,lctr+nw,0xf1,0xe3,0xad); // 1 Toit addTriangle(new Triangle(lctr+neh,lctr+toit,lctr+seh,0x9a,0x48,0x3c)); diff --git a/rules/chose.cpp b/rules/chose.cpp index be0f9f2..5d7e33a 100644 --- a/rules/chose.cpp +++ b/rules/chose.cpp @@ -21,6 +21,11 @@ void Chose::addTriangle(Triangle* t) { // TODO : Ajouter t dans la liste des triangles à envoyer au GPU. } +void Chose::addQuad(Vertex u, Vertex v, Vertex w, Vertex x, char r, char g, char b) { + this->addTriangle(new Triangle(u,x,w,r,g,b)); + this->addTriangle(new Triangle(w,v,u,r,g,b)); +} + void Chose::display() { if (children.size() > 0) { std::vector::iterator it; diff --git a/rules/chose.hh b/rules/chose.hh index 0a04268..c0e71a4 100644 --- a/rules/chose.hh +++ b/rules/chose.hh @@ -32,6 +32,7 @@ class Chose { inline void addEntropy(Vertex v1, Vertex v2, Vertex v3, Vertex v4) { addEntropy(v1, v2); addEntropy(v3, v4); } void addChild(Chose* c); void addTriangle(Triangle* t); + void addQuad(Vertex u, Vertex v, Vertex w, Vertex x, char r, char g, char b); virtual void triangulation() = 0; virtual std::vector getBoundingBoxPoints() const = 0;