From 7f41448de9242dc21582231e29cc0e8b25d0f159 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 11 Dec 2009 19:33:50 +0100 Subject: Einige Verbesserungen am BSPTree und der DisplayClass --- DisplayClass.cpp | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) (limited to 'DisplayClass.cpp') diff --git a/DisplayClass.cpp b/DisplayClass.cpp index b47fc48..2c4489b 100644 --- a/DisplayClass.cpp +++ b/DisplayClass.cpp @@ -1,11 +1,10 @@ #include "DisplayClass.h" #include "gl.h" -#include "BSPTree.h" DisplayClass::Renderer DisplayClass::renderer; -DisplayClass::DisplayClass() { +DisplayClass::DisplayClass() : angle(0) { cubehole0 = Cubehole(3.0, 6.0, 3.0, 0.0, 0.0, 0.0, 2.5, 2.5, vmml::vec4f(1.0, 0.85, 0.06, 0.5), vmml::vec4f(1.0, 0.85, 0.06, 0.5), @@ -36,11 +35,27 @@ DisplayClass::DisplayClass() { vmml::vec4f(1.0, 0.0, 0.06, 0.5), vmml::vec4f(1.0, 0.0, 0.06, 0.5), vmml::vec4f(1.0, 0.0, 0.06, 0.5)); + + std::list triangles = cubehole0.getTriangles(); + std::list t1 = cubehole1.getTriangles(); + triangles.splice(triangles.end(), t1); + std::list t2 = cubehole2.getTriangles(); + triangles.splice(triangles.end(), t2); + std::list t3 = cubehole3.getTriangles(); + triangles.splice(triangles.end(), t3); + std::list t4 = cubehole4.getTriangles(); + triangles.splice(triangles.end(), t4); + std::list t5 = cubehole5.getTriangles(); + triangles.splice(triangles.end(), t5); + + tree = new BSPTree(triangles); +} + +DisplayClass::~DisplayClass() { + delete tree; } -void DisplayClass::renderScene(unsigned long delta) -{ - static float angle = 0.0; +void DisplayClass::renderScene(unsigned long delta) { angle += delta*0.025; if(angle >= 360) angle -= 360; @@ -55,7 +70,7 @@ void DisplayClass::renderScene(unsigned long delta) glRotatef(-angle*5, 1.0, 1.0, 1.0); - std::list triangles = cubehole0.getTriangles(); + /*std::list triangles = cubehole0.getTriangles(); std::list t1 = cubehole1.getTriangles(); triangles.splice(triangles.end(), t1); std::list t2 = cubehole2.getTriangles(); @@ -67,7 +82,7 @@ void DisplayClass::renderScene(unsigned long delta) std::list t5 = cubehole5.getTriangles(); triangles.splice(triangles.end(), t5); - BSPTree tree(triangles); + BSPTree tree(triangles);*/ vmml::mat4f transform, inverseTransform; glGetFloatv(GL_MODELVIEW_MATRIX, transform.array); @@ -77,7 +92,7 @@ void DisplayClass::renderScene(unsigned long delta) vmml::vec3f viewPoint = inverseTransform*vmml::vec3f::ZERO; glBegin(GL_TRIANGLES); - tree.visit(renderer, viewPoint); + tree->visit(renderer, viewPoint); glEnd(); glFlush(); -- cgit v1.2.3