From 070051b8759806873267cff46ceb2be7d6a3262f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Constantin=20Ri=C3=9F?= Date: Mon, 1 Mar 2010 23:30:40 +0100 Subject: initial commit --- Engine.cpp | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 Engine.cpp (limited to 'Engine.cpp') diff --git a/Engine.cpp b/Engine.cpp new file mode 100644 index 0000000..20de3e6 --- /dev/null +++ b/Engine.cpp @@ -0,0 +1,76 @@ +/* + * Engine.cpp + * + * Created on: 26.02.2010 + * Author: constantin + */ + +#include "Engine.h" + +Engine::Renderer Engine::render; +const float Engine::PLAYER_SPEED = 3; + +Engine::Engine(): playerPos(vmml::vec3f::ZERO), playerRotY(vmml::mat4f::IDENTITY), playerRotX(0) +{ + //tree = new BSPTree(triangles); +} +Engine::~Engine() { + //delete tree; +} + +void Engine::renderScene(unsigned long delta, const Keyset &keys) { + //run(delta, keys); + static Cuboid cube(1, 1, 1, 0, 0, 0); + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glLoadIdentity(); + + glTranslatef(0.0, 0.0, -10.0); // Then set up transformation + glRotatef(0, 1.0, 0.0, 0.0); + glRotatef(0, 0.0, 1.0, 0.0); + + //vmml::mat4f transform, inverseTransform; + //glGetFloatv(GL_MODELVIEW_MATRIX, transform.array); + + //transform.inverse(inverseTransform); + + //vmml::vec3f viewPoint = inverseTransform*vmml::vec3f::ZERO; + + glBegin(GL_TRIANGLES); + //tree->visit(render, viewPoint); + + triangles = cube.getTriangles(); + + for(std::list::iterator t = triangles.begin(); t != triangles.end(); ++t) { + render(*t); + } + glEnd(); + glFlush(); +} + +void Engine::run(unsigned long delta, const Keyset &keys) +{ + vmml::vec3f playerMove(vmml::vec3f::ZERO); + + if(keys.test(KEY_UP)) { + playerMove -= playerRotY*vmml::vec3f::UNIT_Z; + } + if(keys.test(KEY_DOWN)) { + playerMove += playerRotY*vmml::vec3f::UNIT_Z; + } + if(keys.test(KEY_LEFT)) { + playerMove -= playerRotY*vmml::vec3f::UNIT_X; + } + if(keys.test(KEY_RIGHT)) { + playerMove += playerRotY*vmml::vec3f::UNIT_X; + } + + if(playerMove == vmml::vec3f::ZERO) + return; + + playerMove.normalize(); + playerMove *= PLAYER_SPEED*delta/1; + playerPos += playerMove; + +} -- cgit v1.2.3