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
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{
46
47 QML_NAMED_ELEMENT(XrSpatialAnchor)
48 QML_UNCREATABLE("Spatial anchor objects cannot be created in QML");
50public:
51 enum class Classification {
52 Unknown,
53 Wall,
54 Ceiling,
55 Floor,
56 Table,
57 Seat,
58 Window,
59 Door,
60 Other,
61 };
63
65 ~QQuick3DXrSpatialAnchor() override;
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
98 QSet<QUuid> spaceContainerUuids() const;
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
139
140#endif // QQUICK3DXRSPATIALANCHOR_P_H
\inmodule QtCore
Definition qobject.h:103
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:346
The QQuaternion class represents a quaternion consisting of a vector and scalar.
QSet< QUuid > spaceContainerUuids() const
void setExtent3D(const QVector3D &newExtent)
QtQuick3DXr::XrSpaceId space() const
QQuick3DXrSpatialAnchor(QtQuick3DXr::XrSpaceId space, QUuid &uuid, QObject *parent=nullptr)
\qmltype XrSpatialAnchor \inherits Item \inqmlmodule QtQuick3D.Xr
void setClassificationString(const QString &newClassificationString)
void setBounds3D(const QVector3D &offset, const QVector3D &extent)
void setBounds2D(const QVector2D &offset, const QVector2D &extent)
void setRotation(const QQuaternion &newRotation)
void setSpaceContainerUuids(const QSet< QUuid > &newSpaceContainerUuids)
void setRoomLayoutUuids(const QSet< QUuid > &newRoomLayoutUuids)
QSet< QUuid > roomLayoutUuids() const
void setClassification(Classification newClassification)
void setOffset3D(const QVector3D &newOffset)
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition quuid.h:32
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.
n void setPosition(void) \n\
GLenum GLuint GLintptr offset
GLuint in
#define QML_UNCREATABLE(REASON)
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define signals