Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qquick3dpickresult_p.h
Go to the documentation of this file.
1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5
6#ifndef QQUICK3DPICKRESULT_P_H
7#define QQUICK3DPICKRESULT_P_H
8
9//
10// W A R N I N G
11// -------------
12//
13// This file is not part of the Qt API. It exists purely as an
14// implementation detail. This header file may change from version to
15// version without notice, or even be removed.
16//
17// We mean it.
18//
19
20#include <QtQuick3D/qquick3dobject.h>
21#include <QObject>
22#include <QtGui/QVector2D>
23#include <QtGui/QVector3D>
25
26QT_BEGIN_NAMESPACE
27class QQuick3DModel;
28
30{
31Q_NAMESPACE_EXPORT(Q_QUICK3D_EXPORT)
32
35
41Q_ENUM_NS(HitType)
42
43};
44
45
46class Q_QUICK3D_EXPORT QQuick3DPickResult
47{
48 Q_GADGET
49 Q_PROPERTY(QQuick3DModel* objectHit READ objectHit CONSTANT)
50 Q_PROPERTY(float distance READ distance CONSTANT)
51 Q_PROPERTY(QVector2D uvPosition READ uvPosition CONSTANT)
52 Q_PROPERTY(QVector3D scenePosition READ scenePosition CONSTANT)
53 Q_PROPERTY(QVector3D position READ position CONSTANT)
54 Q_PROPERTY(QVector3D normal READ normal CONSTANT)
55 Q_PROPERTY(QVector3D sceneNormal READ sceneNormal CONSTANT)
56 Q_PROPERTY(int instanceIndex READ instanceIndex CONSTANT)
57 Q_PROPERTY(QQuickItem *itemHit READ itemHit CONSTANT REVISION(6, 8))
58 Q_PROPERTY(QQuick3DPickResultEnums::HitType hitType READ hitType CONSTANT REVISION(6, 8))
59 QML_VALUE_TYPE(pickResult)
60public:
61
62 QQuick3DPickResult();
63 explicit QQuick3DPickResult(QQuick3DModel *hitObject,
64 float distanceFromCamera,
65 const QVector2D &uvPosition,
66 const QVector3D &scenePosition,
67 const QVector3D &position,
68 const QVector3D &normal,
69 const QVector3D &sceneNormal,
70 int instanceIndex,
71 QQuickItem *itemHit = 0);
72
73 explicit QQuick3DPickResult(QQuickItem *itemHit,
74 float distanceFromCamera,
75 const QVector2D &uvPosition,
76 const QVector3D &scenePosition,
77 const QVector3D &position,
78 const QVector3D &sceneNormal);
79 QQuick3DModel *objectHit() const;
80 float distance() const;
81 QVector2D uvPosition() const;
82 QVector3D scenePosition() const;
83 QVector3D position() const;
84 QVector3D normal() const;
85 QVector3D sceneNormal() const;
86 int instanceIndex() const;
87 Q_REVISION(6, 8) QQuickItem *itemHit() const;
88 Q_REVISION(6, 8) QQuick3DPickResultEnums::HitType hitType() const;
89
90private:
91 QQuick3DModel *m_objectHit;
92 float m_distance;
93 QVector2D m_uvPosition;
94 QVector3D m_scenePosition;
95 QVector3D m_position;
96 QVector3D m_normal;
97 QVector3D m_sceneNormal;
98 int m_instanceIndex;
99 QQuickItem *m_itemHit;
100 QQuick3DPickResultEnums::HitType m_hitType;
101};
102
103QT_END_NAMESPACE
104
105Q_DECLARE_METATYPE(QQuick3DPickResult)
106
107#endif // QQUICK3DPICKRESULT_P_H