57 lines
3.6 KiB
C
57 lines
3.6 KiB
C
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "Kismet/BlueprintFunctionLibrary.h"
|
||
|
#include "Kismet/BlueprintAsyncActionBase.h"
|
||
|
#include "OculusXRAnchorTypes.h"
|
||
|
#include "OculusXRAnchorComponents.h"
|
||
|
#include "OculusXRAnchorBPFunctionLibrary.generated.h"
|
||
|
|
||
|
//Helper
|
||
|
UCLASS()
|
||
|
class OCULUSXRANCHORS_API UOculusXRAnchorBPFunctionLibrary : public UBlueprintFunctionLibrary
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
public:
|
||
|
UFUNCTION(BlueprintCallable, meta = (DisplayName = "Spawn Oculus Anchor Actor", WorldContext = "WorldContextObject", UnsafeDuringActorConstruction = "true"), Category = "OculusXR|SpatialAnchor")
|
||
|
static AActor* SpawnActorWithAnchorHandle(UObject* WorldContextObject, FOculusXRUInt64 Handle, FOculusXRUUID UUID, EOculusXRSpaceStorageLocation AnchorLocation, UClass* ActorClass, AActor* Owner, APawn* Instigator, ESpawnActorCollisionHandlingMethod CollisionHandlingMethod);
|
||
|
|
||
|
UFUNCTION(BlueprintCallable, meta = (DisplayName = "Spawn Oculus Anchor Actor From Query", WorldContext = "WorldContextObject", UnsafeDuringActorConstruction = "true"), Category = "OculusXR|SpatialAnchor")
|
||
|
static AActor* SpawnActorWithAnchorQueryResults(UObject* WorldContextObject, const FOculusXRSpaceQueryResult& QueryResult, UClass* ActorClass, AActor* Owner, APawn* Instigator, ESpawnActorCollisionHandlingMethod CollisionHandlingMethod);
|
||
|
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusXR|SpatialAnchor")
|
||
|
static bool GetAnchorComponentStatus(AActor* TargetActor, EOculusXRSpaceComponentType ComponentType, bool& bIsEnabled);
|
||
|
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusXR|SpatialAnchor")
|
||
|
static bool GetAnchorTransformByHandle(const FOculusXRUInt64& Handle, FTransform& OutTransform);
|
||
|
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusXR|SpatialAnchor")
|
||
|
static bool TryGetAnchorTransformByHandle(const FOculusXRUInt64& Handle, FTransform& OutTransform, FOculusXRAnchorLocationFlags& OutLocationFlags);
|
||
|
|
||
|
UFUNCTION(BlueprintPure, meta = (DisplayName = "FOculusXRUInt64 To String", CompactNodeTitle = "->", BlueprintAutocast), Category = "OculusXR|SpatialAnchor")
|
||
|
static FString AnchorHandleToString(const FOculusXRUInt64 Value);
|
||
|
|
||
|
UFUNCTION(BlueprintPure, meta = (DisplayName = "FOculusXRUUID To String", CompactNodeTitle = "->", BlueprintAutocast), Category = "OculusXR|SpatialAnchor")
|
||
|
static FString AnchorUUIDToString(const FOculusXRUUID& Value);
|
||
|
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusXR|SpatialAnchor")
|
||
|
static FOculusXRUUID StringToAnchorUUID(const FString& Value);
|
||
|
|
||
|
UFUNCTION(BlueprintPure, meta = (DisplayName = "FOculusXRUInt64 equal", CompactNodeTitle = "==", Keywords = "equal", BlueprintAutocast), Category = "OculusXR|SpatialAnchor")
|
||
|
static bool IsEqual_FOculusXRUInt64(const FOculusXRUInt64 Left, const FOculusXRUInt64 Right) { return Left == Right; };
|
||
|
|
||
|
UFUNCTION(BlueprintPure, meta = (DisplayName = "FOculusXRUUID equal", CompactNodeTitle = "==", Keywords = "equal", BlueprintAutocast), Category = "OculusXR|SpatialAnchor")
|
||
|
static bool IsEqual_FOculusXRUUID(const FOculusXRUUID& Left, const FOculusXRUUID& Right) { return Left.IsEqual(Right); };
|
||
|
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusXR|SpatialAnchor")
|
||
|
static bool IsAnchorResultSuccess(EOculusXRAnchorResult::Type result);
|
||
|
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusXR|SpatialAnchor")
|
||
|
static const UOculusXRBaseAnchorComponent* GetAnchorComponent(const FOculusXRSpaceQueryResult& QueryResult, EOculusXRSpaceComponentType ComponentType, UObject* Outer);
|
||
|
|
||
|
UFUNCTION(BlueprintCallable, Category = "OculusXR|SpatialAnchor")
|
||
|
static bool GetRoomLayout(FOculusXRUInt64 Space, FOculusXRRoomLayout& RoomLayoutOut, int32 MaxWallsCapacity = 64);
|
||
|
|
||
|
};
|