2011-m2s3-city-builder/rules/route/routequadchaussee.cpp

50 lines
1.3 KiB
C++

#include "all_includes.hh"
RouteQuadChaussee::RouteQuadChaussee(Vertex ne, Vertex se, Vertex sw, Vertex nw) : Chose() {
addEntropy(ne,se,sw,nw);
corner[NE] = ne;
corner[SE] = se;
corner[SW] = sw;
corner[NW] = nw;
}
RouteQuadChaussee::~RouteQuadChaussee() {
children.clear();
triangles.clear();
}
void RouteQuadChaussee::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));
}
bool RouteQuadChaussee::split() {
return false;
}
void RouteQuadChaussee::triangulation() {
triangles.reserve(2);
addTriangle(new Triangle(corner[NE], corner[NW], corner[SW], 0x36, 0x36, 0x36));
addTriangle(new Triangle(corner[SW], corner[SE], corner[NE], 0x36, 0x36, 0x36));
}
// Version avec trottoirs.
/*void RouteQuadChaussee::triangulation() {
triangles.reserve(2);
Vertex nne, nnw, nse, nsw; // Nouvel emplacement de la route.
nnw = nw + ((ne - nw)/6);
nsw = sw + ((se - sw)/6);
nne = ne - ((ne - nw)/6);
nse = se - ((se - sw)/6);
addChild(new TrottoirRoute(nnw, nsw, sw, nw, 20));
addChild(new TrottoirRoute(ne, se, nse, nne,20));
}*/