2011-m2s3-city-builder/rules/batiment/batimentquadjardin.cpp
Yoann 7b7575d120 Ajout d'une fonction de reduction d'un segment, et d'une fonction
permettant d'extraire un parallélogramme à partir d'un quadrilatère.
2011-12-21 10:31:43 +01:00

51 lines
1.3 KiB
C++

#include "all_includes.hh"
BatimentQuadJardin::BatimentQuadJardin(Vertex ne, Vertex se, Vertex sw, Vertex nw) : Chose() {
addEntropy(ne, se, sw, nw);
lctr = Vertex(ne.x-nw.x,se.y-ne.y,0.0f);
this->ne = ne-lctr;
this->se = se-lctr;
this-> sw = sw-lctr;
this->nw = nw-lctr;
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; }
std::vector<Vertex*> BatimentQuadJardin::getBoundingBoxPoints() const {
std::vector<Vertex*> list;
return list;
}
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);
addTriangle(new Triangle(lctr+ne,lctr+nw,lctr+sw,0x12,0x64,0x12));
addTriangle(new Triangle(lctr+sw,lctr+se,lctr+ne,0x12,0x64,0x12));
//addTriangle(new Triangle(lctr+ne,lctr+nw,lctr+sw,0xFF,0xFF,0x00));
//addTriangle(new Triangle(lctr+sw,lctr+se,lctr+ne,0xFF,0xFF,0x00));
}