Test et correction des structures de données pour le découpage des bâtiments.
This commit is contained in:
parent
9d6dd26e2c
commit
b5f90a796e
26
main.cpp
26
main.cpp
|
@ -12,6 +12,32 @@ int main() {
|
||||||
c->triangulation();
|
c->triangulation();
|
||||||
c->updateAABB();
|
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);
|
new View(c);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,7 @@ private:
|
||||||
std::map<float, WallVertex*>::iterator it;
|
std::map<float, WallVertex*>::iterator it;
|
||||||
bool reverse;
|
bool reverse;
|
||||||
public:
|
public:
|
||||||
|
MasterWallIterator() : it(), reverse(false) {};
|
||||||
MasterWallIterator(std::map<float, WallVertex*>::iterator mwit) : it(mwit), 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*>::iterator mwit, bool _reverse) : it(mwit), reverse(_reverse) {};
|
||||||
MasterWallIterator(std::map<float, WallVertex*>::reverse_iterator mwrit) : it(--(mwrit.base())), reverse(false) {};
|
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; };
|
bool operator!=(const MasterWallIterator& mwit) const { return it != mwit.it; };
|
||||||
WallVertex* operator*() { return (*it).second; };
|
WallVertex* operator*() { return (*it).second; };
|
||||||
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 {
|
class MasterWall {
|
||||||
|
@ -133,7 +134,7 @@ public:
|
||||||
};
|
};
|
||||||
typedef MasterWall::iterator iterator;
|
typedef MasterWall::iterator iterator;
|
||||||
iterator begin() { return master->find(uPosOnMasterWall, (uPosOnMasterWall > vPosOnMasterWall)); };
|
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
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user