2011-m2s3-city-builder/rules/terrain/terrainquadherbe.cpp
2011-12-21 16:16:32 +01:00

46 lines
1.1 KiB
C++

#include "all_includes.hh"
TerrainQuadHerbe::TerrainQuadHerbe(Vertex ne, Vertex se, Vertex sw, Vertex nw) : Chose(), red(0x11) {
addEntropy(ne, se, sw, nw);
corner[NE] = ne;
corner[SE] = se;
corner[SW] = sw;
corner[NW] = nw;
}
TerrainQuadHerbe::~TerrainQuadHerbe() {
children.clear();
triangles.clear();
}
void TerrainQuadHerbe::getBoundingBoxPoints() {
addBBPoint(corner[NE]);
addBBPoint(corner[SE]);
addBBPoint(corner[SW]);
addBBPoint(corner[NW]);
addBBPoint(corner[NE] + Vertex(0,0,1000)); // TODO
addBBPoint(corner[SE] + Vertex(0,0,1000));
addBBPoint(corner[SW] + Vertex(0,0,1000));
addBBPoint(corner[NW] + Vertex(0,0,1000));
}
TerrainQuadHerbe::TerrainQuadHerbe(int red, Vertex ne, Vertex se, Vertex sw, Vertex nw)
: Chose(), red(red) {
addEntropy(ne, se, sw, nw);
corner[NE] = ne;
corner[SE] = se;
corner[SW] = sw;
corner[NW] = nw;
triangulation();
}
bool TerrainQuadHerbe::split() {
return false;
}
void TerrainQuadHerbe::triangulation() {
triangles.reserve(2);
addTriangle(new Triangle(corner[NE], corner[NW], corner[SW], red, 0xaa, 0x22));
addTriangle(new Triangle(corner[SW], corner[SE], corner[NE], red, 0xaa, 0x22));
}