From 10c9d92cd2581448d76548efb20957a7a1c24478 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Wed, 19 Sep 2012 21:23:42 +0200 Subject: Mouse wheel events, motion vectors - added mouse wheel events - added motion vectors to CRobotMain - other minor changes in event.h --- src/graphics/engine/camera.cpp | 34 ++++++++++++++++------------------ src/graphics/engine/camera.h | 2 +- 2 files changed, 17 insertions(+), 19 deletions(-) (limited to 'src/graphics/engine') diff --git a/src/graphics/engine/camera.cpp b/src/graphics/engine/camera.cpp index 80757c4..cd7e307 100644 --- a/src/graphics/engine/camera.cpp +++ b/src/graphics/engine/camera.cpp @@ -1002,11 +1002,9 @@ bool Gfx::CCamera::EventProcess(const Event &event) EventMouseMove(event); break; - // TODO: mouse wheel event - /*case EVENT_KEY_DOWN: - if ( event.param == VK_WHEELUP ) EventMouseWheel(+1); - if ( event.param == VK_WHEELDOWN ) EventMouseWheel(-1); - break;*/ + case EVENT_MOUSE_WHEEL: + EventMouseWheel(event.mouseWheel.dir); + break; default: break; @@ -1020,17 +1018,17 @@ bool Gfx::CCamera::EventMouseMove(const Event &event) return true; } -void Gfx::CCamera::EventMouseWheel(int dir) +void Gfx::CCamera::EventMouseWheel(WheelDirection dir) { if (m_type == Gfx::CAM_TYPE_BACK) { - if (dir > 0) + if (dir == WHEEL_UP) { m_backDist -= 8.0f; if (m_backDist < m_backMin) m_backDist = m_backMin; } - if (dir < 0) + else if (dir == WHEEL_DOWN) { m_backDist += 8.0f; if (m_backDist > 200.0f) @@ -1041,13 +1039,13 @@ void Gfx::CCamera::EventMouseWheel(int dir) if ( m_type == Gfx::CAM_TYPE_FIX || m_type == Gfx::CAM_TYPE_PLANE ) { - if (dir > 0) + if (dir == WHEEL_UP) { m_fixDist -= 8.0f; if (m_fixDist < 10.0f) m_fixDist = 10.0f; } - if (dir < 0) + else if (dir == WHEEL_DOWN) { m_fixDist += 8.0f; if (m_fixDist > 200.0f) @@ -1057,13 +1055,13 @@ void Gfx::CCamera::EventMouseWheel(int dir) if ( m_type == Gfx::CAM_TYPE_VISIT ) { - if (dir > 0) + if (dir == WHEEL_UP) { m_visitDist -= 8.0f; if (m_visitDist < 20.0f) m_visitDist = 20.0f; } - if (dir < 0) + else if (dir == WHEEL_DOWN) { m_visitDist += 8.0f; if (m_visitDist > 200.0f) @@ -1184,19 +1182,19 @@ bool Gfx::CCamera::EventFrameFree(const Event &event) m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, m_mouseDirV * event.rTime * factor * m_speed); // Up/Down - m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, event.axeY * event.rTime * factor * m_speed); + m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, event.motionInput.y * event.rTime * factor * m_speed); // Left/Right if ( event.keyState & KS_CONTROL ) { - if ( event.axeX < 0.0f ) - m_eyePt = Math::LookatPoint(m_eyePt, m_directionH + Math::PI / 2.0f, m_directionV, -event.axeX * event.rTime * factor * m_speed); - if ( event.axeX > 0.0f ) - m_eyePt = Math::LookatPoint(m_eyePt, m_directionH - Math::PI / 2.0f, m_directionV, event.axeX * event.rTime * factor * m_speed); + if ( event.motionInput.x < 0.0f ) + m_eyePt = Math::LookatPoint(m_eyePt, m_directionH + Math::PI / 2.0f, m_directionV, -event.motionInput.x * event.rTime * factor * m_speed); + if ( event.motionInput.x > 0.0f ) + m_eyePt = Math::LookatPoint(m_eyePt, m_directionH - Math::PI / 2.0f, m_directionV, event.motionInput.x * event.rTime * factor * m_speed); } else { - m_directionH -= event.axeX * event.rTime * 0.7f * m_speed; + m_directionH -= event.motionInput.x * event.rTime * 0.7f * m_speed; } // PageUp/PageDown diff --git a/src/graphics/engine/camera.h b/src/graphics/engine/camera.h index f2022f7..7a7350f 100644 --- a/src/graphics/engine/camera.h +++ b/src/graphics/engine/camera.h @@ -208,7 +208,7 @@ protected: //! Changes the camera according to the mouse moved bool EventMouseMove(const Event &event); //! Mouse wheel operation - void EventMouseWheel(int dir); + void EventMouseWheel(WheelDirection dir); //! Changes the camera according to the time elapsed bool EventFrame(const Event &event); //! Moves the point of view -- cgit v1.2.3-1-g7c22