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

This commit is contained in:
Georges Dupéron 2012-01-10 11:46:35 +01:00
commit c136313efb
3 changed files with 14 additions and 15 deletions

View File

@ -27,6 +27,15 @@ Quad Quad::insetNESW(float offset) const {
return insetNESW(offset, offset, offset, offset);
}
Quad Quad::insetOpp(Cardinal side, float offset) const {
Quad q = (*this) << int(side);
Quad qb = (*this) << int(side);
qb = qb.inset(N,offset);
return Quad(q[NE],qb[NE],qb[NW],q[NW]);
}
Quad Quad::makeParallelogram() const {
float l1, l2;
Quad q(c[NE],c[SE],c[SW],c[NW]);

View File

@ -27,6 +27,7 @@ class Quad {
Quad inset(Cardinal side, float offset) const;
Quad insetNESW(float offsetN, float offsetE, float offsetS, float offsetW) const;
Quad insetNESW(float offset) const;
Quad insetOpp(Cardinal side, float offset) const;
float length(Cardinal side) const;
float minLengthNS() const;
float minLengthEW() const;

View File

@ -10,21 +10,10 @@ void BatimentQuadBlock::getBoundingBoxPoints() {
}
bool BatimentQuadBlock::split() {
Quad me = c;
Quad ms = c;
Quad mw = c;
Quad mn = c;
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;
Quad me = c.insetOpp(E,28);
Quad ms = c.inset(E,-28).inset(W,-28).insetOpp(S,28);
Quad mw = c.insetOpp(W,28);
Quad mn = c.inset(E,-28).inset(W,-28).insetOpp(N,28);
addChild(new BatimentQuadMur(me,height));
addChild(new BatimentQuadMur(mw,height));