diff options
Diffstat (limited to 'src/View/TopView.cpp')
-rw-r--r-- | src/View/TopView.cpp | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/View/TopView.cpp b/src/View/TopView.cpp index 43f0bc1..38d4824 100644 --- a/src/View/TopView.cpp +++ b/src/View/TopView.cpp @@ -18,28 +18,29 @@ */ #include "TopView.h" -#include "../Data/Level.h" -#include "../Data/Room.h" -#include "../Data/Triangle.h" -#include <cmath> +#include <Data/Level.h> +#include <Data/Room.h> +#include <Data/Triangle.h> +#include <GL/gl.h> namespace ZoomEdit { namespace View { void TopView::renderRoom(Data::Room *room) { - const std::list<Data::Triangle*> &triangles = room->getTriangles(); - std::list<Data::Triangle*> floor; + const std::list<Data::Triangle*> &floor = room->getFloorTriangles(); - for(std::list<Data::Triangle*>::const_iterator t = triangles.begin(); t != triangles.end(); ++t) { - Data::Vector v1 = (*t)->getVertex(1) - (*t)->getVertex(0); - Data::Vector v2 = (*t)->getVertex(2) - (*t)->getVertex(0); - - Data::Vector n = (v1 % v2); - n.normalize(); - - if(n*Data::Vector(0, 1, 0) > std::cos(45)) - floor.push_back(*t); + glColor4f(0.0f, 0.7f, 1.0f, 0.3f); + + glBegin(GL_TRIANGLES); + + for(std::list<Data::Triangle*>::const_iterator t = floor.begin(); t != floor.end(); ++t) { + for(int i = 0; i < 3; ++i) { + const Data::Vertex &v = (*t)->getVertex(i); + glVertex2f(v.getX(), v.getZ()); + } } + + glEnd(); } void TopView::render() { |