www

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

commit 7943a11f8419d8741259854e41ac07ff1dd6bd64
parent eb9aa2a6b85cacdc4c4fa47fe66835660a253004
Author: Yoann <yoann.b87@voila.fr>
Date:   Tue, 10 Jan 2012 18:37:11 +0100

Tentative de placement de fenĂȘtre.

Diffstat:
Mrules/batiment/batimentquadblock.cpp | 16++++++++++++----
Mrules/batiment/batimentquadmur.cpp | 29+++++++++++++++++++++++------
Mrules/batiment/batimentquadmur.hh | 4+++-
3 files changed, 38 insertions(+), 11 deletions(-)

diff --git a/rules/batiment/batimentquadblock.cpp b/rules/batiment/batimentquadblock.cpp @@ -20,10 +20,18 @@ bool BatimentQuadBlock::split() { Quad mwh = ch.insetOpp(W,28); Quad mnh = ch.inset(E,28).inset(W,28).insetOpp(N,28); - addChild(new BatimentQuadMur(me,meh)); - addChild(new BatimentQuadMur(mw,mwh)); - addChild(new BatimentQuadMur(mn,mnh)); - addChild(new BatimentQuadMur(ms,msh)); + BatimentQuadMur *mme = new BatimentQuadMur(me,meh); + BatimentQuadMur *mmn = new BatimentQuadMur(mn,mnh); + BatimentQuadMur *mmw = new BatimentQuadMur(mw,mwh); + BatimentQuadMur *mms = new BatimentQuadMur(ms,msh); + mme->setWindow(true); + //mmn->setWindow(true); + mmw->setWindow(true); + mms->setWindow(true); + addChild(mme); + addChild(mmw); + addChild(mmn); + addChild(mms); return true; } diff --git a/rules/batiment/batimentquadmur.cpp b/rules/batiment/batimentquadmur.cpp @@ -11,9 +11,21 @@ void BatimentQuadMur::getBoundingBoxPoints() { addBBPoints(ch); } -void BatimentQuadMur::setWindow(Quad w) { - this->windowPos = w; - this->window = true; +void BatimentQuadMur::setWindow(bool val) { + this->window = val; + Quad q = Quad(ch[SE],c[SE],c[SW],ch[SW]); + int lr = (q.length(S) - 100)/40; + std::cout << q.inset(E,60).surface() << std::endl; + Quad wFront = q.inset(N,40).inset(S,100).inset(E,lr).inset(W,lr); + Quad wBack = wFront.offsetNormal(28); + windowPos = Quad(wBack[SE],wFront[SE],wFront[SW],wBack[SW]); + windowPosh = Quad(wBack[NE],wFront[NE],wFront[NW],wBack[NW]); + + //std::cout << "lr" << lr << std::endl; + //std::cout << wFront[NE] << std::endl; + //std::cout << q[SE] << std::endl; + //std::cout << q[SW] << std::endl; + //std::cout << q[NW] << std::endl << std::endl; } bool BatimentQuadMur::split() { @@ -25,11 +37,16 @@ bool BatimentQuadMur::split() { Quad top = c; Quad bottom = c; - //addChild(BatimentQuadMur()) - return false; + //addChild(new BatimentQuadMur(c,windowPos)); + //addChild(new BatimentQuadMur(windowPos,ch)); + + return true; } void BatimentQuadMur::triangulation() { - addGPUOcto(c, ch, 0xf1,0xe3,0xad); + if(!window) + addGPUOcto(c, ch, 0xf1,0xe3,0xad); + else + addGPUOcto(c, ch, 0xFF,0x10,0x00); } diff --git a/rules/batiment/batimentquadmur.hh b/rules/batiment/batimentquadmur.hh @@ -9,6 +9,7 @@ class BatimentQuadMur: public Chose { Quad ch; bool window; // Contient une fenĂȘtre ou non. Quad windowPos; + Quad windowPosh; public : @@ -16,7 +17,8 @@ class BatimentQuadMur: public Chose { virtual void triangulation(); virtual bool split(); virtual void getBoundingBoxPoints(); - void setWindow(Quad); + void setWindow(bool val); }; #endif +