Simplification pour la création de faces avec l'ajout d'une fonction
addQuad() qui permet d'ajouter directement un quadrilatère et coupe le coupe en deux triangles.
This commit is contained in:
parent
01dd83e78f
commit
920d2c84bf
|
@ -51,10 +51,10 @@ void BatimentQuadMaison::triangulation() {
|
|||
Vertex toit = (neh + seh + nwh + swh) / 4 + Vertex(0,0,htoit);
|
||||
|
||||
// 4 Murs
|
||||
addTriangle(new Triangle(lctr+neh,lctr+seh,lctr+ne,0xf1,0xe3,0xad)); addTriangle(new Triangle(lctr+seh,lctr+se,lctr+ne,0xf1,0xe3,0xad)); // ne-se-seh-neh
|
||||
addTriangle(new Triangle(lctr+seh,lctr+swh,lctr+se,0xf1,0xe3,0xad)); addTriangle(new Triangle(lctr+swh,lctr+sw,lctr+se,0xf1,0xe3,0xad)); // se-sw-swh-seh
|
||||
addTriangle(new Triangle(lctr+swh,lctr+nwh,lctr+sw,0xf1,0xe3,0xad)); addTriangle(new Triangle(lctr+nwh,lctr+nw,lctr+sw,0xf1,0xe3,0xad)); // sw-nw-nwh-swh
|
||||
addTriangle(new Triangle(lctr+nwh,lctr+neh,lctr+nw,0xf1,0xe3,0xad)); addTriangle(new Triangle(lctr+neh,lctr+ne,lctr+nw,0xf1,0xe3,0xad)); // nw-ne-neh-nwh
|
||||
addQuad(lctr+neh,lctr+seh,lctr+se,lctr+ne,0xf1,0xe3,0xad);
|
||||
addQuad(lctr+seh,lctr+swh,lctr+sw,lctr+se,0xf1,0xe3,0xad);
|
||||
addQuad(lctr+swh,lctr+nwh,lctr+nw,lctr+sw,0xf1,0xe3,0xad);
|
||||
addQuad(lctr+nwh,lctr+neh,lctr+ne,lctr+nw,0xf1,0xe3,0xad);
|
||||
|
||||
// 1 Toit
|
||||
addTriangle(new Triangle(lctr+neh,lctr+toit,lctr+seh,0x9a,0x48,0x3c));
|
||||
|
|
|
@ -21,6 +21,11 @@ void Chose::addTriangle(Triangle* t) {
|
|||
// TODO : Ajouter t dans la liste des triangles à envoyer au GPU.
|
||||
}
|
||||
|
||||
void Chose::addQuad(Vertex u, Vertex v, Vertex w, Vertex x, char r, char g, char b) {
|
||||
this->addTriangle(new Triangle(u,x,w,r,g,b));
|
||||
this->addTriangle(new Triangle(w,v,u,r,g,b));
|
||||
}
|
||||
|
||||
void Chose::display() {
|
||||
if (children.size() > 0) {
|
||||
std::vector<Chose*>::iterator it;
|
||||
|
|
|
@ -32,6 +32,7 @@ class Chose {
|
|||
inline void addEntropy(Vertex v1, Vertex v2, Vertex v3, Vertex v4) { addEntropy(v1, v2); addEntropy(v3, v4); }
|
||||
void addChild(Chose* c);
|
||||
void addTriangle(Triangle* t);
|
||||
void addQuad(Vertex u, Vertex v, Vertex w, Vertex x, char r, char g, char b);
|
||||
virtual void triangulation() = 0;
|
||||
virtual std::vector<Vertex*> getBoundingBoxPoints() const = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user