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
qquick3dxrspatialanchor_p.h
Go to the documentation of this file.
1// Copyright (C) 2024 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QQUICK3DXRSPATIALANCHOR_P_H
5#define QQUICK3DXRSPATIALANCHOR_P_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 <QtQuick3DXr/qtquick3dxrglobal.h>
19#include <QtQuick3DXr/private/qtquick3dxrglobal_p.h>
20
21#include <QtCore/qobject.h>
22#include <QtCore/quuid.h>
23#include <QtCore/qstring.h>
24
25#include <QtGui/qvectornd.h>
26#include <QtGui/qquaternion.h>
27
28#include <QtQmlIntegration/qqmlintegration.h>
29
31
33{
34 Q_OBJECT
35 Q_PROPERTY(bool has2DBounds READ has2DBounds NOTIFY has2DBoundsChanged FINAL)
46
48 QML_UNCREATABLE("Spatial anchor objects cannot be created in QML");
49 QML_ADDED_IN_VERSION(6, 8)
50public:
62 Q_ENUM(Classification)
63
66
67 QVector3D offset3D() const;
68 void setOffset3D(const QVector3D &newOffset);
69
70 QVector3D extent3D() const;
71 void setExtent3D(const QVector3D &newExtent);
72
73 QVector3D position() const;
74 void setPosition(const QVector3D &newPosition);
75
76 QQuaternion rotation() const;
77 void setRotation(const QQuaternion &newRotation);
78
80 void setClassification(Classification newClassification);
81
83 void setClassificationString(const QString &newClassificationString);
84
85 bool has2DBounds() const;
86 void setBounds2D(const QVector2D &offset, const QVector2D &extent);
87 bool has3DBounds() const;
88 void setBounds3D(const QVector3D &offset, const QVector3D &extent);
89
90 QVector2D offset2D() const;
91 QVector2D extent2D() const;
92
93 QString identifier() const;
94
95 QSet<QUuid> roomLayoutUuids() const;
96 void setRoomLayoutUuids(const QSet<QUuid> &newRoomLayoutUuids);
97
99 void setSpaceContainerUuids(const QSet<QUuid> &newSpaceContainerUuids);
100
101 QtQuick3DXr::XrSpaceId space() const { return m_space; }
102
103signals:
114
115private:
116 // Note: internally, and from C++ we still store this as a QUuid,
117 // so this just keeps the compatibility and avoid conversions in
118 // in the managers.
120 QUuid uuid() const { return m_uuid; }
121
122 QtQuick3DXr::XrSpaceId m_space { };
123 QUuid m_uuid;
124 QVector3D m_offset3D;
125 QVector3D m_extent3D;
126 QVector3D m_position;
127 QQuaternion m_rotation;
128 Classification m_classification { Classification::Unknown };
129 QString m_classificationString;
130 QSet<QUuid> m_roomLayoutUuids;
131 QSet<QUuid> m_spaceContainerUuids;
132 bool m_has2DBounds = false;
133 bool m_has3DBounds = false;
134 QVector2D m_offset2D;
135 QVector2D m_extent2D;
136};
137
138QT_END_NAMESPACE
139
140#endif // QQUICK3DXRSPATIALANCHOR_P_H
QList< const char * > requiredExtensions() const
void anchorRemoved(QUuid uuid)
bool getBoundingBox2D(XrSpace space, QVector2D &offset, QVector2D &extent)
const QList< QQuick3DXrSpatialAnchor * > & anchors() const
bool isComponentEnabled(XrSpace space, XrSpaceComponentTypeFB type)
bool getBoundingBox3D(XrSpace space, QVector3D &offset, QVector3D &extent)
void updateAnchors(XrTime predictedDisplayTime, XrSpace appSpace)
void handleEvent(const XrEventDataBaseHeader *event)
bool isComponentSupported(XrSpace space, XrSpaceComponentTypeFB type)
bool setupSpatialAnchor(XrSpace space, QQuick3DXrSpatialAnchor &anchor)
void initialize(XrInstance instance, XrSession session)
void anchorUpdated(QQuick3DXrSpatialAnchor *anchor)
QSet< QUuid > collectRoomLayoutUuids(XrSpace space)
QString getSemanticLabels(const XrSpace space)
QSet< QUuid > collectSpaceContainerUuids(XrSpace space)
QSet< QUuid > spaceContainerUuids() const
void setExtent3D(const QVector3D &newExtent)
QVector3D offset3D() const
\qmlproperty vector3d XrSpatialAnchor::offset3D
QtQuick3DXr::XrSpaceId space() const
QVector3D position() const
\qmlproperty vector3d XrSpatialAnchor::position
void setClassificationString(const QString &newClassificationString)
void setBounds3D(const QVector3D &offset, const QVector3D &extent)
void setBounds2D(const QVector2D &offset, const QVector2D &extent)
QString identifier() const
\qmlproperty string XrSpatialAnchor::identifier
void setRotation(const QQuaternion &newRotation)
bool has2DBounds() const
\qmlproperty bool XrSpatialAnchor::has2DBounds
void setSpaceContainerUuids(const QSet< QUuid > &newSpaceContainerUuids)
void setRoomLayoutUuids(const QSet< QUuid > &newRoomLayoutUuids)
QVector3D extent3D() const
\qmlproperty vector3d XrSpatialAnchor::extent3D
Classification classification() const
\qmlproperty enumeration XrSpatialAnchor::classification
QQuaternion rotation() const
\qmlproperty quaternion XrSpatialAnchor::rotation
QVector2D extent2D() const
\qmlproperty vector2d XrSpatialAnchor::extent2D
QSet< QUuid > roomLayoutUuids() const
void setClassification(Classification newClassification)
void setOffset3D(const QVector3D &newOffset)
void setPosition(const QVector3D &newPosition)
bool has3DBounds() const
\qmlproperty bool XrSpatialAnchor::has3DBounds
QString classificationString() const
\qmlproperty string XrSpatialAnchor::classificationString
QVector2D offset2D() const
\qmlproperty vector2d XrSpatialAnchor::offset2D
#define __has_include(x)
static const uint32_t MAX_PERSISTENT_SPACES
static const char qssgXrRecognizedLabels[]
static QQuick3DXrSpatialAnchor::Classification getLabelForString(const QString &label)