From c426c3bb3a4fc08e9f03335568895b0c40d1c701 Mon Sep 17 00:00:00 2001 From: Yoann Date: Sat, 14 Jan 2012 11:59:55 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20l'=C3=A9chelle=20de=20certains?= =?UTF-8?q?=20batiments.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 2 +- rules/architecture/quartier.cpp | 2 +- rules/batiment/batimentquad.cpp | 2 +- rules/batiment/batimentquadmaison.hh | 4 ++-- rules/batiment/batimentquadmaisonpont.cpp | 25 +++++++++++++---------- rules/batiment/batimentquadmaisonpont.hh | 5 +++-- rules/batiment/batimentquadmur.cpp | 2 +- 7 files changed, 23 insertions(+), 19 deletions(-) diff --git a/main.cpp b/main.cpp index 7b17af2..c00cea2 100644 --- a/main.cpp +++ b/main.cpp @@ -5,7 +5,7 @@ int main() { // Générer une tile de base std::cout << "Initial seed = " << Chose::initialSeed << std::endl; - float size = 20000; + float size = 22000; Vertex ne(size, size, 0); Vertex se(size, 0, 0); Vertex sw(0, 0, 0); diff --git a/rules/architecture/quartier.cpp b/rules/architecture/quartier.cpp index 6753736..7dafca6 100644 --- a/rules/architecture/quartier.cpp +++ b/rules/architecture/quartier.cpp @@ -204,7 +204,7 @@ void QuartierTri::trapeze() { void QuartierTri::batiments() { return; - float hauteurTrottoir = 20; // TODO : factoriser + ajouter ça à la hauteur max d'un bâtiment dans les autres calculs. + float hauteurTrottoir = 14; // TODO : factoriser + ajouter ça à la hauteur max d'un bâtiment dans les autres calculs. Triangle ttrottoir = c.insetLTR(250); Triangle tinterieur = ttrottoir.insetLTR(140); Triangle tbatiments = tinterieur.offsetNormal(hauteurTrottoir); diff --git a/rules/batiment/batimentquad.cpp b/rules/batiment/batimentquad.cpp index 5e85f3d..69feec8 100644 --- a/rules/batiment/batimentquad.cpp +++ b/rules/batiment/batimentquad.cpp @@ -11,7 +11,7 @@ void BatimentQuad::getBoundingBoxPoints() { bool BatimentQuad::split() { if(proba(seed, 0, 1, 10)) { - addChild(new BatimentQuadMaisonPont(c,800)); + addChild(new BatimentQuadMaisonPont(c,3)); } else { addChild(new BatimentQuadJardin(c)); diff --git a/rules/batiment/batimentquadmaison.hh b/rules/batiment/batimentquadmaison.hh index 9f51364..1a8f2f4 100644 --- a/rules/batiment/batimentquadmaison.hh +++ b/rules/batiment/batimentquadmaison.hh @@ -9,8 +9,8 @@ class BatimentQuadMaison : public Chose { Quad c; public : - static const int minHeight = 400; - static const int maxHeight = 800; + static const int minHeight = 250; + static const int maxHeight = 350; BatimentQuadMaison(Quad c); virtual void triangulation(); diff --git a/rules/batiment/batimentquadmaisonpont.cpp b/rules/batiment/batimentquadmaisonpont.cpp index c89480d..209cc67 100644 --- a/rules/batiment/batimentquadmaisonpont.cpp +++ b/rules/batiment/batimentquadmaisonpont.cpp @@ -1,45 +1,48 @@ #include "all_includes.hh" -BatimentQuadMaisonPont::BatimentQuadMaisonPont(Quad _c, float _height) : Chose(), c(_c), height(_height) { +BatimentQuadMaisonPont::BatimentQuadMaisonPont(Quad _c, int level) : Chose(), c(_c), level(level) { addEntropy(c); + levelHeight = 300; } void BatimentQuadMaisonPont::getBoundingBoxPoints() { addBBPoints(c); - addBBPoints(c + Vertex(0,0,height)); // TODO + addBBPoints(c + Vertex(10,10,level*levelHeight)); // TODO } bool BatimentQuadMaisonPont::split() { + int ih; Quad q = c.makeParallelogram(); if(Segment(q[NE],q[NW]).length() < Segment(q[NE],q[SE]).length()) q = q << 1; float partLength = Segment(q[NE],q[NW]).length() / 3; - float partHeight = 2.5f * height / 3.f; Quad qa = q.inset(E,2*partLength); Quad qb = q.inset(W,2*partLength); Quad qc = q.inset(E, partLength).inset(W, partLength); Quad qh = q; addChild(new BatimentQuadJardin(c)); - addChild(new BatimentQuadBlock(qa,qa + Vertex(0,0,partHeight))); - addChild(new BatimentQuadBlock(qb,qb + Vertex(0,0,partHeight))); - addChild(new BatimentQuadBlock((qh + Vertex(0,0,partHeight)),qh + Vertex(0,0,2*partHeight))); - //addChild(new BatimentQuadPont(qc,partHeight)); - addChild(new BatimentQuadToit(qh + Vertex(0,0,2*partHeight),160)); + addChild(new BatimentQuadBlock(qa,qa + Vertex(0,0,levelHeight))); + addChild(new BatimentQuadBlock(qb,qb + Vertex(0,0,levelHeight))); + for(ih=1;ih