1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QSSGCUSTOMCAMERA_H
5#define QSSGCUSTOMCAMERA_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtQuick3D/private/qquick3dcamera_p.h>
19
20QT_BEGIN_NAMESPACE
21
22struct QSSGRenderCamera;
23class Q_QUICK3D_EXPORT QQuick3DCustomCamera : public QQuick3DCamera
24{
25 Q_OBJECT
26 Q_PROPERTY(QMatrix4x4 projection READ projection WRITE setProjection NOTIFY projectionChanged)
27
28 QML_NAMED_ELEMENT(CustomCamera)
29
30public:
31 explicit QQuick3DCustomCamera(QQuick3DNode *parent = nullptr);
32
33 QMatrix4x4 projection() const;
34
35public Q_SLOTS:
36 void setProjection(const QMatrix4x4 &projection);
37
38Q_SIGNALS:
39 void projectionChanged();
40
41protected:
42 QSSGRenderGraphObject *updateSpatialNode(QSSGRenderGraphObject *node) override;
43
44private:
45 QMatrix4x4 m_projection;
46};
47
48QT_END_NAMESPACE
49
50#endif // QSSGCUSTOMCAMERA_H
51

source code of qtquick3d/src/quick3d/qquick3dcustomcamera_p.h