2011-m2s3-city-builder/rules/quartier/quartiertrihauteur.cpp
2012-01-09 15:28:10 +01:00

26 lines
974 B
C++

#include "all_includes.hh"
QuartierTriHauteur::QuartierTriHauteur(Triangle c) : QuartierTri(c) {
}
bool QuartierTriHauteur::split() {
// TODO : sélectionner le sommet avec l'angle le plus grand.
// Triangle::cutCornerSideResult r = c.cutCornerSide(TOP, random(seed,0,0.33, 0.67);
// addChild(new RouteQuadChaussee(r.cut));
// addChild(new RouteTriChaussee(r.cutFrom));
// addChild(QuartierTri::factory(seed, 1, r.left);
// addChild(QuartierTri::factory(seed, 1, r.right);
Vertex baseCenter = Segment(c[LEFT], c[RIGHT]).randomPos(seed, 0, 1/3.f, 2/3.f);
Triangle tl(c[TOP], baseCenter, c[LEFT]);
Triangle tr(c[RIGHT], baseCenter, c[TOP]);
tl = tl.inset(LEFTSIDE, hrw);
tr = tr.inset(RIGHTSIDE, hrw);
addChild(new RouteQuadChaussee(Quad(tr[RIGHT], tr[TOP], tl[TOP], tl[LEFT])));
addChild(new RouteTriChaussee(Triangle(tl[LEFT], c[TOP], tr[RIGHT])));
addChild(QuartierTri::factory(seed, 1, tl));
addChild(QuartierTri::factory(seed, 2, tr));
return true;
}