VHFMill/orbitcameracontroller.h
2023-01-29 18:45:42 +01:00

34 lines
861 B
C++

// Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#pragma once
#include <QAbstractCameraController>
#include <QVector2D>
class OrbitCameraController : public Qt3DExtras::QAbstractCameraController
{
Q_OBJECT
float m_zoomInLimit = 10.0;
float m_zoomFactor = 1.0;
QVector2D m_orthoSize;
void updateProjection();
public:
explicit OrbitCameraController(QVector2D orthoSize, Qt3DCore::QNode *parent = nullptr);
~OrbitCameraController();
float zoomInLimit() const;
void setZoomInLimit(float zoomInLimit);
void setZoomFactor(float factor);
void setOrthoSize(QVector2D orthoSize);
signals:
void zoomInLimitChanged();
private:
virtual void moveCamera(const Qt3DExtras::QAbstractCameraController::InputState &state, float dt) override;
};