bool CameraController::eventFilter(QObject* object, QEvent* event) { switch (event->type()) { case QEvent::MouseButtonPress: if (handle_mouse_button_press_event(static_cast<QMouseEvent*>(event))) return true; break; case QEvent::MouseButtonRelease: if (handle_mouse_button_release_event(static_cast<QMouseEvent*>(event))) return true; break; case QEvent::MouseMove: if (handle_mouse_move_event(static_cast<QMouseEvent*>(event))) return true; break; case QEvent::KeyPress: if (handle_key_press_event(static_cast<QKeyEvent*>(event))) return true; break; } return QObject::eventFilter(object, event); }
void camera_controller::handle_event(const os::event &event) { if (event.is_window_resize_event()) { set_viewport_size(event.get_window_size()); } else if (event.is_mouse_button_event()) { handle_mouse_button_event(event.get_mouse_button_event()); } else if (event.is_mouse_move_event()) { handle_mouse_move_event(event.get_mouse_move_event()); } }