commit 2df4e1d07cfe641bcf32f2702f49665218fa90c5
parent 8be65b87039e23ea9731cc7d242e42f98135cffe
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Fri, 20 Jan 2012 02:00:22 +0100
Correction sur les fenêtres.
Diffstat:
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/rules/mur.cpp b/rules/mur.cpp
@@ -1,8 +1,10 @@
#include "all_includes.hh"
-MurQuad::MurQuad(Quad _c, Quad _ch, bool _window) : Chose(), c(_c), ch(_ch), window(_window) {
+MurQuad::MurQuad(Quad _c, Quad _ch, bool _window, bool _top, bool _bottom) : Chose(), c(_c), ch(_ch), window(_window), top(_top), bottom(_bottom) {
addEntropy(c);
addEntropy(ch);
+ addEntropy((int)top);
+ addEntropy((int)bottom);
if(_window)
setWindow();
}
@@ -44,8 +46,8 @@ bool MurQuad::split() {
Quad lefth = Quad(ch[NE],ch[SE],windowPosh[SE],windowPosh[NE]);
Quad top = Quad(windowPosh[NE],windowPosh[NW],windowPosh[SW],windowPosh[SE]);
- addChild(new MurQuad(c,windowPos,false));
- addChild(new MurQuad(windowPosh,ch, false));
+ addChild(new MurQuad(c,windowPos,false, true, false));
+ addChild(new MurQuad(windowPosh,ch, false, false, true));
addChild(new MurQuad(left,lefth,false));
addChild(new MurQuad(right,righth,false));
}
@@ -54,6 +56,8 @@ bool MurQuad::split() {
}
void MurQuad::triangulation() {
+ if (bottom) addGPUQuad(c, Couleurs::mur);
+ if (top) addGPUQuad(ch, Couleurs::mur);
addGPUFourQuads(c, ch, Couleurs::mur);
}
diff --git a/rules/mur.hh b/rules/mur.hh
@@ -10,10 +10,12 @@ private :
bool window; // Contient une fenêtre ou non.
Quad windowPos;
Quad windowPosh;
+ bool top;
+ bool bottom;
public :
- MurQuad(Quad c, Quad ch, bool _window=false);
+ MurQuad(Quad c, Quad ch, bool _window=false, bool _top=false, bool _bottom=false);
virtual void triangulation();
virtual bool split();
virtual void getBoundingBoxPoints();