Renomage de la fonction subdivide en split et ajout de la fonction de
merge.
This commit is contained in:
parent
d171be9892
commit
80aad0bd14
4
main.cpp
4
main.cpp
|
@ -10,7 +10,7 @@
|
|||
// -> bâtiment dans le "bout" le plus "étroit", et lignes dans une seule direction dans le reste.
|
||||
|
||||
void recursiveSubdivide(Chose* c) {
|
||||
if (c->subdivide()) {
|
||||
if (c->split()) {
|
||||
std::vector<Chose*>::iterator it;
|
||||
for (it = c->children.begin(); it != c->children.end(); ++it) {
|
||||
recursiveSubdivide(*it);
|
||||
|
@ -27,7 +27,7 @@ int main() {
|
|||
Vertex sw(0, 0, 0);
|
||||
Vertex nw(0, size, 0);
|
||||
Chose* c = QuartierQuad::factory(Chose::initialSeed, 0, ne, se, sw, nw);
|
||||
// c->subdivide();
|
||||
// c->split();
|
||||
recursiveSubdivide(c);
|
||||
|
||||
View *v = new View(c);
|
||||
|
|
|
@ -10,6 +10,13 @@ BatimentQuad::BatimentQuad(Vertex ne, Vertex se, Vertex sw, Vertex nw, Cardinal
|
|||
triangulation();
|
||||
}
|
||||
|
||||
BatimentQuad::~BatimentQuad() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
int BatimentQuad::width() { return this->ne.x - this->sw.x; }
|
||||
int BatimentQuad::height() { return this->ne.y - this->sw.y; }
|
||||
|
||||
|
@ -18,11 +25,19 @@ std::vector<Vertex*> BatimentQuad::getBoundingBoxPoints() const {
|
|||
return list;
|
||||
}
|
||||
|
||||
bool BatimentQuad::subdivide() {
|
||||
bool BatimentQuad::split() {
|
||||
factory(1,1,ne,se,sw,nw);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool BatimentQuad::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
Chose* BatimentQuad::factory(int seed, int n, Vertex ne, Vertex se, Vertex sw, Vertex nw) {
|
||||
int th = 20; // Terrain height.
|
||||
Quad q = Quad(ne,se,sw,nw);
|
||||
|
|
|
@ -17,9 +17,11 @@ class BatimentQuad : public Chose {
|
|||
static const int maxHeight = 800;
|
||||
|
||||
BatimentQuad(Vertex ne, Vertex se, Vertex sw, Vertex nw, Cardinal door);
|
||||
virtual ~BatimentQuad();
|
||||
int width();
|
||||
int height();
|
||||
virtual bool subdivide();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual void triangulation();
|
||||
Chose* factory(int seed, int n, Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
|
|
|
@ -5,6 +5,13 @@ BatimentQuadJardin::BatimentQuadJardin(Vertex ne, Vertex se, Vertex sw, Vertex n
|
|||
triangulation();
|
||||
}
|
||||
|
||||
BatimentQuadJardin::~BatimentQuadJardin() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
int BatimentQuadJardin::width() { return this->ne.x - this->sw.x; }
|
||||
|
||||
int BatimentQuadJardin::height() { return this->ne.y - this->sw.y; }
|
||||
|
@ -14,11 +21,19 @@ std::vector<Vertex*> BatimentQuadJardin::getBoundingBoxPoints() const {
|
|||
return list;
|
||||
}
|
||||
|
||||
bool BatimentQuadJardin::subdivide() {
|
||||
bool BatimentQuadJardin::split() {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool BatimentQuadJardin::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
void BatimentQuadJardin::triangulation() {
|
||||
triangles.reserve(2);
|
||||
|
||||
|
|
|
@ -16,9 +16,11 @@ class BatimentQuadJardin : public Chose {
|
|||
static const int maxHeight = 800;
|
||||
|
||||
BatimentQuadJardin(Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual ~BatimentQuadJardin();
|
||||
int width();
|
||||
int height();
|
||||
virtual bool subdivide();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual void triangulation();
|
||||
Chose* factory(int seed, int n, Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
|
|
|
@ -5,6 +5,13 @@ BatimentQuadMaison::BatimentQuadMaison(Vertex ne, Vertex se, Vertex sw, Vertex n
|
|||
triangulation();
|
||||
}
|
||||
|
||||
BatimentQuadMaison::~BatimentQuadMaison() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
int BatimentQuadMaison::width() { return this->ne.x - this->sw.x; }
|
||||
|
||||
int BatimentQuadMaison::height() { return this->ne.y - this->sw.y; }
|
||||
|
@ -14,11 +21,19 @@ std::vector<Vertex*> BatimentQuadMaison::getBoundingBoxPoints() const {
|
|||
return list;
|
||||
}
|
||||
|
||||
bool BatimentQuadMaison::subdivide() {
|
||||
bool BatimentQuadMaison::split() {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool BatimentQuadMaison::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
void BatimentQuadMaison::triangulation() {
|
||||
triangles.reserve(12);
|
||||
|
||||
|
|
|
@ -16,9 +16,11 @@ class BatimentQuadMaison : public Chose {
|
|||
static const int maxHeight = 800;
|
||||
|
||||
BatimentQuadMaison(Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual ~BatimentQuadMaison();
|
||||
int width();
|
||||
int height();
|
||||
virtual bool subdivide();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual void triangulation();
|
||||
Chose* factory(int seed, int n, Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
|
|
|
@ -16,7 +16,8 @@ class Chose {
|
|||
|
||||
public :
|
||||
void display();
|
||||
virtual bool subdivide() = 0;
|
||||
virtual bool split() = 0;
|
||||
virtual bool merge() = 0;
|
||||
|
||||
protected :
|
||||
Chose();
|
||||
|
|
|
@ -8,6 +8,13 @@ QuartierQuad::QuartierQuad(Vertex ne, Vertex se, Vertex sw, Vertex nw) : Chose()
|
|||
corner[NW] = nw;
|
||||
}
|
||||
|
||||
QuartierQuad::~QuartierQuad() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
std::vector<Vertex*> QuartierQuad::getBoundingBoxPoints() const {
|
||||
std::vector<Vertex*> list;
|
||||
return list;
|
||||
|
@ -38,10 +45,18 @@ Chose* QuartierQuad::factory(int seed, int n, Vertex ne, Vertex se, Vertex sw, V
|
|||
}
|
||||
}
|
||||
|
||||
bool QuartierQuad::subdivide() {
|
||||
bool QuartierQuad::split() {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool QuartierQuad::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
void QuartierQuad::triangulation() {
|
||||
triangles.reserve(2);
|
||||
addTriangle(new Triangle(corner[NE], corner[NW], corner[SW], 0xc0, 0xc0, 0xc0));
|
||||
|
|
|
@ -9,7 +9,9 @@ public:
|
|||
Vertex corner[4];
|
||||
public:
|
||||
QuartierQuad(Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual bool subdivide();
|
||||
virtual ~QuartierQuad();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual void triangulation();
|
||||
static Chose* factory(int seed, int n, Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
|
|
|
@ -4,12 +4,19 @@ QuartierQuadAngle::QuartierQuadAngle(Vertex ne, Vertex se, Vertex sw, Vertex nw)
|
|||
triangulation();
|
||||
}
|
||||
|
||||
QuartierQuadAngle::~QuartierQuadAngle() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
std::vector<Vertex*> QuartierQuadAngle::getBoundingBoxPoints() const {
|
||||
std::vector<Vertex*> list;
|
||||
return list;
|
||||
}
|
||||
|
||||
bool QuartierQuadAngle::subdivide() {
|
||||
bool QuartierQuadAngle::split() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (Triangle(corner[NW+i], corner[NE+i], corner[SE+i]).angle() >= Angle::d2r(130)) {
|
||||
Triangle t1(corner[NE+i], corner[SE+i], corner[SW+i]);
|
||||
|
@ -59,3 +66,11 @@ bool QuartierQuadAngle::subdivide() {
|
|||
addChild(new TerrainQuadHerbe(corner[NE], corner[SE], corner[SW], corner[NW]));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool QuartierQuadAngle::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,9 @@ class QuartierQuadAngle : public QuartierQuad {
|
|||
|
||||
public :
|
||||
QuartierQuadAngle(Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual bool subdivide();
|
||||
virtual ~QuartierQuadAngle();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
|
||||
private :
|
||||
|
|
|
@ -3,12 +3,19 @@
|
|||
QuartierQuadCarre::QuartierQuadCarre(Vertex ne, Vertex se, Vertex sw, Vertex nw) : QuartierQuad(ne, se, sw, nw) {
|
||||
}
|
||||
|
||||
QuartierQuadCarre::~QuartierQuadCarre() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
std::vector<Vertex*> QuartierQuadCarre::getBoundingBoxPoints() const {
|
||||
std::vector<Vertex*> list;
|
||||
return list;
|
||||
}
|
||||
|
||||
bool QuartierQuadCarre::subdivide() {
|
||||
bool QuartierQuadCarre::split() {
|
||||
Vertex middle[4];
|
||||
Quad q[4];
|
||||
|
||||
|
@ -30,3 +37,11 @@ bool QuartierQuadCarre::subdivide() {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool QuartierQuadCarre::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,9 @@ class QuartierQuadCarre : public QuartierQuad {
|
|||
|
||||
public :
|
||||
QuartierQuadCarre(Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual bool subdivide();
|
||||
virtual ~QuartierQuadCarre();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
};
|
||||
|
||||
|
|
|
@ -3,12 +3,19 @@
|
|||
QuartierQuadRect::QuartierQuadRect(Vertex ne, Vertex se, Vertex sw, Vertex nw) : QuartierQuad(ne, se, sw, nw) {
|
||||
}
|
||||
|
||||
QuartierQuadRect::~QuartierQuadRect() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
std::vector<Vertex*> QuartierQuadRect::getBoundingBoxPoints() const {
|
||||
std::vector<Vertex*> list;
|
||||
return list;
|
||||
}
|
||||
|
||||
bool QuartierQuadRect::subdivide() {
|
||||
bool QuartierQuadRect::split() {
|
||||
Vertex n = Segment(corner[NW], corner[NE]).randomPos(seed, 0, 33, 67);
|
||||
Vertex s = Segment(corner[SE], corner[SW]).randomPos(seed, 1, 33, 67);
|
||||
|
||||
|
@ -22,3 +29,11 @@ bool QuartierQuadRect::subdivide() {
|
|||
addChild(QuartierQuad::factory(seed, 3, qw.corner[0], qw.corner[1], qw.corner[2], qw.corner[3]));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool QuartierQuadRect::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,9 @@ class QuartierQuadRect : public QuartierQuad {
|
|||
|
||||
public :
|
||||
QuartierQuadRect(Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual bool subdivide();
|
||||
virtual ~QuartierQuadRect();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
};
|
||||
|
||||
|
|
|
@ -8,6 +8,13 @@ QuartierTri::QuartierTri(Vertex left, Vertex top, Vertex right) : Chose() {
|
|||
triangulation();
|
||||
}
|
||||
|
||||
QuartierTri::~QuartierTri() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
std::vector<Vertex*> QuartierTri::getBoundingBoxPoints() const {
|
||||
std::vector<Vertex*> list;
|
||||
return list;
|
||||
|
@ -20,10 +27,18 @@ Chose* QuartierTri::factory(int seed, int n, Vertex left, Vertex top, Vertex rig
|
|||
return new QuartierTri(left, top, right);
|
||||
}
|
||||
|
||||
bool QuartierTri::subdivide() {
|
||||
bool QuartierTri::split() {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool QuartierTri::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
void QuartierTri::triangulation() {
|
||||
triangles.reserve(1);
|
||||
addTriangle(new Triangle(corner[0], corner[1], corner[2], 0xf0, 0xc0, 0xc0));
|
||||
|
|
|
@ -10,7 +10,9 @@ class QuartierTri : public Chose {
|
|||
|
||||
public :
|
||||
QuartierTri(Vertex left, Vertex top, Vertex right);
|
||||
virtual bool subdivide();
|
||||
virtual ~QuartierTri();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual void triangulation();
|
||||
static Chose* factory(int seed, int n, Vertex left, Vertex top, Vertex right);
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
|
|
|
@ -5,16 +5,31 @@ RouteQuadCarrefour::RouteQuadCarrefour(Vertex ne, Vertex se, Vertex sw, Vertex n
|
|||
triangulation();
|
||||
}
|
||||
|
||||
RouteQuadCarrefour::~RouteQuadCarrefour() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
std::vector<Vertex*> RouteQuadCarrefour::getBoundingBoxPoints() const {
|
||||
std::vector<Vertex*> list;
|
||||
return list;
|
||||
}
|
||||
|
||||
bool RouteQuadCarrefour::subdivide() {
|
||||
bool RouteQuadCarrefour::split() {
|
||||
// TODO
|
||||
return false;
|
||||
}
|
||||
|
||||
bool RouteQuadCarrefour::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
void RouteQuadCarrefour::triangulation() {
|
||||
triangles.reserve(2);
|
||||
addTriangle(new Triangle(ne, nw, sw, 0x36, 0x36, 0x36));
|
||||
|
|
|
@ -12,7 +12,9 @@ class RouteQuadCarrefour : public Chose {
|
|||
|
||||
public :
|
||||
RouteQuadCarrefour(Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual bool subdivide();
|
||||
virtual ~RouteQuadCarrefour();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual void triangulation();
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
};
|
||||
|
|
|
@ -4,16 +4,31 @@ RouteQuadChaussee::RouteQuadChaussee(Vertex ne, Vertex se, Vertex sw, Vertex nw)
|
|||
triangulation();
|
||||
}
|
||||
|
||||
RouteQuadChaussee::~RouteQuadChaussee() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
std::vector<Vertex*> RouteQuadChaussee::getBoundingBoxPoints() const {
|
||||
std::vector<Vertex*> list;
|
||||
return list;
|
||||
}
|
||||
|
||||
bool RouteQuadChaussee::subdivide() {
|
||||
bool RouteQuadChaussee::split() {
|
||||
// TODO
|
||||
return false;
|
||||
}
|
||||
|
||||
bool RouteQuadChaussee::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
void RouteQuadChaussee::triangulation() {
|
||||
triangles.reserve(2);
|
||||
addTriangle(new Triangle(ne, nw, sw, 0x36, 0x36, 0x36));
|
||||
|
|
|
@ -12,7 +12,9 @@ class RouteQuadChaussee : public Chose {
|
|||
|
||||
public :
|
||||
RouteQuadChaussee(Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
virtual bool subdivide();
|
||||
virtual ~RouteQuadChaussee();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual void triangulation();
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
};
|
||||
|
|
|
@ -10,16 +10,31 @@ TrottoirQuadNormal::TrottoirQuadNormal(Vertex ne, Vertex se, Vertex sw, Vertex n
|
|||
triangulation();
|
||||
}
|
||||
|
||||
TrottoirQuadNormal::~TrottoirQuadNormal() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
std::vector<Vertex*> TrottoirQuadNormal::getBoundingBoxPoints() const {
|
||||
std::vector<Vertex*> list;
|
||||
return list;
|
||||
}
|
||||
|
||||
bool TrottoirQuadNormal::subdivide() {
|
||||
bool TrottoirQuadNormal::split() {
|
||||
// TODO
|
||||
return false;
|
||||
}
|
||||
|
||||
bool TrottoirQuadNormal::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
void TrottoirQuadNormal::triangulation() {
|
||||
Vertex h = Vertex(0,0,height);
|
||||
Quad q = Quad(ne,se,sw,nw);
|
||||
|
|
|
@ -14,7 +14,9 @@ class TrottoirQuadNormal : public Chose {
|
|||
|
||||
public :
|
||||
TrottoirQuadNormal(Vertex ne, Vertex se, Vertex sw, Vertex nw, int height, Cardinal border);
|
||||
virtual bool subdivide();
|
||||
virtual ~TrottoirQuadNormal();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual void triangulation();
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
};
|
||||
|
|
|
@ -9,6 +9,13 @@ TerrainQuadHerbe::TerrainQuadHerbe(Vertex ne, Vertex se, Vertex sw, Vertex nw) :
|
|||
triangulation();
|
||||
}
|
||||
|
||||
TerrainQuadHerbe::~TerrainQuadHerbe() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
}
|
||||
|
||||
std::vector<Vertex*> TerrainQuadHerbe::getBoundingBoxPoints() const {
|
||||
std::vector<Vertex*> list;
|
||||
return list;
|
||||
|
@ -23,10 +30,18 @@ TerrainQuadHerbe::TerrainQuadHerbe(int red, Vertex ne, Vertex se, Vertex sw, Ver
|
|||
triangulation();
|
||||
}
|
||||
|
||||
bool TerrainQuadHerbe::subdivide() {
|
||||
bool TerrainQuadHerbe::split() {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool TerrainQuadHerbe::merge() {
|
||||
for(unsigned int i = 0; i < children.size(); i++)
|
||||
delete(children[i]);
|
||||
children.clear();
|
||||
triangles.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
void TerrainQuadHerbe::triangulation() {
|
||||
triangles.reserve(2);
|
||||
addTriangle(new Triangle(corner[NE], corner[NW], corner[SW], red, 0xaa, 0x22));
|
||||
|
|
|
@ -12,7 +12,9 @@ class TerrainQuadHerbe : public Chose {
|
|||
public :
|
||||
TerrainQuadHerbe(Vertex ne, Vertex se, Vertex sw, Vertex nw);
|
||||
TerrainQuadHerbe(int red, Vertex ne, Vertex se, Vertex sw, Vertex nw); // DEBUG
|
||||
virtual bool subdivide();
|
||||
virtual ~TerrainQuadHerbe();
|
||||
virtual bool split();
|
||||
virtual bool merge();
|
||||
virtual void triangulation();
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue
Block a user