// 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);
}