4#ifndef QQUICK3DXRSPATIALANCHOR_P_H
5#define QQUICK3DXRSPATIALANCHOR_P_H
18#include <QtQuick3DXr/qtquick3dxrglobal.h>
19#include <QtQuick3DXr/private/qtquick3dxrglobal_p.h>
21#include <QtCore/qobject.h>
22#include <QtCore/quuid.h>
23#include <QtCore/qstring.h>
25#include <QtGui/qvectornd.h>
26#include <QtGui/qquaternion.h>
28#include <QtQmlIntegration/qqmlintegration.h>
35 Q_PROPERTY(
bool has2DBounds READ has2DBounds NOTIFY has2DBoundsChanged FINAL)
49 QML_ADDED_IN_VERSION(6, 8)
62 Q_ENUM(Classification)
86 void setBounds2D(
const QVector2D &offset,
const QVector2D &extent);
88 void setBounds3D(
const QVector3D &offset,
const QVector3D &extent);
120 QUuid uuid()
const {
return m_uuid; }
122 QtQuick3DXr::XrSpaceId m_space { };
124 QVector3D m_offset3D;
125 QVector3D m_extent3D;
126 QVector3D m_position;
127 QQuaternion m_rotation;
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;
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)
qsizetype anchorCount() const
bool setupSpatialAnchor(XrSpace space, QQuick3DXrSpatialAnchor &anchor)
void initialize(XrInstance instance, XrSession session)
void sceneCaptureCompleted()
void anchorUpdated(QQuick3DXrSpatialAnchor *anchor)
QSet< QUuid > collectRoomLayoutUuids(XrSpace space)
QString getSemanticLabels(const XrSpace space)
void requestSceneCapture()
QSet< QUuid > collectSpaceContainerUuids(XrSpace space)
QSet< QUuid > spaceContainerUuids() const
void setExtent3D(const QVector3D &newExtent)
~QQuick3DXrSpatialAnchor() override
QVector3D offset3D() const
\qmlproperty vector3d XrSpatialAnchor::offset3D
QtQuick3DXr::XrSpaceId space() const
QVector3D position() const
\qmlproperty vector3d XrSpatialAnchor::position
void setClassificationString(const QString &newClassificationString)
void classificationStringChanged()
void setBounds3D(const QVector3D &offset, const QVector3D &extent)
void has2DBoundsChanged()
void setBounds2D(const QVector2D &offset, const QVector2D &extent)
QString identifier() const
\qmlproperty string XrSpatialAnchor::identifier
void has3DBoundsChanged()
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 classificationChanged()
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
static const uint32_t MAX_PERSISTENT_SPACES
static const char qssgXrRecognizedLabels[]
static QQuick3DXrSpatialAnchor::Classification getLabelForString(const QString &label)