6#ifndef QQUICK3DXRSPATIALANCHOR_P_H
7#define QQUICK3DXRSPATIALANCHOR_P_H
20#include <QtQuick3DXr/qtquick3dxrglobal.h>
21#include <QtQuick3DXr/private/qtquick3dxrglobal_p.h>
23#include <QtCore/qobject.h>
24#include <QtCore/quuid.h>
25#include <QtCore/qstring.h>
27#include <QtGui/qvectornd.h>
28#include <QtGui/qquaternion.h>
30#include <QtQmlIntegration/qqmlintegration.h>
37 Q_PROPERTY(
bool has2DBounds READ has2DBounds NOTIFY has2DBoundsChanged FINAL)
51 QML_ADDED_IN_VERSION(6, 8)
64 Q_ENUM(Classification)
88 void setBounds2D(
const QVector2D &offset,
const QVector2D &extent);
90 void setBounds3D(
const QVector3D &offset,
const QVector3D &extent);
122 QUuid uuid()
const {
return m_uuid; }
124 QtQuick3DXr::XrSpaceId m_space { };
126 QVector3D m_offset3D;
127 QVector3D m_extent3D;
128 QVector3D m_position;
129 QQuaternion m_rotation;
131 QString m_classificationString;
132 QSet<QUuid> m_roomLayoutUuids;
133 QSet<QUuid> m_spaceContainerUuids;
134 bool m_has2DBounds =
false;
135 bool m_has3DBounds =
false;
136 QVector2D m_offset2D;
137 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
bool checkXrResult(XrResult result, XrInstance instance)
bool resolveXrFunction(XrInstance instance, const char *name, PFN_xrVoidFunction *function)
Combined button and popup list for selecting options.
static const uint32_t MAX_PERSISTENT_SPACES
static const char qssgXrRecognizedLabels[]
static QQuick3DXrSpatialAnchor::Classification getLabelForString(const QString &label)