#include "viewer/OsgWidget.h" #include #include #include #include "viewer/OSGRendererImpl.h" OsgWidget::OsgWidget(QWidget* parent) : QOpenGLWidget(parent) , renderer_(nullptr) { } void OsgWidget::initializeGL() { renderer_ = new OSGRendererImpl(this); renderer_->setup(this); QScreen *screen = windowHandle() && windowHandle()->screen() ? windowHandle()->screen() : qApp->screens().front(); renderer_->setupOSG(width(), height(), screen->devicePixelRatio()); emit initialized(); } void OsgWidget::resizeGL(int w, int h) { QScreen *screen = windowHandle() && windowHandle()->screen() ? windowHandle()->screen() : qApp->screens().front(); renderer_->resize(w, h, screen->devicePixelRatio()); } void OsgWidget::paintGL() { renderer_->render(); } void OsgWidget::keyPressEvent(QKeyEvent *event) { renderer_->keyPressEvent(event); } void OsgWidget::keyReleaseEvent(QKeyEvent *event) { renderer_->keyReleaseEvent(event); } void OsgWidget::mousePressEvent(QMouseEvent *event) { renderer_->mousePressEvent(event); } void OsgWidget::mouseReleaseEvent(QMouseEvent *event) { renderer_->mouseReleaseEvent(event); } void OsgWidget::mouseDoubleClickEvent(QMouseEvent *event) { renderer_->mouseDoubleClickEvent(event); } void OsgWidget::mouseMoveEvent(QMouseEvent *event) { renderer_->mouseMoveEvent(event); } void OsgWidget::wheelEvent(QWheelEvent *event) { renderer_->wheelEvent(event); }