60 lines
2.4 KiB
C
60 lines
2.4 KiB
C
|
// @lint-ignore-every LICENSELINT
|
||
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
||
|
|
||
|
#pragma once
|
||
|
#include "UObject/ObjectMacros.h"
|
||
|
#include "Kismet/BlueprintFunctionLibrary.h"
|
||
|
#include "OculusXRMRFunctionLibrary.generated.h"
|
||
|
|
||
|
class USceneComponent;
|
||
|
class UOculusXRMR_Settings;
|
||
|
struct FOculusXRTrackedCamera;
|
||
|
|
||
|
namespace OculusXRHMD
|
||
|
{
|
||
|
class FOculusXRHMD;
|
||
|
}
|
||
|
|
||
|
UCLASS()
|
||
|
class OCULUSXRMR_API UOculusXRMRFunctionLibrary : public UBlueprintFunctionLibrary
|
||
|
{
|
||
|
GENERATED_UCLASS_BODY()
|
||
|
|
||
|
public:
|
||
|
// Get the OculusXRMR settings object
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusLibrary|MR", meta = (DisplayName = "Get Oculus MR Settings"))
|
||
|
static UOculusXRMR_Settings* GetOculusXRMRSettings();
|
||
|
|
||
|
// Get the component that the OculusXRMR camera is tracking. When this is null, the camera will track the player pawn.
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusLibrary|MR")
|
||
|
static USceneComponent* GetTrackingReferenceComponent();
|
||
|
|
||
|
// Set the component for the OculusXRMR camera to track. If this is set to null, the camera will track the player pawn.
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusLibrary|MR")
|
||
|
static bool SetTrackingReferenceComponent(USceneComponent* Component);
|
||
|
|
||
|
// Get the scaling factor for the MRC configuration. Returns 0 if not available.
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusLibrary|MR", meta = (DisplayName = "Get MRC Scaling Factor"))
|
||
|
static float GetMrcScalingFactor();
|
||
|
|
||
|
// Set the scaling factor for the MRC configuration. This should be a positive value set to the same scaling as the VR player pawn so that the game capture and camera video are aligned.
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusLibrary|MR", meta = (DisplayName = "Set MRC Scaling Factor"))
|
||
|
static bool SetMrcScalingFactor(float ScalingFactor = 1.0f);
|
||
|
|
||
|
// Check if MRC is enabled
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusLibrary|MR")
|
||
|
static bool IsMrcEnabled();
|
||
|
|
||
|
// Check if MRC is enabled and actively capturing
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusLibrary|MR")
|
||
|
static bool IsMrcActive();
|
||
|
|
||
|
public:
|
||
|
static class OculusXRHMD::FOculusXRHMD* GetOculusXRHMD();
|
||
|
|
||
|
/** Retrieve an array of all (calibrated) tracked cameras which were calibrated through the CameraTool */
|
||
|
static void GetAllTrackedCamera(TArray<FOculusXRTrackedCamera>& TrackedCameras, bool bCalibratedOnly = true);
|
||
|
|
||
|
static bool GetTrackingReferenceLocationAndRotationInWorldSpace(USceneComponent* TrackingReferenceComponent, FVector& TRLocation, FRotator& TRRotation);
|
||
|
};
|