55 lines
1.8 KiB
C++
55 lines
1.8 KiB
C++
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
|
|
#pragma once
|
|
#include "openxr/OculusXRBodyTrackingXR.h"
|
|
#include "openxr/OculusXREyeTrackingXR.h"
|
|
#include "openxr/OculusXRFaceTrackingXR.h"
|
|
|
|
#include "OculusXRMovement.h"
|
|
#include "OculusXRMovementLiveLink.h"
|
|
#include "IOculusXRMovementModule.h"
|
|
#include "ILiveLinkSource.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "OculusXRMovement"
|
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
// FOculusXRMovementModule
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
|
typedef TSharedPtr<XRMovement::FBodyTrackingXR, ESPMode::ThreadSafe> FBodyTrackingXRPtr;
|
|
typedef TSharedPtr<XRMovement::FEyeTrackingXR, ESPMode::ThreadSafe> FEyeTrackingXRPtr;
|
|
typedef TSharedPtr<XRMovement::FFaceTrackingXR, ESPMode::ThreadSafe> FFaceTrackingXRPtr;
|
|
|
|
class FOculusXRMovementModule : public IOculusXRMovementModule
|
|
{
|
|
public:
|
|
FOculusXRMovementModule();
|
|
|
|
static inline FOculusXRMovementModule& Get()
|
|
{
|
|
return FModuleManager::LoadModuleChecked<FOculusXRMovementModule>("OculusXRMovement");
|
|
}
|
|
|
|
virtual void StartupModule() override;
|
|
virtual void ShutdownModule() override;
|
|
|
|
/* Live link */
|
|
virtual TSharedPtr<ILiveLinkSource> GetLiveLinkSource() override;
|
|
virtual bool IsLiveLinkSourceValid() const override;
|
|
virtual void AddLiveLinkSource() override;
|
|
virtual void RemoveLiveLinkSource() override;
|
|
|
|
FBodyTrackingXRPtr GetXrBodyTracker() { return BodyTrackingXR; }
|
|
FEyeTrackingXRPtr GetXrEyeTracker() { return EyeTrackingXR; }
|
|
FFaceTrackingXRPtr GetXrFaceTracker() { return FaceTrackingXR; }
|
|
|
|
private:
|
|
FBodyTrackingXRPtr BodyTrackingXR;
|
|
FEyeTrackingXRPtr EyeTrackingXR;
|
|
FFaceTrackingXRPtr FaceTrackingXR;
|
|
|
|
TSharedPtr<MetaXRMovement::LiveLinkSource> MovementSource{ nullptr };
|
|
};
|
|
|
|
#undef LOCTEXT_NAMESPACE
|