Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qquick3dpickresult.cpp
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
5#include "qquick3dmodel_p.h"
6
8
18 : m_objectHit(nullptr)
19 , m_distance(0.0f)
20 , m_instanceIndex(-1)
21 , m_itemHit(nullptr)
22 , m_hitType(HitType::Null)
23{
24
25}
26
28 float distanceFromCamera,
29 const QVector2D &uvPosition,
30 const QVector3D &scenePosition,
31 const QVector3D &position,
32 const QVector3D &normal,
33 int instanceIndex)
34 : m_objectHit(hitObject)
35 , m_distance(distanceFromCamera)
36 , m_uvPosition(uvPosition)
37 , m_scenePosition(scenePosition)
38 , m_position(position)
39 , m_normal(normal)
40 , m_instanceIndex(instanceIndex)
41 , m_itemHit(nullptr)
42 , m_hitType(HitType::Model)
43{
44}
45
46// NB: we are intentionally storing the sceneNormal in the "m_normal" member variable
47// as 2D Items always have the same face normal, but we can't calculate the scene normal
48// on demand either. This logic should be handled in the respective getters.
50 float distanceFromCamera,
51 const QVector2D &uvPosition,
52 const QVector3D &scenePosition,
53 const QVector3D &position,
54 const QVector3D &sceneNormal)
55 : m_objectHit(nullptr)
56 , m_distance(distanceFromCamera)
57 , m_uvPosition(uvPosition)
58 , m_scenePosition(scenePosition)
59 , m_position(position)
60 , m_normal(sceneNormal)
61 , m_instanceIndex(-1)
62 , m_itemHit(itemHit)
63 , m_hitType(HitType::Item)
64{
65
66}
67
78{
79 return m_objectHit;
80}
81
91{
92 return m_distance;
93}
94
107{
108 return m_uvPosition;
109}
110
118{
119 return m_scenePosition;
120}
121
130{
131 return m_position;
132}
133
144{
145 if (m_itemHit)
146 return QVector3D(0, 0, 1);
147
148 return m_normal;
149}
150
151
160{
161 if (m_objectHit)
162 return m_objectHit->mapDirectionToScene(m_normal);
163
164 return m_normal;
165}
166
167
177{
178 return m_instanceIndex;
179}
180
193{
194 return m_itemHit;
195}
196
210{
211 return m_hitType;
212}
213
Definition lalr.h:84
Q_INVOKABLE QVector3D mapDirectionToScene(const QVector3D &localDirection) const
\qmlmethod vector3d QtQuick3D::Node::mapDirectionToScene(vector3d localDirection)
HitType hitType
\qmlproperty enumeration pickResult::hitType \readonly
QQuick3DModel * objectHit
QQuickItem * itemHit
\qmlproperty Item pickResult::itemHit \readonly
QQuick3DPickResult()
\qmlvaluetype pickResult \inqmlmodule QtQuick3D
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:63
The QVector2D class represents a vector or vertex in 2D space.
Definition qvectornd.h:31
The QVector3D class represents a vector or vertex in 3D space.
Definition qvectornd.h:171
Combined button and popup list for selecting options.
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
QObject::connect nullptr