// @lint-ignore-every LICENSELINT // Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "IOculusXRSceneModule.h" #include "OculusXRAnchorsModule.h" #include "openxr/OculusXRSceneXR.h" #define LOCTEXT_NAMESPACE "OculusXRScene" //------------------------------------------------------------------------------------------------- // FOculusXRSceneModule //------------------------------------------------------------------------------------------------- DECLARE_LOG_CATEGORY_EXTERN(LogOculusXRScene, Log, All); typedef TSharedPtr FSceneXRPtr; #if OCULUS_SCENE_SUPPORTED_PLATFORMS class FOculusXRSceneModule : public IOculusXRSceneModule, public IOculusXRCreateAnchorComponent { public: static inline FOculusXRSceneModule& Get() { return FModuleManager::LoadModuleChecked("OculusXRScene"); } virtual ~FOculusXRSceneModule() = default; // IModuleInterface interface virtual void StartupModule() override; virtual void ShutdownModule() override; void OnPostEngineInit(); // IOculusXRCreateAnchorComponent virtual UOculusXRBaseAnchorComponent* TryCreateAnchorComponent(uint64 AnchorHandle, EOculusXRSpaceComponentType Type, UObject* Outer) override; FSceneXRPtr GetXrScene() { return SceneXR; } private: FSceneXRPtr SceneXR; }; #else // OCULUS_SCENE_SUPPORTED_PLATFORMS class FOculusXRSceneModule : public FDefaultModuleImpl { }; #endif // OCULUS_SCENE_SUPPORTED_PLATFORMS #undef LOCTEXT_NAMESPACE