www

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

commit 7eea4892038ebee81cb4a080e83c4c4271234df3
parent 2b632b3f04a84dd89b0c63eb1d416b8383652011
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Thu, 12 Jan 2012 18:23:49 +0100

Corrections sur les quartiers.

Diffstat:
Mrules/architecture/quartier.cpp | 15+++++----------
1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/rules/architecture/quartier.cpp b/rules/architecture/quartier.cpp @@ -10,17 +10,16 @@ void QuartierQuad_::getBoundingBoxPoints() { bool QuartierQuad_::split() { bool small = c.minLength() < 3500; - bool big = c.maxLength() >= 6000; bool isConcave = c.maxAngle() > Angle::d2r(160); bool anglesOk = c.minAngle() > Angle::d2r(90-40) && c.maxAngle() < Angle::d2r(90+40); bool tooWideX = c.minLengthEW() * 2 < c.maxLengthNS(); // trop allongé (côté E ou W deux fois plus petit que le côté N ou S). bool tooWideY = c.minLengthNS() * 2 < c.maxLengthEW(); // trop allongé (côté N ou S deux fois plus petit que le côté E ou W). if (isConcave) concave(); - else if (!big && proba(seed, -1, 1, 20)) - batiments(); + else if (!small && !anglesOk && proba(seed, -2, 1, 2)) + angleAngle(); else if (!small && !anglesOk) - angleAngle(); // TODO : mettre aussi angleCote + angleCote(); else if (!small && (tooWideX || tooWideY)) rect(); else if (!small) @@ -32,7 +31,7 @@ bool QuartierQuad_::split() { void QuartierQuad_::triangulation() { Quad ci = c.insetNESW(250 + 140); // TODO : factoriser cette longueur (largeur route + largeur trottoir). - Quad cih = c.offsetNormal(600); // TODO : factoriser cette longueur (hauteur max des bâtiments). + Quad cih = ci.offsetNormal(600); // TODO : factoriser cette longueur (hauteur max des bâtiments). addGPUQuad(c, 0x36, 0x36, 0x36); // TODO : factoriser cette couleur (couleur de la route). addGPUQuad(cih, 0xF1, 0xE0, 0xE0); // TODO : factoriser cette couleur (couleur des toits). for (int i = 0; i < 4; i++) @@ -97,13 +96,9 @@ void QuartierQuad_::batiments() { // TODO : - bool small = c.minLength() < 2500; - bool big = c.maxLength() >= 5000; bool anglesAcceptable = c.minAngle() > Angle::d2r(90-60) && c.maxAngle() < Angle::d2r(90+60); - if (!big && proba(seed, 0, 1, 20)) { - addChild(new TerrainQuad(qbatiments)); - } else if (small && anglesAcceptable) { + if (anglesAcceptable && proba(seed, 0, 19, 20)) { addChild(new BatimentQuad(qbatiments)); } else { addChild(new TerrainQuad(qbatiments));