www

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

commit b5f90a796e732f466035b8f4613cce0300b8c77f
parent 9d6dd26e2c9eda48b18c1838f3673cefc3fc13e2
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Tue, 17 Jan 2012 23:58:36 +0100

Test et correction des structures de données pour le découpage des bâtiments.

Diffstat:
Mmain.cpp | 26++++++++++++++++++++++++++
Mrules/architecture/batiment.hh | 5+++--
2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/main.cpp b/main.cpp @@ -12,6 +12,32 @@ int main() { c->triangulation(); c->updateAABB(); + WallVertex* wvne = new WallVertex(ne); + WallVertex* wvse = new WallVertex(se); + WallVertex* wvsw = new WallVertex(sw); + WallVertex* wvnw = new WallVertex(nw); + Wall* wn = new Wall(wvnw,wvne); + Wall* we = new Wall(wvne,wvse); + Wall* ws = new Wall(wvse,wvsw); + Wall* ww = new Wall(wvsw,wvnw); + WallVertex* wvn = wn->randomPos(Chose::initialSeed, 0, 1.f/3.f, 2.f/3.f); + WallVertex* wvs = ws->randomPos(Chose::initialSeed, 1, 1.f/3.f, 2.f/3.f); + Wall* cut = new Wall(wvn, wvs); + Wall* cut2 = new Wall(wvn, wvse); + + Wall::iterator it; + for (it = wn->begin(); it != wn->end(); ++it) + std::cout << (Vertex)(*(*it)) << std::endl; + + (void) wn; + (void) we; + (void) ws; + (void) ww; + (void) wvn; + (void) wvs; + (void) cut; + (void) cut2; + new View(c); return 0; } diff --git a/rules/architecture/batiment.hh b/rules/architecture/batiment.hh @@ -42,6 +42,7 @@ private: std::map<float, WallVertex*>::iterator it; bool reverse; public: + MasterWallIterator() : it(), reverse(false) {}; MasterWallIterator(std::map<float, WallVertex*>::iterator mwit) : it(mwit), reverse(false) {}; MasterWallIterator(std::map<float, WallVertex*>::iterator mwit, bool _reverse) : it(mwit), reverse(_reverse) {}; MasterWallIterator(std::map<float, WallVertex*>::reverse_iterator mwrit) : it(--(mwrit.base())), reverse(false) {}; @@ -50,7 +51,7 @@ public: bool operator!=(const MasterWallIterator& mwit) const { return it != mwit.it; }; WallVertex* operator*() { return (*it).second; }; WallVertex* operator->() { return (*it).second; }; - virtual void operator++() { if (reverse) it--; else it++; } + virtual MasterWallIterator& operator++() { if (reverse) it--; else it++; return (*this); } }; class MasterWall { @@ -133,7 +134,7 @@ public: }; typedef MasterWall::iterator iterator; iterator begin() { return master->find(uPosOnMasterWall, (uPosOnMasterWall > vPosOnMasterWall)); }; - iterator end() { return master->find(vPosOnMasterWall, (uPosOnMasterWall > vPosOnMasterWall)); }; + iterator end() { return ++(master->find(vPosOnMasterWall, (uPosOnMasterWall > vPosOnMasterWall))); }; }; #endif