// 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 #include 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; };