Plasma Engine  2.0
Loading...
Searching...
No Matches
OpenXRSpatialAnchors.h
1#pragma once
2
3#include <Foundation/Configuration/Singleton.h>
4#include <Foundation/Containers/IdTable.h>
5#include <GameEngine/XR/XRSpatialAnchorsInterface.h>
6#include <OpenXRPlugin/Basics.h>
7#include <OpenXRPlugin/OpenXRIncludes.h>
8
9class plOpenXR;
10
11
12class PL_OPENXRPLUGIN_DLL plOpenXRSpatialAnchors : public plXRSpatialAnchorsInterface
13{
14 PL_DECLARE_SINGLETON_OF_INTERFACE(plOpenXRSpatialAnchors, plXRSpatialAnchorsInterface);
15
16public:
19
20 plXRSpatialAnchorID CreateAnchor(const plTransform& globalTransform) override;
22 plResult TryGetAnchorTransform(plXRSpatialAnchorID id, plTransform& out_globalTransform) override;
23
24private:
25 friend class plOpenXR;
26 struct AnchorData
27 {
28 PL_DECLARE_POD_TYPE();
29 XrSpatialAnchorMSFT m_Anchor;
30 XrSpace m_Space;
31 };
32
33 plOpenXR* m_pOpenXR = nullptr;
34
36};
Definition IdTable.h:171
Definition OpenXRSingleton.h:25
Definition OpenXRSpatialAnchors.h:13
XR spatial anchors interface.
Definition XRSpatialAnchorsInterface.h:11
virtual plXRSpatialAnchorID CreateAnchor(const plTransform &globalTransform)=0
Creates a spatial anchor at the given world space position. Returns an invalid handle if anchors can'...
virtual plResult DestroyAnchor(plXRSpatialAnchorID id)=0
Destroys a previously created anchor.
virtual plResult TryGetAnchorTransform(plXRSpatialAnchorID id, plTransform &out_globalTransform)=0
Tries to resolve the anchor position. Can fail of the anchor is invalid or tracking is currently lost...
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54