www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 0016a66cbdac1220f450f6e677130cc8f4ab5b93
parent d2d4cef8f19a31b15d45e80a189cb4bf84abc058
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Tue, 10 Jan 2012 02:17:37 +0100

Merge branch 'master' of github:jsmaniac/2011-m2s3-city-builder

Diffstat:
Mrules/batiment/batimentquadblock.cpp | 19++++++++++++++++---
Mrules/batiment/batimentquadmur.cpp | 22+++++++++++++++++++++-
Mrules/batiment/batimentquadmur.hh | 4++++
3 files changed, 41 insertions(+), 4 deletions(-)

diff --git a/rules/batiment/batimentquadblock.cpp b/rules/batiment/batimentquadblock.cpp @@ -15,9 +15,22 @@ bool BatimentQuadBlock::split() { Quad mw = c; Quad mn = c; - me[NW] = me[NE] + ((me[NW] - me[NW]) / me.length(N))*150; - //TODO les autres côtés. - return false; + me[NW] = me[NE] + ((me[NW] - me[NE]) / me.length(N))*28; + me[SW] = me[SE] + ((me[SW] - me[SE]) / me.length(S))*28; + mw[NE] = mw[NW] + ((mw[NE] - mw[NW]) / mw.length(N))*28; + mw[SE] = mw[SW] + ((mw[SE] - mw[SW]) / mw.length(S))*28; + mn.inset(W,-28); mn.inset(E,-28); + mn[SW] = mn[NW] + ((mn[SW] - mn[NW]) / mn.length(W))*28; + mn[SE] = mn[NE] + ((mn[SE] - mn[NE]) / mn.length(E))*28; + ms.inset(W,-28); ms.inset(E,-28); + ms[NW] = ms[SW] + ((ms[NW] - ms[SW]) / ms.length(W))*28; + ms[NE] = ms[SE] + ((ms[NE] - ms[SE]) / ms.length(E))*28; + + addChild(new BatimentQuadMur(me,height)); + addChild(new BatimentQuadMur(mw,height)); + addChild(new BatimentQuadMur(mn,height)); + addChild(new BatimentQuadMur(ms,height)); + return true; } void BatimentQuadBlock::triangulation() { diff --git a/rules/batiment/batimentquadmur.cpp b/rules/batiment/batimentquadmur.cpp @@ -2,6 +2,7 @@ BatimentQuadMur::BatimentQuadMur(Quad c, float height) : Chose(), c(c), height(height) { addEntropy(c); + this->window = false; } void BatimentQuadMur::getBoundingBoxPoints() { @@ -9,6 +10,25 @@ void BatimentQuadMur::getBoundingBoxPoints() { addBBPoints(c + Vertex(0,0,height)); } +void BatimentQuadMur::setWindow(Quad w) { + this->windowPos = w; + this->window = true; +} + +bool BatimentQuadMur::split() { + if(!window) + return false; + + Quad left = c; + Quad right = c; + Quad top = c; + Quad bottom = c; + + + return true; +} + void BatimentQuadMur::triangulation() { - addGPUOcto(c, c + Vertex(0,0,height), 0xF1, 0xE0, 0xE0); + //addGPUOcto(c, c + Vertex(0,0,height), 0xF1, 0xE0, 0xE0); + addGPUOcto(c, c + Vertex(0,0,height), 0x60, 0x60, 0xFF); } diff --git a/rules/batiment/batimentquadmur.hh b/rules/batiment/batimentquadmur.hh @@ -7,12 +7,16 @@ class BatimentQuadMur: public Chose { private : Quad c; float height; + bool window; // Contient une fenêtre ou non. + Quad windowPos; public : BatimentQuadMur(Quad c, float height); virtual void triangulation(); + virtual bool split(); virtual void getBoundingBoxPoints(); + void setWindow(Quad); }; #endif