// 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); }
QDebug operator<<(QDebug dbg, const QGLCamera &cam) { dbg << "QGLCamera"; if (!cam.objectName().isEmpty()) dbg << cam.objectName(); dbg << "\n"; dbg << " projection:" << ( cam.projectionType() == QGLCamera::Perspective ? "Perspective" : "Orthographic" ); dbg << "-- viewsize:" << cam.viewSize().width() << "x" << cam.viewSize().height() << "\n"; dbg << " near-plane:" << cam.nearPlane() << "-- far-plane:" << cam.farPlane(); dbg << "-- field-of-view:" << cam.fieldOfView() << "\n"; dbg << " rotation:" << cam.screenRotation() << " -- motion adjust:" << cam.motionAdjustment() << " -- aspect adjust:" << cam.adjustForAspectRatio() << "\n"; dbg << " eye:" << cam.eye() << "-- center:" << cam.center(); dbg << "-- up:" << cam.upVector() << "\n"; return dbg; }