IARSystemSupport

Implement [IARSystemSupport](API\Runtime\AugmentedReality\IARSystemSupport) for any platform that wants to be an Unreal Augmented Reality System.

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

AugmentedReality

Header

/Engine/Source/Runtime/AugmentedReality/Public/ARSystem.h

Include

#include "ARSystem.h"

Syntax

class IARSystemSupport

Remarks

Implement IARSystemSupport for any platform that wants to be an Unreal Augmented Reality System. e.g. AppleARKit, GoogleARCore. This interface is included as part of the abstract class `FARSupportInterface_ . The functions you must override are coalesced here for clarity.

Augmented Reality Spaces

Engineers working on supporting Augmented Reality must be aware of three spaces:

TrackingSpace : This is the space defined by the underlying AR system (e.g. ARKit, ARCore, etc.) Unreal has no control over the origin of this space.

AlignedTrackingSpace : To regain control of TrackingSpace, Unreal applies the AlignmentTransform so bend TrackingSpace to its will. If you are implementing IARSystemSupport, you will need to understand this transform and apply it accordingly.

WorldSpace : This is Unreal's coordinate system. Coordinates from Tracking Space can be translated into WorldSpace by using the AlignmentTransform and the TrackingToWorldTransform.

[TrackingSpace]--(AlignmentTransform)-->[AlignedTrackingSpace]--(TrackingToWorld)-->[WorldSpace]

Destructors

Name Description

Public function Virtual

~IARSystemSupport()

Functions

Name Description

Public function Virtual

FDelegateHan...

 

AddOnTrackableAddedDelegate_Handle

(
    const FOnTrackableAddedDelegate& D...
)

Public function Virtual

FDelegateHan...

 

AddOnTrackableRemovedDelegate_Handle

(
    const FOnTrackableRemovedDelegate&...
)

Public function Virtual

FDelegateHan...

 

AddOnTrackableUpdatedDelegate_Handle

(
    const FOnTrackableUpdatedDelegate&...
)

Public function Virtual

bool

 

ArePinsReadyToLoad()

Public function Virtual

void

 

ClearOnTrackableAddedDelegate_Handle

(
    FDelegateHandle& Handle
)

Public function Virtual

void

 

ClearOnTrackableAddedDelegates

(
    void* Object
)

Public function Virtual

void

 

ClearOnTrackableRemovedDelegate_Handle

(
    FDelegateHandle& Handle
)

Public function Virtual

void

 

ClearOnTrackableRemovedDelegates

(
    void* Object
)

Public function Virtual

void

 

ClearOnTrackableUpdatedDelegate_Handle

(
    FDelegateHandle& Handle
)

Public function Virtual

void

 

ClearOnTrackableUpdatedDelegates

(
    void* Object
)

Public function Const

UARPin *

 

FindARPinByComponent

(
    const USceneComponent* Compone...
)

Given a scene component find the ARPin which it is pinned by, if any.

Public function

void *

 

GetARSessionRawPointer()

Public function

void *

 

GetGameThreadARFrameRawPointer()

Public function Const

bool

 

IsARAvailable()

Returns true/false based on whether AR features are available

Public function Virtual Const

bool

 

IsLocalPinSaveSupported()

ARPin Local Store support.

Public function Virtual

void

 

LoadARPins

(
    TMap< FName, UARPin* >& Loade...
)

Public function

bool

 

OnAddManualEnvironmentCaptureProbe

(
    FVector Location,
    FVector Extent
)

Tells the ARSystem to generate a capture probe at the specified location if supported

Public function

bool

 

OnAddRuntimeCandidateImage

(
    UARSessionConfig* SessionConfi...,
    UTexture2D* CandidateTexture,
    FString FriendlyName,
    float PhysicalWidth
)

Add candidate image at runtime

Public function Virtual

bool

 

OnAddTrackedPointWithName

(
    const FTransform& WorldTransform,
    const FString& PointName,
    bool bDeletePointsWithSameName
)

Public function Virtual

void

 

OnARSystemInitialized()

Invoked after the base AR system has been initialized.

Public function Const

TArray< UARP...

 

OnGetAllPins()

Public function Const

TArray< UART...

 

OnGetAllTrackedGeometries()

Public function Const

FARSessionSt...

 

OnGetARSessionStatus()

Public function Virtual Const

UARTexture &...

 

OnGetARTexture

(
    EARTextureType TextureType
)

Public function Virtual Const

bool

 

OnGetCameraIntrinsics

(
    FARCameraIntrinsics& OutCameraIntr...
)

Public function Const

TSharedPtr< ...

 

OnGetCandidateObject

(
    FVector Location,
    FVector Extent
)

Generates a UARCandidateObject from the point cloud data within the location and its extent using an async task

Public function Const

UARLightEsti...

 

OnGetCurrentLightEstimate()

Public function Virtual Const

int32

 

OnGetNumberOfTrackedFacesSupported()

Public function Const

TArray< FVec...

 

OnGetPointCloud()

Public function Const

TArray< FARV...

 

OnGetSupportedVideoFormats

(
    EARSessionType SessionType
)

Public function Virtual Const

TArray< FARP...

 

OnGetTracked2DPose()

Public function Const

EARTrackingQ...

 

OnGetTrackingQuality()

Public function Const

EARTrackingQ...

 

OnGetTrackingQualityReason()

Public function Const

EARWorldMapp...

 

OnGetWorldMappingStatus()

Public function Virtual Const

bool

 

OnIsSceneReconstructionSupported

(
    EARSessionType SessionType,
    EARSceneReconstruction SceneReconst...
)

Public function Virtual Const

bool

 

OnIsSessionTrackingFeatureSupported

(
    EARSessionType SessionType,
    EARSessionTrackingFeature SessionTr...
)

Public function Const

bool

 

OnIsTrackingTypeSupported

(
    EARSessionType SessionType
)

Public function

TArray< FART...

 

OnLineTraceTrackedObjects

(
    const FVector2D ScreenCoord,
    EARLineTraceChannels TraceChannels
)

Trace all the tracked geometries and determine which have been hit by a ray cast from `ScreenCoord_.

Public function

TArray< FART...

 

OnLineTraceTrackedObjects

(
    const FVector Start,
    const FVector End,
    EARLineTraceChannels TraceChannels
)

Public function

void

 

OnPauseARSession()

Stop the AR system but leave its internal state intact.

Public function

UARPin *

 

OnPinComponent

(
    USceneComponent* ComponentToPi...,
    const FTransform& PinToWorldTransf...,
    UARTrackedGeometry* TrackedGeo...,
    const FName DebugName
)

Pin an Unreal Component to a location in the world.

Public function

bool

 

OnPinComponentToARPin

(
    USceneComponent* ComponentToPi...,
    UARPin* Pin
)

Pin a component to an existing ARPin.

Public function

void

 

OnRemovePin

(
    UARPin* PinToRemove
)

Given a pin, remove it and stop updating the associated component based on the tracked geometry.

Public function Virtual

FIntPoint

 

OnResizeXRCamera

(
    const FIntPoint& InSize
)

Public function Const

TSharedPtr< ...

 

OnSaveWorld()

Saves the AR world to a byte array using an async task

Public function

void

 

OnSetAlignmentTransform

(
    const FTransform& InAlignmentTrans...
)

Set a transform that will align the Tracking Space origin to the World Space origin.

Public function Virtual

void

 

OnSetEnabledXRCamera

(
    bool bOnOff
)

Public function Virtual

bool

 

OnStartARGameFrame

(
    FWorldContext& WorldContext
)

Public function

void

 

OnStartARSession

(
    UARSessionConfig* SessionConfi...
)

Start the AR system.

Public function

void

 

OnStopARSession()

Stop the AR system and reset its internal state; this task must succeed.

Public function Virtual

bool

 

OnToggleARCapture

(
    const bool bOnOff,
    const EARCaptureType CaptureType
)

Public function Virtual

bool

 

OnTryGetOrCreatePinForNativeResource

(
    void* InNativeResource,
    const FString& InPinName,
    UARPin*& OutPin
)

Given the platform specific native resource for a pin, create a pin.

Public function Virtual

void

 

RemoveAllSavedARPins()

Public function Virtual

void

 

RemoveSavedARPin

(
    FName InName
)

Public function Virtual

bool

 

SaveARPin

(
    FName InName,
    UARPin* InPin
)

Public function Virtual

void

 

TriggerOnTrackableAddedDelegates

(
    UARTrackedGeometry* Param1
)

Public function Virtual

void

 

TriggerOnTrackableRemovedDelegates

(
    UARTrackedGeometry* Param1
)

Public function Virtual

void

 

TriggerOnTrackableUpdatedDelegates

(
    UARTrackedGeometry* Param1
)