// Zoom in and out according to the change in wheel delta. void QGLGraphicsNavigationItemPrivate::wheel(qreal delta) { QGLCamera *camera = viewportItem->camera(); qreal scale = qAbs(viewDelta(delta, delta).x()); if (delta < 0) scale = -scale; if (scale >= 0.0f) scale += 1.0f; else scale = 1.0f / (1.0f - scale); qreal fov = camera->fieldOfView(); if (fov != 0.0f) camera->setFieldOfView(camera->fieldOfView() / scale); else camera->setViewSize(camera->viewSize() / scale); }
void ViewportWidget::initializeGL(QGLPainter *painter) { QGLCamera *camera = new QGLCamera(); camera->setNearPlane(5.0f); camera->setFarPlane(1000.0f); camera->setFieldOfView(34.0f); setCamera(camera); _lp.setPosition(QVector3D(-1.0, -2.0, 1.0)); _lp.setSpotAngle(180); _lp.setSpotExponent(24); _lp.setSpotDirection(QVector3D(1.0, 4.0, 4.0)); _lm.setAmbientSceneColor(QColor(200, 200, 200)); painter->setLightModel(&_lm); painter->setMainLight(&_lp); painter->setClearColor(Qt::black); }