Hue shift + events to camera
This commit is contained in:
@@ -90,25 +90,51 @@ void MagnumItem::setCount(qint8 count) {
|
||||
void MagnumItem::keyPressEvent(QKeyEvent *evt) {
|
||||
switch (evt->key()) {
|
||||
case Qt::Key_L:
|
||||
// if (m_camera->lagging() > 0.0f) {
|
||||
// m_camera->setLagging(0.0f);
|
||||
// } else {
|
||||
// m_camera->setLagging(0.85f);
|
||||
// }
|
||||
auto camera = m_renderer->camera();
|
||||
if (camera) {
|
||||
if (camera->lagging() > 0.0f) {
|
||||
camera->setLagging(0.0f);
|
||||
} else {
|
||||
camera->setLagging(0.85f);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
evt->accept();
|
||||
}
|
||||
|
||||
void MagnumItem::mousePressEvent(QMouseEvent *evt) {
|
||||
if (auto camera = m_renderer->camera()) {
|
||||
camera->initTransformation({evt->pos().x(), evt->pos().y()});
|
||||
}
|
||||
evt->accept();
|
||||
}
|
||||
|
||||
void MagnumItem::mouseReleaseEvent(QMouseEvent *evt) {
|
||||
evt->accept();
|
||||
}
|
||||
|
||||
void MagnumItem::mouseMoveEvent(QMouseEvent *evt) {}
|
||||
void MagnumItem::mouseMoveEvent(QMouseEvent *evt) {
|
||||
if (!evt->buttons())
|
||||
return;
|
||||
if (auto camera = m_renderer->camera()) {
|
||||
if (evt->modifiers() & Qt::ShiftModifier) {
|
||||
camera->translate({evt->pos().x(), evt->pos().y()});
|
||||
} else {
|
||||
camera->rotate({evt->pos().x(), evt->pos().y()});
|
||||
}
|
||||
}
|
||||
evt->accept();
|
||||
}
|
||||
|
||||
void MagnumItem::wheelEvent(QWheelEvent *evt) {}
|
||||
void MagnumItem::wheelEvent(QWheelEvent *evt) {
|
||||
if (auto camera = m_renderer->camera()) {
|
||||
const Float delta = evt->delta();
|
||||
if (Math::abs(delta) < 1.0e-2f)
|
||||
return;
|
||||
camera->zoom(delta);
|
||||
}
|
||||
}
|
||||
|
||||
class CleanupJob : public QRunnable {
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user