Subdivision des murs OK.

This commit is contained in:
Yoann 2012-01-19 15:18:17 +01:00
parent 36554fdc9c
commit 9f7a3fc971
3 changed files with 9 additions and 26 deletions

View File

@ -24,7 +24,7 @@ bool BatimentQuad_::split() {
ch = ch.insetNESW(30);
c = c.insetNESW(30);
addChild(new ToitQuad(ch, Dimensions::hauteurToit));
//addChild(new EtageQuad(c,ch));
addChild(new EtageQuad(c,ch));
}
} else {
addChild(new TerrainQuad(c));

View File

@ -21,14 +21,11 @@ bool EtageQuad::split() {
Quad mwh = ch.insetOpp(W,28);
Quad mnh = ch.inset(E,28).inset(W,28).insetOpp(N,28);
MurQuad *mme = new MurQuad(me << 1,meh << 1,we);
MurQuad *mmn = new MurQuad(mn,mnh,wn);
MurQuad *mmw = new MurQuad(mw >> 1,mwh >> 1,ww);
MurQuad *mms = new MurQuad(ms >> 2,msh >> 2,ws);
addChild(mme);
addChild(mmw);
addChild(mmn);
addChild(mms);
addChild(new MurQuad(me << 1,meh << 1,we));
addChild(new MurQuad(mw >> 1,mwh >> 1,ww));
addChild(new MurQuad(mn,mnh,wn));
addChild(new MurQuad(ms >> 2,msh >> 2,ws));
return true;
}

View File

@ -20,36 +20,22 @@ void MurQuad::setWindow() {
Quad wBack = wFront.offsetNormal(28);
windowPos = Quad(wFront[SE],wBack[SE],wBack[SW],wFront[SW]);
windowPosh = Quad(wFront[NE],wBack[NE],wBack[NW],wFront[NW]);
//addGPUQuad(q,0xFFFF00);
//addGPUQuad(ch,0xFFFF00);
//addGPUQuad(windowPos,0xFFFF00);
}
bool MurQuad::split() {
if(!window)
return false;
/*if(c.maxLengthNS() < c.maxLengthEW()) {
c = c >> 1;
ch = ch >> 1;
}*/
float length = c.maxLengthNS();
if(length > 500) {
//addGPUTriangle(c[NW],c[NE],c[SE],0xFF0000);
if(length > 660) {
Quad qa = c.insetOpp(W,length/2);
Quad qb = c.insetOpp(E,length-(length/2));
Quad qah = ch.insetOpp(W,length/2);
Quad qbh = ch.insetOpp(E,length-(length/2));
addGPUQuad(qa,0x0000FF);
addGPUQuad(qb,0x00FF00);
addGPUQuad(qah,0x0000FF);
addGPUQuad(qbh,0x00FF00);
//addGPUQuad(qa,0xFFFF00);
//addChild(new MurQuad(qa,qah,window));
//addChild(new MurQuad(qb,qbh,window));
addChild(new MurQuad(qa,qah,window));
addChild(new MurQuad(qb,qbh,window));
} else {
Quad right = Quad(windowPos[NW],windowPos[SW],c[SW],c[NW]);
Quad righth = Quad(windowPosh[NW],windowPosh[SW],ch[SW],ch[NW]);