From 47a70fdee528e64299c1df9111523861bf8fe532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Thu, 19 Jan 2012 16:17:13 +0100 Subject: [PATCH] Correction d'un glitch graphique. --- rules/architecture/mur.cpp | 6 +----- rules/architecture/mur.hh | 2 +- rules/architecture/quartier.cpp | 6 +++--- rules/chose.cpp | 5 +++++ rules/chose.hh | 1 + 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/rules/architecture/mur.cpp b/rules/architecture/mur.cpp index e52c6b3..fa1d444 100644 --- a/rules/architecture/mur.cpp +++ b/rules/architecture/mur.cpp @@ -54,9 +54,5 @@ bool MurQuad::split() { } void MurQuad::triangulation() { - if(!window) - addGPUOcto(c, ch, Couleurs::mur); - //else - //addGPUOcto(c, ch, 0xFF,0x10,0x00); - //addGPUQuad(windowPosh,0xFF,0xFF,0x00); + addGPUOcto(c, ch, Couleurs::mur); } diff --git a/rules/architecture/mur.hh b/rules/architecture/mur.hh index 2e24c71..0f71170 100644 --- a/rules/architecture/mur.hh +++ b/rules/architecture/mur.hh @@ -13,7 +13,7 @@ class MurQuad: public Chose { public : - MurQuad(Quad c, Quad ch, bool _windows=false); + MurQuad(Quad c, Quad ch, bool _window=false); virtual void triangulation(); virtual bool split(); virtual void getBoundingBoxPoints(); diff --git a/rules/architecture/quartier.cpp b/rules/architecture/quartier.cpp index d2243fc..851d77a 100644 --- a/rules/architecture/quartier.cpp +++ b/rules/architecture/quartier.cpp @@ -43,7 +43,7 @@ void QuartierQuad::triangulation() { } else { Quad ci = c.insetNESW(Dimensions::largeurRoute + Dimensions::largeurTrottoir); Quad cih = ci.offsetNormal(Dimensions::hauteurMaxBatiment); - addGPUQuad(c, Couleurs::route); + addGPUFourQuads(c, ci, Couleurs::route); addGPUQuad(cih, Couleurs::toit); for (int i = 0; i < 4; i++) addGPUQuad(Quad(ci[NE+i], ci[SE+i], cih[SE+i], cih[NE+i]), Couleurs::mur); @@ -54,7 +54,7 @@ void QuartierQuad::triangulationConcave(Triangle t) { // Même code que QuartierTri::triangulation. Triangle ci = t.insetLTR(Dimensions::largeurRoute + Dimensions::largeurTrottoir); Triangle cih = ci.offsetNormal(Dimensions::hauteurMaxBatiment); - addGPUTriangle(t, Couleurs::route); + addGPUThreeQuads(t, ci, Couleurs::route); addGPUTriangle(cih, Couleurs::toit); for (int i = 0; i < 3; i++) addGPUQuad(Quad(ci[LEFT+i], ci[TOP+i], cih[TOP+i], cih[LEFT+i]), Couleurs::mur); @@ -179,7 +179,7 @@ bool QuartierTri::split() { void QuartierTri::triangulation() { Triangle ci = c.insetLTR(Dimensions::largeurRoute + Dimensions::largeurTrottoir); Triangle cih = ci.offsetNormal(Dimensions::hauteurMaxBatiment); - addGPUTriangle(c, Couleurs::route); + addGPUThreeQuads(c, ci, Couleurs::route); addGPUTriangle(cih, Couleurs::toit); for (int i = 0; i < 3; i++) addGPUQuad(Quad(ci[LEFT+i], ci[TOP+i], cih[TOP+i], cih[LEFT+i]), Couleurs::mur); diff --git a/rules/chose.cpp b/rules/chose.cpp index ed04014..78d1829 100644 --- a/rules/chose.cpp +++ b/rules/chose.cpp @@ -53,6 +53,11 @@ void Chose::addGPUFourQuads(Quad q, Quad qh, unsigned int rgb) { addGPUQuad(Quad(qh[NE+i], q[NE+i], q[SE+i], qh[SE+i]), rgb); } +void Chose::addGPUThreeQuads(Triangle t, Triangle th, unsigned int rgb) { + for (int i = 0; i < 3; i++) + addGPUQuad(Quad(th[LEFT+i], t[LEFT+i], t[TOP+i], th[TOP+i]), rgb); +} + void Chose::addGPUOcto(Vertex ne, Vertex se, Vertex sw, Vertex nw, Vertex neh, Vertex seh, Vertex swh, Vertex nwh, unsigned int rgb) { addGPUOcto(Quad(ne,se,sw,nw), Quad(neh,seh,swh,nwh), rgb); diff --git a/rules/chose.hh b/rules/chose.hh index 4e35a4c..6bd4cbd 100644 --- a/rules/chose.hh +++ b/rules/chose.hh @@ -68,6 +68,7 @@ protected : void addGPUQuad(Vertex ne, Vertex se, Vertex sw, Vertex nw, unsigned int rgb); void addGPUQuad(Quad q, unsigned int rgb); void addGPUFourQuads(Quad q, Quad qh, unsigned int rgb); + void addGPUThreeQuads(Triangle t, Triangle th, unsigned int rgb); void addGPUOcto(Vertex ne, Vertex se, Vertex sw, Vertex nw, Vertex neh, Vertex seh, Vertex swh, Vertex nwh, unsigned int rgb);