From 46f1cf4e438cb9b5040ef14a03a027408be9c675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Thu, 19 Jan 2012 21:25:29 +0100 Subject: [PATCH] Refactor. --- Makefile | 4 +- all_includes.hh | 31 +++----- rules/{architecture => }/arbre.cpp | 0 rules/{architecture => }/arbre.hh | 4 +- rules/{architecture => }/arche.cpp | 0 rules/{architecture => }/arche.hh | 4 +- rules/{architecture => }/batiment.cpp | 0 rules/{architecture => }/batiment.hh | 4 +- rules/batiment/batimentquad.cpp | 30 -------- rules/batiment/batimentquad.hh | 21 ------ rules/batiment/batimentquadblock.cpp | 40 ----------- rules/batiment/batimentquadblock.hh | 19 ----- rules/batiment/batimentquadfenetre.cpp | 14 ---- rules/batiment/batimentquadfenetre.hh | 18 ----- rules/batiment/batimentquadjardin.cpp | 16 ----- rules/batiment/batimentquadjardin.hh | 20 ------ rules/batiment/batimentquadmaison.cpp | 36 ---------- rules/batiment/batimentquadmaison.hh | 21 ------ rules/batiment/batimentquadmaisonpont.cpp | 52 -------------- rules/batiment/batimentquadmaisonpont.hh | 21 ------ rules/batiment/batimentquadmur.cpp | 50 ------------- rules/batiment/batimentquadmur.hh | 24 ------- rules/batiment/batimentquadpont.cpp | 70 ------------------- rules/batiment/batimentquadpont.hh | 21 ------ rules/batiment/batimentquadtoit.cpp | 28 -------- rules/batiment/batimentquadtoit.hh | 20 ------ rules/batiment/batimenttri.cpp | 49 ------------- rules/batiment/batimenttri.hh | 21 ------ .../{architecture => }/couleursDimensions.cpp | 0 .../{architecture => }/couleursDimensions.hh | 4 +- rules/{architecture => }/etage.cpp | 0 rules/{architecture => }/etage.hh | 4 +- rules/{architecture => }/mur.cpp | 0 rules/{architecture => }/mur.hh | 4 +- rules/{architecture => }/quartier.cpp | 0 rules/{architecture => }/quartier.hh | 4 +- rules/{architecture => }/routetrottoir.cpp | 0 rules/{architecture => }/routetrottoir.hh | 4 +- rules/{architecture => }/terrain.cpp | 0 rules/{architecture => }/terrain.hh | 4 +- rules/{architecture => }/toit.cpp | 0 rules/{architecture => }/toit.hh | 4 +- 42 files changed, 32 insertions(+), 634 deletions(-) rename rules/{architecture => }/arbre.cpp (100%) rename rules/{architecture => }/arbre.hh (90%) rename rules/{architecture => }/arche.cpp (100%) rename rules/{architecture => }/arche.hh (82%) rename rules/{architecture => }/batiment.cpp (100%) rename rules/{architecture => }/batiment.hh (88%) delete mode 100644 rules/batiment/batimentquad.cpp delete mode 100644 rules/batiment/batimentquad.hh delete mode 100644 rules/batiment/batimentquadblock.cpp delete mode 100644 rules/batiment/batimentquadblock.hh delete mode 100644 rules/batiment/batimentquadfenetre.cpp delete mode 100644 rules/batiment/batimentquadfenetre.hh delete mode 100644 rules/batiment/batimentquadjardin.cpp delete mode 100644 rules/batiment/batimentquadjardin.hh delete mode 100644 rules/batiment/batimentquadmaison.cpp delete mode 100644 rules/batiment/batimentquadmaison.hh delete mode 100644 rules/batiment/batimentquadmaisonpont.cpp delete mode 100644 rules/batiment/batimentquadmaisonpont.hh delete mode 100644 rules/batiment/batimentquadmur.cpp delete mode 100644 rules/batiment/batimentquadmur.hh delete mode 100644 rules/batiment/batimentquadpont.cpp delete mode 100644 rules/batiment/batimentquadpont.hh delete mode 100644 rules/batiment/batimentquadtoit.cpp delete mode 100644 rules/batiment/batimentquadtoit.hh delete mode 100644 rules/batiment/batimenttri.cpp delete mode 100644 rules/batiment/batimenttri.hh rename rules/{architecture => }/couleursDimensions.cpp (100%) rename rules/{architecture => }/couleursDimensions.hh (95%) rename rules/{architecture => }/etage.cpp (100%) rename rules/{architecture => }/etage.hh (80%) rename rules/{architecture => }/mur.cpp (100%) rename rules/{architecture => }/mur.hh (85%) rename rules/{architecture => }/quartier.cpp (100%) rename rules/{architecture => }/quartier.hh (88%) rename rules/{architecture => }/routetrottoir.cpp (100%) rename rules/{architecture => }/routetrottoir.hh (82%) rename rules/{architecture => }/terrain.cpp (100%) rename rules/{architecture => }/terrain.hh (84%) rename rules/{architecture => }/toit.cpp (100%) rename rules/{architecture => }/toit.hh (90%) diff --git a/Makefile b/Makefile index c16c8cb..277d210 100644 --- a/Makefile +++ b/Makefile @@ -6,8 +6,8 @@ CCWARN=-Wall -Wextra -Werror # -g -rdynamic uniquement pour le debug. CFLAGS=-O0 -g -rdynamic -I. $(CCWARN) -SOURCES = $(shell echo *.cpp geometry/*.cpp rules/*.cpp rules/*/*.cpp) -HEADERS = $(shell echo *.hh geometry/*.hh rules/*.hh rules/*/*.hh) +SOURCES = $(shell echo *.cpp geometry/*.cpp rules/*.cpp) +HEADERS = $(shell echo *.hh geometry/*.hh rules/*.hh) LIBS = -lm -lGL -lGLU -lSDL -lGLEW EXECUTABLE = city diff --git a/all_includes.hh b/all_includes.hh index 67faa52..10c144b 100644 --- a/all_includes.hh +++ b/all_includes.hh @@ -36,27 +36,16 @@ class Chose; #include "view.hh" #include "rules/chose.hh" -#include "rules/architecture/couleursDimensions.hh" +#include "rules/couleursDimensions.hh" -#include "rules/architecture/arbre.hh" -#include "rules/architecture/arche.hh" -#include "rules/architecture/batiment.hh" -#include "rules/architecture/quartier.hh" -#include "rules/architecture/routetrottoir.hh" -#include "rules/architecture/terrain.hh" -#include "rules/architecture/toit.hh" -#include "rules/architecture/etage.hh" -#include "rules/architecture/mur.hh" - -#include "rules/batiment/batimentquad.hh" -#include "rules/batiment/batimentquadmaison.hh" -#include "rules/batiment/batimentquadjardin.hh" -#include "rules/batiment/batimentquadpont.hh" -#include "rules/batiment/batimentquadmaisonpont.hh" -#include "rules/batiment/batimentquadblock.hh" -#include "rules/batiment/batimentquadtoit.hh" -#include "rules/batiment/batimenttri.hh" -#include "rules/batiment/batimentquadmur.hh" -#include "rules/batiment/batimentquadfenetre.hh" +#include "rules/arbre.hh" +#include "rules/arche.hh" +#include "rules/batiment.hh" +#include "rules/quartier.hh" +#include "rules/routetrottoir.hh" +#include "rules/terrain.hh" +#include "rules/toit.hh" +#include "rules/etage.hh" +#include "rules/mur.hh" #endif diff --git a/rules/architecture/arbre.cpp b/rules/arbre.cpp similarity index 100% rename from rules/architecture/arbre.cpp rename to rules/arbre.cpp diff --git a/rules/architecture/arbre.hh b/rules/arbre.hh similarity index 90% rename from rules/architecture/arbre.hh rename to rules/arbre.hh index 7878040..34e5361 100644 --- a/rules/architecture/arbre.hh +++ b/rules/arbre.hh @@ -1,5 +1,5 @@ -#ifndef _RULES_ARCHITECTURE_ARBRE_HH_ -#define _RULES_ARCHITECTURE_ARBRE_HH_ +#ifndef _RULES_ARBRE_HH_ +#define _RULES_ARBRE_HH_ #include "all_includes.hh" diff --git a/rules/architecture/arche.cpp b/rules/arche.cpp similarity index 100% rename from rules/architecture/arche.cpp rename to rules/arche.cpp diff --git a/rules/architecture/arche.hh b/rules/arche.hh similarity index 82% rename from rules/architecture/arche.hh rename to rules/arche.hh index e40e1f2..74bdd58 100644 --- a/rules/architecture/arche.hh +++ b/rules/arche.hh @@ -1,5 +1,5 @@ -#ifndef _RULES_ARCHITECTURE_ARCHE_HH_ -#define _RULES_ARCHITECTURE_ARCHE_HH_ +#ifndef _RULES_ARCHE_HH_ +#define _RULES_ARCHE_HH_ #include "all_includes.hh" diff --git a/rules/architecture/batiment.cpp b/rules/batiment.cpp similarity index 100% rename from rules/architecture/batiment.cpp rename to rules/batiment.cpp diff --git a/rules/architecture/batiment.hh b/rules/batiment.hh similarity index 88% rename from rules/architecture/batiment.hh rename to rules/batiment.hh index df6c51e..3d73d76 100644 --- a/rules/architecture/batiment.hh +++ b/rules/batiment.hh @@ -1,5 +1,5 @@ -#ifndef _RULES_ARCHITECTURE_BATIMENT_HH_ -#define _RULES_ARCHITECTURE_BATIMENT_HH_ +#ifndef _RULES_BATIMENT_HH_ +#define _RULES_BATIMENT_HH_ #include "all_includes.hh" diff --git a/rules/batiment/batimentquad.cpp b/rules/batiment/batimentquad.cpp deleted file mode 100644 index 7074bce..0000000 --- a/rules/batiment/batimentquad.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "all_includes.hh" - -BatimentQuad::BatimentQuad(Quad _c) : Chose(), c(_c) { - addEntropy(c); -} - -void BatimentQuad::getBoundingBoxPoints() { - addBBPoints(c); - addBBPoints(c + Vertex(0,0,maxHeight + maxHeight/2)); // TODO -} - -bool BatimentQuad::split() { - if(proba(seed, 0, 0.1f)) { - addChild(new BatimentQuadMaisonPont(c,3)); - } else { - addChild(new BatimentQuadJardin(c)); - - addChild(new BatimentQuadMaison(c.inset(N,400))); - } - return true; -} - -void BatimentQuad::triangulation() { - triangles.reserve(12); - - float h = floatInRange(seed,1,minHeight,maxHeight); - float htoit = floatInRange(seed,2,minHeight/2,maxHeight/2); - - addGPUOcto(c, c + Vertex(0,0,h + htoit), 0xFFFFFF); -} diff --git a/rules/batiment/batimentquad.hh b/rules/batiment/batimentquad.hh deleted file mode 100644 index 66e823e..0000000 --- a/rules/batiment/batimentquad.hh +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _RULES_BATIMENT_BATIMENTQUAD_HH_ -#define _RULES_BATIMENT_BATIMENTQUAD_HH_ - -#include "all_includes.hh" - - -class BatimentQuad : public Chose { - private : - Quad c; - - public : - static const int minHeight = 400; - static const int maxHeight = 800; - - BatimentQuad(Quad c); - virtual bool split(); - virtual void triangulation(); - virtual void getBoundingBoxPoints(); -}; - -#endif diff --git a/rules/batiment/batimentquadblock.cpp b/rules/batiment/batimentquadblock.cpp deleted file mode 100644 index 8cbceb7..0000000 --- a/rules/batiment/batimentquadblock.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "all_includes.hh" - -BatimentQuadBlock::BatimentQuadBlock(Quad _c, Quad _ch) : Chose(), c(_c), ch(_ch) { - addEntropy(c); - addEntropy(ch); -} - -void BatimentQuadBlock::getBoundingBoxPoints() { - addBBPoints(c); - addBBPoints(ch); -} - -bool BatimentQuadBlock::split() { - 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); - Quad meh = ch.insetOpp(E,28); - Quad msh = ch.inset(E,28).inset(W,28).insetOpp(S,28); - Quad mwh = ch.insetOpp(W,28); - Quad mnh = ch.inset(E,28).inset(W,28).insetOpp(N,28); - - BatimentQuadMur *mme = new BatimentQuadMur(me,meh); - BatimentQuadMur *mmn = new BatimentQuadMur(mn,mnh); - BatimentQuadMur *mmw = new BatimentQuadMur(mw,mwh); - BatimentQuadMur *mms = new BatimentQuadMur(ms,msh); - mme->setWindow(true); - //mmn->setWindow(true); - mmw->setWindow(true); - mms->setWindow(true); - addChild(mme); - addChild(mmw); - addChild(mmn); - addChild(mms); - return true; -} - -void BatimentQuadBlock::triangulation() { - addGPUOcto(c,ch, 0xF1E0E0); -} diff --git a/rules/batiment/batimentquadblock.hh b/rules/batiment/batimentquadblock.hh deleted file mode 100644 index 17e97e0..0000000 --- a/rules/batiment/batimentquadblock.hh +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _RULES_BATIMENT_BATIMENTQUADBLOCK_HH_ -#define _RULES_BATIMENT_BATIMENTQUADBLOCK_HH_ - -#include "all_includes.hh" - - -class BatimentQuadBlock : public Chose { - private : - Quad c; - Quad ch; - - public : - BatimentQuadBlock(Quad c, Quad ch); - virtual bool split(); - virtual void triangulation(); - virtual void getBoundingBoxPoints(); -}; - -#endif diff --git a/rules/batiment/batimentquadfenetre.cpp b/rules/batiment/batimentquadfenetre.cpp deleted file mode 100644 index 03a3110..0000000 --- a/rules/batiment/batimentquadfenetre.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "all_includes.hh" - -BatimentQuadFenetre::BatimentQuadFenetre(Quad _c, float _height) : Chose(), c(_c), height(_height) { - addEntropy(c); -} - -void BatimentQuadFenetre::getBoundingBoxPoints() { - addBBPoints(c); - addBBPoints(c + Vertex(0,0,height)); -} - -void BatimentQuadFenetre::triangulation() { - // Vide laisse un trou à la place de la fenêtre. -} diff --git a/rules/batiment/batimentquadfenetre.hh b/rules/batiment/batimentquadfenetre.hh deleted file mode 100644 index 6773cb3..0000000 --- a/rules/batiment/batimentquadfenetre.hh +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _RULES_BATIMENT_BATIMENTQUADFENETRE_HH_ -#define _RULES_BATIMENT_BATIMENTQUADFENETRE_HH_ - -#include "all_includes.hh" - -class BatimentQuadFenetre: public Chose { - private : - Quad c; - float height; - - public : - - BatimentQuadFenetre(Quad c, float height); - virtual void triangulation(); - virtual void getBoundingBoxPoints(); -}; - -#endif diff --git a/rules/batiment/batimentquadjardin.cpp b/rules/batiment/batimentquadjardin.cpp deleted file mode 100644 index 906c353..0000000 --- a/rules/batiment/batimentquadjardin.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "all_includes.hh" - -BatimentQuadJardin::BatimentQuadJardin(Quad _c) : Chose(), c(_c) { - addEntropy(c); -} - -void BatimentQuadJardin::getBoundingBoxPoints() { - addBBPoints(c); - addBBPoints(c + Vertex(0,0,200)); // TODO -} - -void BatimentQuadJardin::triangulation() { - triangles.reserve(2); - - addGPUQuad(c, 0x126412); -} diff --git a/rules/batiment/batimentquadjardin.hh b/rules/batiment/batimentquadjardin.hh deleted file mode 100644 index b612e2d..0000000 --- a/rules/batiment/batimentquadjardin.hh +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _RULES_BATIMENT_BATIMENTQUADJARDIN_HH -#define _RULES_BATIMENT_BATIMENTQUADJARDIN_HH - -#include "all_includes.hh" - - -class BatimentQuadJardin : public Chose { - private : - Quad c; - - public : - static const int minHeight = 400; - static const int maxHeight = 800; - - BatimentQuadJardin(Quad c); - virtual void triangulation(); - virtual void getBoundingBoxPoints(); -}; - -#endif diff --git a/rules/batiment/batimentquadmaison.cpp b/rules/batiment/batimentquadmaison.cpp deleted file mode 100644 index 46621af..0000000 --- a/rules/batiment/batimentquadmaison.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include "all_includes.hh" - -BatimentQuadMaison::BatimentQuadMaison(Quad _c) : Chose(), c(_c) { - addEntropy(c); -} - -void BatimentQuadMaison::getBoundingBoxPoints() { - addBBPoints(c); - addBBPoints(c + Vertex(0,0,maxHeight + maxHeight/2)); // TODO -} - -bool BatimentQuadMaison::split() { - float h = floatInRange(seed,0,minHeight,maxHeight); - float htoit = floatInRange(seed,0,minHeight/2,maxHeight/2); - Quad ch = c + Vertex(0,0,h); - Vertex toit = (ch[NE] + ch[SE] + ch[SW] + ch[NW]) / 4 + Vertex(0,0,htoit); - - addChild(new BatimentQuadBlock(c,ch)); - addChild(new BatimentQuadToit(ch,1)); - return true; -} - -void BatimentQuadMaison::triangulation() { - triangles.reserve(12); - - float h = floatInRange(seed,0,minHeight,maxHeight); - float htoit = floatInRange(seed,0,minHeight/2,maxHeight/2); - Quad ch = c + Vertex(0,0,h); - Vertex toit = (ch[NE] + ch[SE] + ch[SW] + ch[NW]) / 4 + Vertex(0,0,htoit); - - addGPUOcto(c,ch,Couleurs::mur); - - for (int i = 0; i < 4; i++) { - addGPUTriangle(ch[SE+i],toit,ch[NE+i],0x961618); - } -} diff --git a/rules/batiment/batimentquadmaison.hh b/rules/batiment/batimentquadmaison.hh deleted file mode 100644 index 1a8f2f4..0000000 --- a/rules/batiment/batimentquadmaison.hh +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _RULES_BATIMENT_BATIMENTQUADMAISON_HH_ -#define _RULES_BATIMENT_BATIMENTQUADMAISON_HH_ - -#include "all_includes.hh" - - -class BatimentQuadMaison : public Chose { - private : - Quad c; - - public : - static const int minHeight = 250; - static const int maxHeight = 350; - - BatimentQuadMaison(Quad c); - virtual void triangulation(); - virtual bool split(); - virtual void getBoundingBoxPoints(); -}; - -#endif diff --git a/rules/batiment/batimentquadmaisonpont.cpp b/rules/batiment/batimentquadmaisonpont.cpp deleted file mode 100644 index 209cc67..0000000 --- a/rules/batiment/batimentquadmaisonpont.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "all_includes.hh" - -BatimentQuadMaisonPont::BatimentQuadMaisonPont(Quad _c, int level) : Chose(), c(_c), level(level) { - addEntropy(c); - levelHeight = 300; -} - -void BatimentQuadMaisonPont::getBoundingBoxPoints() { - addBBPoints(c); - 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; - 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,levelHeight))); - addChild(new BatimentQuadBlock(qb,qb + Vertex(0,0,levelHeight))); - for(ih=1;ihwindow = false; -} - -void BatimentQuadMur::getBoundingBoxPoints() { - addBBPoints(c); - addBBPoints(ch); -} - -void BatimentQuadMur::setWindow(bool val) { - val = val; - this->window = val; - Quad q = Quad(ch[NE],c[NE],c[NW],ch[NW]); - int lr = (q.length(S) - 120)/2; - - Quad wFront = q.insetNESW(40,lr,120,lr); - 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]); -} - -bool BatimentQuadMur::split() { - if(!window) - return false; - - Quad right = Quad(windowPos[NW],windowPos[SW],c[SW],c[NW]); - Quad righth = Quad(windowPosh[NW],windowPosh[SW],ch[SW],ch[NW]); - Quad left = Quad(c[NE],c[SE],windowPos[SE],windowPos[NE]); - Quad lefth = Quad(ch[NE],ch[SE],windowPosh[SE],windowPosh[NE]); - Quad top = Quad(windowPosh[NE],windowPosh[NW],windowPosh[SW],windowPosh[SE]); - - addChild(new BatimentQuadMur(c,windowPos)); - addChild(new BatimentQuadMur(windowPosh,ch)); - addChild(new BatimentQuadMur(left,lefth)); - addChild(new BatimentQuadMur(right,righth)); - - return true; -} - -void BatimentQuadMur::triangulation() { - if(!window) - addGPUOcto(c, ch, Couleurs::mur); - //else - //addGPUOcto(c, ch, 0xFF,0x10,0x00); - //addGPUQuad(windowPosh,0xFF,0xFF,0x00); -} diff --git a/rules/batiment/batimentquadmur.hh b/rules/batiment/batimentquadmur.hh deleted file mode 100644 index 1818e09..0000000 --- a/rules/batiment/batimentquadmur.hh +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _RULES_BATIMENT_BATIMENTQUADMUR_HH_ -#define _RULES_BATIMENT_BATIMENTQUADMUR_HH_ - -#include "all_includes.hh" - -class BatimentQuadMur: public Chose { - private : - Quad c; - Quad ch; - bool window; // Contient une fenêtre ou non. - Quad windowPos; - Quad windowPosh; - - public : - - BatimentQuadMur(Quad c, Quad ch); - virtual void triangulation(); - virtual bool split(); - virtual void getBoundingBoxPoints(); - void setWindow(bool val); -}; - -#endif - diff --git a/rules/batiment/batimentquadpont.cpp b/rules/batiment/batimentquadpont.cpp deleted file mode 100644 index 22ddd9d..0000000 --- a/rules/batiment/batimentquadpont.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "all_includes.hh" - -BatimentQuadPont::BatimentQuadPont(Quad _c, float _height) : Chose(), c(_c), height(_height) { - addEntropy(c); -} - -void BatimentQuadPont::getBoundingBoxPoints() { - addBBPoints(c); - addBBPoints(c + Vertex(0,0,height)); // TODO -} - -float BatimentQuadPont::ct(float x) { - return (float)(1 - cosh(x / 1.f)); -} - -float BatimentQuadPont::nt(float x, float _height) { - return (ct(x) + -ct(-1.7f))/(ct(0)+ -ct(-1.7f)) * _height; -} - -void BatimentQuadPont::triangulation() { - //triangles.reserve(2); - float var; - Quad q = c; - Vertex a,b; - height -= 20; - Vertex pa = c[NW]; - Vertex pb = c[SW]; - Quad ch = c + Vertex(0,0,height+20); - Vertex l1 = c[NE] - c[NW]; - Vertex l2 = c[SW] - c[SE]; - - float pas = 0.1f; - int steps = (int)(Angle::Pi / pas); - float n2 = l2.norm()/(Angle::Pi / pas); - n2=n2; - int middle = steps/2; - int n; - - addGPUTriangle(c[SW],pb,ch[SW],0xD0D0D0); - addGPUTriangle(pa,c[NW],ch[NW],0xD0D0D0); - - for(var=-1.7f, n=0; var <= 1.7f; var+=pas, n++) { - q = q.inset(W,n2); - a = q[NW] + Vertex(0,0,nt(var,height)); - b = q[SW] + Vertex(0,0,nt(var,height)); - - addGPUQuad(a,b,pb,pa,0xD0D0D0); - - if( n < middle) { - addGPUTriangle(pa,a,ch[NW],0xD0D0D0); - addGPUTriangle(b,pb,ch[SW],0xD0D0D0); - } - else if(n == middle) { - addGPUTriangle(pa,a,ch[NW],0xD0D0D0); - addGPUTriangle(b,pb,ch[SW],0xD0D0D0); - addGPUTriangle(a,ch[NE],ch[NW],0xD0D0D0); - addGPUTriangle(b,ch[SW],ch[SE],0xD0D0D0); - } - else { - addGPUTriangle(pa,a,ch[NE],0xD0D0D0); - addGPUTriangle(b,pb,ch[SE],0xD0D0D0); - } - - pa = a; - pb = b; - } - - addGPUTriangle(c[SE],pb,ch[SE],0xD0D0D0); - addGPUTriangle(c[NE],pa,ch[NE],0xD0D0D0); -} diff --git a/rules/batiment/batimentquadpont.hh b/rules/batiment/batimentquadpont.hh deleted file mode 100644 index cc5aade..0000000 --- a/rules/batiment/batimentquadpont.hh +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _RULES_BATIMENT_BATIMENTQUADPONT_HH_ -#define _RULES_BATIMENT_BATIMENTQUADPONT_HH_ - -#include "all_includes.hh" - - -class BatimentQuadPont: public Chose { -private : - Quad c; - float height; - -public : - BatimentQuadPont(Quad c, float height); - virtual void triangulation(); - virtual void getBoundingBoxPoints(); -private: - float ct(float x); - float nt(float x, float height); -}; - -#endif diff --git a/rules/batiment/batimentquadtoit.cpp b/rules/batiment/batimentquadtoit.cpp deleted file mode 100644 index 93836d1..0000000 --- a/rules/batiment/batimentquadtoit.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include "all_includes.hh" - -BatimentQuadToit::BatimentQuadToit(Quad _c, int _type) : Chose(), c(_c), type(_type) { - addEntropy(c); -} - -void BatimentQuadToit::getBoundingBoxPoints() { - addBBPoints(c); - addBBPoints(c + Vertex(0,0,200)); // TODO -} - -void BatimentQuadToit::triangulation() { - if(type == 1) { - if(c.minLengthNS() < c.minLengthEW()) - c = c << 1; - c = c.inset(N, -20).inset(S,-20); - height = c.minLengthEW() / 5; - Vertex ce = c[SE] + (c[NE] - c[SE])/2 + Vertex(0,0,height); - Vertex cw = c[SW] + (c[NW] - c[SW])/2 + Vertex(0,0,height); - - addGPUTriangle(c[NW],cw,c[SW],0xF1E0E0); - addGPUTriangle(c[SE],ce,c[NE],0xF1E0E0); - - //addGPUQuad(c[NE],c[NW],c[SW],c[SE],0xF1E0E0); - addGPUQuad(c[NE],c[NW],cw,ce,0xE02000); - addGPUQuad(c[SW],c[SE],ce,cw,0xE02000); - } -} diff --git a/rules/batiment/batimentquadtoit.hh b/rules/batiment/batimentquadtoit.hh deleted file mode 100644 index 0ddefcd..0000000 --- a/rules/batiment/batimentquadtoit.hh +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _RULES_BATIMENT_BATIMENTQUADTOIT_HH_ -#define _RULES_BATIMENT_BATIMENTQUADTOIT_HH_ - -#include "all_includes.hh" - -// TOTO en faire un classe abstraite et définir des classe filles pour les différents types de toits. -class BatimentQuadToit: public Chose { - private : - Quad c; - float height; - int type; - - public : - - BatimentQuadToit(Quad c, int type); - virtual void triangulation(); - virtual void getBoundingBoxPoints(); -}; - -#endif diff --git a/rules/batiment/batimenttri.cpp b/rules/batiment/batimenttri.cpp deleted file mode 100644 index 1cd3454..0000000 --- a/rules/batiment/batimenttri.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include "all_includes.hh" - -BatimentTri::BatimentTri(Triangle _c) : Chose(), c(_c) { - addEntropy(c); -} - -void BatimentTri::getBoundingBoxPoints() { - addBBPoints(c); - addBBPoints(c + Vertex(0,0,maxHeight + maxHeight/2)); // TODO -} - -bool BatimentTri::split() { - return false; - // if(proba(seed, 0, 1, 10)) { - // Quad q = Quad(c[NE],c[SE],c[SW],c[NW]); - // // TODO ajouter une classe surface. - // //addQuad(c[SE],c[SW],c[NW],c[NE],0xDD,0xDD,0xDD); - // addChild(new BatimentQuadMaisonPont(q,800)); - // } else { - // int th = 20; // Terrain height. - // Quad q = Quad(c[NE],c[SE],c[SW],c[NW]); - // q.offset(N,-Dimensions::largeurTrottoir); - // q.offset(E,-Dimensions::largeurTrottoir); - // q.offset(S,-Dimensions::largeurTrottoir); - // q.offset(W,-Dimensions::largeurTrottoir); - - // addChild(new TrottoirQuadNormal(Quad(c[NE],c[SE],q[SE],q[NE]),th,E)); - // addChild(new TrottoirQuadNormal(Quad(c[SE],c[SW],q[SW],q[SE]),th,E)); - // addChild(new TrottoirQuadNormal(Quad(c[SW],c[NW],q[NW],q[SW]),th,E)); - // addChild(new TrottoirQuadNormal(Quad(c[NW],c[NE],q[NE],q[NW]),th,E)); - - // Quad qh = q + Vertex(0,0,th); - // addChild(new BatimentQuadJardin(qh)); - - // qh.offset(this->entry,-400); - // addChild(new BatimentQuadMaison(qh)); - // } - // return true; -} - -void BatimentTri::triangulation() { - float h = floatInRange(seed,1,minHeight,maxHeight); - // float htoit = hashInRange(seed,2,minHeight/2,maxHeight/2); - - Triangle ch = c + Vertex(0,0,h); - addGPUTriangle(ch, Couleurs::toit); - for (int i = 0; i < 3; i++) - addGPUQuad(c[LEFT+i], c[TOP+i], ch[TOP+i], ch[LEFT+i], Couleurs::mur); -} diff --git a/rules/batiment/batimenttri.hh b/rules/batiment/batimenttri.hh deleted file mode 100644 index bfe2abf..0000000 --- a/rules/batiment/batimenttri.hh +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _RULES_BATIMENT_BATIMENTTRI_HH_ -#define _RULES_BATIMENT_BATIMENTTRI_HH_ - -#include "all_includes.hh" - - -class BatimentTri : public Chose { - private : - Triangle c; - - public : - static const int minHeight = 400; - static const int maxHeight = 800; - - BatimentTri(Triangle c); - virtual bool split(); - virtual void triangulation(); - virtual void getBoundingBoxPoints(); -}; - -#endif diff --git a/rules/architecture/couleursDimensions.cpp b/rules/couleursDimensions.cpp similarity index 100% rename from rules/architecture/couleursDimensions.cpp rename to rules/couleursDimensions.cpp diff --git a/rules/architecture/couleursDimensions.hh b/rules/couleursDimensions.hh similarity index 95% rename from rules/architecture/couleursDimensions.hh rename to rules/couleursDimensions.hh index 8c56d52..3f740ab 100644 --- a/rules/architecture/couleursDimensions.hh +++ b/rules/couleursDimensions.hh @@ -1,5 +1,5 @@ -#ifndef _RULES_ARCHITECTURE_COLULEURSDIMENSIONS_HH_ -#define _RULES_ARCHITECTURE_COLULEURSDIMENSIONS_HH_ +#ifndef _RULES_COLULEURSDIMENSIONS_HH_ +#define _RULES_COLULEURSDIMENSIONS_HH_ #include "all_includes.hh" diff --git a/rules/architecture/etage.cpp b/rules/etage.cpp similarity index 100% rename from rules/architecture/etage.cpp rename to rules/etage.cpp diff --git a/rules/architecture/etage.hh b/rules/etage.hh similarity index 80% rename from rules/architecture/etage.hh rename to rules/etage.hh index 6fa6e29..9aca34f 100644 --- a/rules/architecture/etage.hh +++ b/rules/etage.hh @@ -1,5 +1,5 @@ -#ifndef _RULES_BATIMENT_EtageQuad_HH_ -#define _RULES_BATIMENT_EtageQuad_HH_ +#ifndef _RULES_ETAGE_HH_ +#define _RULES_ETAGE_HH_ #include "all_includes.hh" diff --git a/rules/architecture/mur.cpp b/rules/mur.cpp similarity index 100% rename from rules/architecture/mur.cpp rename to rules/mur.cpp diff --git a/rules/architecture/mur.hh b/rules/mur.hh similarity index 85% rename from rules/architecture/mur.hh rename to rules/mur.hh index 0f71170..cadd436 100644 --- a/rules/architecture/mur.hh +++ b/rules/mur.hh @@ -1,5 +1,5 @@ -#ifndef _RULES_BATIMENT_Mur_HH_ -#define _RULES_BATIMENT_Mur_HH_ +#ifndef _RULES_MUR_HH_ +#define _RULES_MUR_HH_ #include "all_includes.hh" diff --git a/rules/architecture/quartier.cpp b/rules/quartier.cpp similarity index 100% rename from rules/architecture/quartier.cpp rename to rules/quartier.cpp diff --git a/rules/architecture/quartier.hh b/rules/quartier.hh similarity index 88% rename from rules/architecture/quartier.hh rename to rules/quartier.hh index 583326e..340ed68 100644 --- a/rules/architecture/quartier.hh +++ b/rules/quartier.hh @@ -1,5 +1,5 @@ -#ifndef _RULES_ARCHITECTURE_QUARTIER_HH_ -#define _RULES_ARCHITECTURE_QUARTIER_HH_ +#ifndef _RULES_QUARTIER_HH_ +#define _RULES_QUARTIER_HH_ #include "all_includes.hh" diff --git a/rules/architecture/routetrottoir.cpp b/rules/routetrottoir.cpp similarity index 100% rename from rules/architecture/routetrottoir.cpp rename to rules/routetrottoir.cpp diff --git a/rules/architecture/routetrottoir.hh b/rules/routetrottoir.hh similarity index 82% rename from rules/architecture/routetrottoir.hh rename to rules/routetrottoir.hh index 359d3bb..7b8b2cc 100644 --- a/rules/architecture/routetrottoir.hh +++ b/rules/routetrottoir.hh @@ -1,5 +1,5 @@ -#ifndef _RULES_ARCHITECTURE_ROUTE_HH_ -#define _RULES_ARCHITECTURE_ROUTE_HH_ +#ifndef _RULES_ROUTETROTTOIR_HH_ +#define _RULES_ROUTETROTTOIR_HH_ #include "all_includes.hh" diff --git a/rules/architecture/terrain.cpp b/rules/terrain.cpp similarity index 100% rename from rules/architecture/terrain.cpp rename to rules/terrain.cpp diff --git a/rules/architecture/terrain.hh b/rules/terrain.hh similarity index 84% rename from rules/architecture/terrain.hh rename to rules/terrain.hh index f9d9dbf..da0d93b 100644 --- a/rules/architecture/terrain.hh +++ b/rules/terrain.hh @@ -1,5 +1,5 @@ -#ifndef _RULES_ARCHITECTURE_TERRAIN_HH_ -#define _RULES_ARCHITECTURE_TERRAIN_HH_ +#ifndef _RULES_TERRAIN_HH_ +#define _RULES_TERRAIN_HH_ #include "all_includes.hh" diff --git a/rules/architecture/toit.cpp b/rules/toit.cpp similarity index 100% rename from rules/architecture/toit.cpp rename to rules/toit.cpp diff --git a/rules/architecture/toit.hh b/rules/toit.hh similarity index 90% rename from rules/architecture/toit.hh rename to rules/toit.hh index d4cb700..66e50be 100644 --- a/rules/architecture/toit.hh +++ b/rules/toit.hh @@ -1,5 +1,5 @@ -#ifndef _RULES_ARCHITECTURE_TOIT_HH_ -#define _RULES_ARCHITECTURE_TOIT_HH_ +#ifndef _RULES_TOIT_HH_ +#define _RULES_TOIT_HH_ #include "all_includes.hh"