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:
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
+