72 lines
1.5 KiB
C++
72 lines
1.5 KiB
C++
|
|
#include "viewer/OsgWidget.h"
|
||
|
|
|
||
|
|
#include <QApplication>
|
||
|
|
#include <QWindow>
|
||
|
|
#include <QScreen>
|
||
|
|
|
||
|
|
#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);
|
||
|
|
}
|
||
|
|
|