summaryrefslogtreecommitdiff
path: root/src/gui/Stage.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/Stage.cc')
-rw-r--r--src/gui/Stage.cc46
1 files changed, 34 insertions, 12 deletions
diff --git a/src/gui/Stage.cc b/src/gui/Stage.cc
index d9c3541..6b5ec4a 100644
--- a/src/gui/Stage.cc
+++ b/src/gui/Stage.cc
@@ -12,12 +12,27 @@ using namespace vhc::util;
namespace vhc {
-Stage::Stage(QWidget* parent): QGLWidget (parent), accelerator(NULL), camera(), elementRenderer(new ElementRenderer), particleRenderer(), displayMode(FILL), keys(0) {
+Stage::Stage(QWidget* parent):
+ QGLWidget (parent),
+ accelerator(NULL),
+ camera(),
+ elementRenderer(new ElementRenderer),
+ particleRenderer(),
+ displayMode(FILL),
+ keys(0) {
+
+ timer = new QTimer(this);
+
+
+ connect(timer, SIGNAL(timeout()), this, SLOT(foo()));
+ timer->start(1);
+
setMouseTracking(true);
}
Stage::~Stage() {
delete elementRenderer; elementRenderer = NULL;
+ delete timer; timer = NULL;
};
void Stage::initializeGL () {
@@ -99,7 +114,7 @@ void Stage::mouseMoveEvent(QMouseEvent* event) {
int dpitch = -QCursor::pos().y() + center.y();
camera.addHeading(1.0 * dheading / 200);
camera.addPitch(1.0 * dpitch / 200);
- updateGL();
+ update();
}
void Stage::keyPressEvent (QKeyEvent* event) {
@@ -109,21 +124,23 @@ void Stage::keyPressEvent (QKeyEvent* event) {
qApp->quit();
break;
case Qt::Key_A:
- //mv = mv - Vector3D::j;
keys |= 1;
break;
case Qt::Key_W:
- //mv = mv - Vector3D::i;
keys |= 2;
break;
case Qt::Key_D:
- //mv = mv + Vector3D::j;
keys |= 4;
break;
case Qt::Key_S:
- //mv = mv + Vector3D::i;
keys |= 8;
break;
+ case Qt::Key_PageUp:
+ keys |= 16;
+ break;
+ case Qt::Key_PageDown:
+ keys |= 32;
+ break;
case Qt::Key_Up:
camera.addPitch(2 * M_PI / 100);
break;
@@ -155,29 +172,34 @@ void Stage::keyPressEvent (QKeyEvent* event) {
if (keys & 2) mv = mv - 0.1 * Vector3D::i;
if (keys & 4) mv = mv + 0.1 * Vector3D::j;
if (keys & 8) mv = mv + 0.1 * Vector3D::i;
-
+ if (keys & 16) mv = mv + 0.1 * Vector3D::k;
+ if (keys & 32) mv = mv - 0.1 * Vector3D::k;
camera.move(mv);
- updateGL();
+
+
+ update();
}
void Stage::keyReleaseEvent (QKeyEvent* event) {
switch (event->key()) {
case Qt::Key_A:
- //mv = mv - Vector3D::j;
keys &= ~1;
break;
case Qt::Key_W:
- //mv = mv - Vector3D::i;
keys &= ~2;
break;
case Qt::Key_D:
- //mv = mv + Vector3D::j;
keys &= ~4;
break;
case Qt::Key_S:
- //mv = mv + Vector3D::i;
keys &= ~8;
break;
+ case Qt::Key_PageUp:
+ keys &= ~16;
+ break;
+ case Qt::Key_PageDown:
+ keys &= ~32;
+ break;
default:
break;
}