UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ARSupportInterface.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "ARTypes.h"
6#include "ARSessionConfig.h"
7#include "ARTextures.h"
8#include "Engine/Engine.h" // for FWorldContext
9
10#define UE_API AUGMENTEDREALITY_API
11
14
17
18#define DECLARE_AR_SI_DELEGATE_FUNCS(DelegateName) \
19public: \
20 UE_API FDelegateHandle Add##DelegateName##Delegate_Handle(const F##DelegateName##Delegate& Delegate); \
21 UE_API void Clear##DelegateName##Delegate_Handle(FDelegateHandle& Handle); \
22 UE_API void Clear##DelegateName##Delegates(FDelegateUserObject Object);
23
28class FARSupportInterface : public TSharedFromThis<FARSupportInterface, ESPMode::ThreadSafe>, public FGCObject, public IModularFeature
29{
30public:
33
34
36 {
37 static const FName ModularFeatureName = FName(TEXT("ARSystem"));
38 return ModularFeatureName;
39 }
40
43
44 UE_API bool StartARGameFrame(FWorldContext& WorldContext);
45
49
59 UE_API void StopARSession();
63 UE_API bool IsSessionTypeSupported(EARSessionType SessionType) const;
64
67
72
79
98
101
103 UE_API UARPin* PinComponent(USceneComponent* ComponentToPin, const FTransform& PinToWorldTransform, UARTrackedGeometry* TrackedGeometry = nullptr, const FName DebugName = NAME_None);
105 UE_API UARPin* PinComponent(USceneComponent* ComponentToPin, const FARTraceResult& HitResult, const FName DebugName = NAME_None);
109
112
115
118
121
124
127
129 UE_API bool IsSceneReconstructionSupported(EARSessionType SessionType, EARSceneReconstruction SceneReconstructionMethod) const;
130
132 UE_API bool AddTrackedPointWithName(const FTransform& WorldTransform, const FString& PointName, bool bDeletePointsWithSameName);
133
136
138 UE_API UARTexture* GetARTexture(EARTextureType TextureType) const;
139
142
144 UE_API bool IsARAvailable() const;
145
146 //~ FGCObject
147 UE_API virtual void AddReferencedObjects(FReferenceCollector& Collector) override;
148 virtual FString GetReferencerName() const override
149 {
150 return TEXT("FARSupportInterface");
151 }
152 //~ FGCObject
153
154 // Pass through helpers to create the methods needed to add/remove delegates from the AR system
155 DECLARE_AR_SI_DELEGATE_FUNCS(OnTrackableAdded)
156 DECLARE_AR_SI_DELEGATE_FUNCS(OnTrackableUpdated)
157 DECLARE_AR_SI_DELEGATE_FUNCS(OnTrackableRemoved)
158 // End helpers
159
160
161 UE_API bool PinComponent(USceneComponent* ComponentToPin, UARPin* Pin);
162 UE_API bool IsLocalPinSaveSupported() const;
165 UE_API bool SaveARPin(FName InName, UARPin* InPin);
166 UE_API void RemoveSavedARPin(FName InName);
168
169
172
173private:
174 IARSystemSupport* ARImplemention;
175 IXRTrackingSystem* XRTrackingSystem;
176
178 FTransform AlignmentTransform;
180};
181
182#undef UE_API
EARSessionType
Definition ARSessionConfig.h:37
EARSessionTrackingFeature
Definition ARSessionConfig.h:142
EARSceneReconstruction
Definition ARSessionConfig.h:167
#define UE_API
Definition ARSupportInterface.h:10
#define DECLARE_AR_SI_DELEGATE_FUNCS(DelegateName)
Definition ARSupportInterface.h:18
EARTextureType
Definition ARTextures.h:13
EARWorldMappingState
Definition ARTypes.h:152
EARCaptureType
Definition ARTypes.h:47
EARTrackingQualityReason
Definition ARTypes.h:104
EARLineTraceChannels
Definition ARTypes.h:70
EARTrackingQuality
Definition ARTypes.h:91
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:23
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
Definition ARSupportInterface.h:29
UE_API void LoadARPins(TMap< FName, UARPin * > &LoadedPins)
Definition ARSupportInterface.cpp:384
virtual UE_API void AddReferencedObjects(FReferenceCollector &Collector) override
Definition ARSupportInterface.cpp:349
UE_API EARWorldMappingState GetWorldMappingStatus() const
Definition ARSupportInterface.cpp:240
UE_API bool IsARAvailable() const
Definition ARSupportInterface.cpp:480
UE_API void RemoveAllSavedARPins()
Definition ARSupportInterface.cpp:408
UE_API FIntPoint ResizeXRCamera(const FIntPoint &InSize)
Definition ARSupportInterface.cpp:156
UE_API bool AddManualEnvironmentCaptureProbe(FVector Location, FVector Extent)
Definition ARSupportInterface.cpp:213
UE_API bool IsSceneReconstructionSupported(EARSessionType SessionType, EARSceneReconstruction SceneReconstructionMethod) const
Definition ARSupportInterface.cpp:435
UE_API TSharedPtr< FARSaveWorldAsyncTask, ESPMode::ThreadSafe > SaveWorld() const
Definition ARSupportInterface.cpp:231
UE_API void StartARSession(UARSessionConfig *InSessionConfig)
Definition ARSupportInterface.cpp:88
UE_API bool ToggleARCapture(const bool bOnOff, const EARCaptureType CaptureType)
Definition ARSupportInterface.cpp:138
UE_API TArray< UARPin * > GetAllPins() const
Definition ARSupportInterface.cpp:204
UE_API int32 GetNumberOfTrackedFacesSupported() const
Definition ARSupportInterface.cpp:453
UE_API bool TryGetOrCreatePinForNativeResource(void *InNativeResource, const FString &InAnchorName, UARPin *&OutAnchor)
Definition ARSupportInterface.cpp:285
virtual UE_API ~FARSupportInterface()
Definition ARSupportInterface.cpp:19
UE_API void * GetARSessionRawPointer()
Definition ARSupportInterface.cpp:330
UE_API EARTrackingQualityReason GetTrackingQualityReason() const
Definition ARSupportInterface.cpp:79
UE_API bool AddTrackedPointWithName(const FTransform &WorldTransform, const FString &PointName, bool bDeletePointsWithSameName)
Definition ARSupportInterface.cpp:444
FARSystemOnAlignmentTransformUpdated OnAlignmentTransformUpdated
Definition ARSupportInterface.h:171
UE_API void RemoveSavedARPin(FName InName)
Definition ARSupportInterface.cpp:401
UE_API bool IsEnvironmentCaptureSupported() const
UE_API bool IsLocalPinSaveSupported() const
Definition ARSupportInterface.cpp:366
UE_API void PauseARSession()
Definition ARSupportInterface.cpp:97
UE_API TArray< FARPose2D > GetTracked2DPose() const
Definition ARSupportInterface.cpp:426
UE_API void * GetGameThreadARFrameRawPointer()
Definition ARSupportInterface.cpp:339
UE_API bool ArePinsReadyToLoad()
Definition ARSupportInterface.cpp:375
UE_API void StopARSession()
Definition ARSupportInterface.cpp:108
UE_API const UARSessionConfig & GetSessionConfig() const
Definition ARSupportInterface.cpp:48
UE_API UARLightEstimate * GetCurrentLightEstimate() const
Definition ARSupportInterface.cpp:250
UE_API TSharedPtr< FARGetCandidateObjectAsyncTask, ESPMode::ThreadSafe > GetCandidateObject(FVector Location, FVector Extent) const
Definition ARSupportInterface.cpp:222
UE_API bool IsSessionTrackingFeatureSupported(EARSessionType SessionType, EARSessionTrackingFeature SessionTrackingFeature) const
Definition ARSupportInterface.cpp:417
UE_API bool SaveARPin(FName InName, UARPin *InPin)
Definition ARSupportInterface.cpp:392
UE_API UARSessionConfig & AccessSessionConfig()
Definition ARSupportInterface.cpp:54
UE_API FARSessionStatus GetARSessionStatus() const
Definition ARSupportInterface.cpp:120
UE_API TArray< UARTrackedGeometry * > GetAllTrackedGeometries() const
Definition ARSupportInterface.cpp:195
UE_API EARTrackingQuality GetTrackingQuality() const
Definition ARSupportInterface.cpp:70
UE_API IXRTrackingSystem * GetXRTrackingSystem()
Definition ARSupportInterface.cpp:38
UE_API void RemovePin(UARPin *PinToRemove)
Definition ARSupportInterface.cpp:277
UE_API void SetEnabledXRCamera(bool bOnOff)
Definition ARSupportInterface.cpp:148
UE_API void SetAlignmentTransform(const FTransform &InAlignmentTransform)
Definition ARSupportInterface.cpp:166
UE_API UARCandidateImage * AddRuntimeCandidateImage(UARSessionConfig *SessionConfig, UTexture2D *CandidateTexture, FString FriendlyName, float PhysicalWidth)
Definition ARSupportInterface.cpp:315
static FName GetModularFeatureName()
Definition ARSupportInterface.h:35
UE_API UARPin * PinComponent(USceneComponent *ComponentToPin, const FTransform &PinToWorldTransform, UARTrackedGeometry *TrackedGeometry=nullptr, const FName DebugName=NAME_None)
Definition ARSupportInterface.cpp:259
UE_API bool IsSessionTypeSupported(EARSessionType SessionType) const
Definition ARSupportInterface.cpp:129
UE_API void InitializeARSystem()
Definition ARSupportInterface.cpp:24
virtual FString GetReferencerName() const override
Definition ARSupportInterface.h:148
UE_API bool GetCameraIntrinsics(FARCameraIntrinsics &OutCameraIntrinsics) const
Definition ARSupportInterface.cpp:471
UE_API TArray< FARTraceResult > LineTraceTrackedObjects(const FVector2D ScreenCoords, EARLineTraceChannels TraceChannels)
Definition ARSupportInterface.cpp:176
UE_API TArray< FARVideoFormat > GetSupportedVideoFormats(EARSessionType SessionType=EARSessionType::World) const
Definition ARSupportInterface.cpp:296
UE_API const FTransform & GetAlignmentTransform() const
Definition ARSupportInterface.cpp:43
UE_API UARTexture * GetARTexture(EARTextureType TextureType) const
Definition ARSupportInterface.cpp:462
FARSystemOnSessionStarted OnARSessionStarted
Definition ARSupportInterface.h:170
UE_API TArray< FVector > GetPointCloud() const
Definition ARSupportInterface.cpp:306
UE_API bool StartARGameFrame(FWorldContext &WorldContext)
Definition ARSupportInterface.cpp:60
Definition GCObject.h:128
Definition NameTypes.h:617
Definition UObjectGlobals.h:2492
Definition ARSystem.h:78
Definition IModularFeature.h:12
Definition IXRTrackingSystem.h:47
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition ARTypes.h:313
Definition ARLightEstimate.h:20
Definition ARPin.h:15
Definition ARSessionConfig.h:183
Definition ARTextures.h:31
Definition ARTrackable.h:17
Definition Texture2D.h:26
Definition ARTypes.h:601
Definition ARTypes.h:256
Definition ARTraceResult.h:17
Definition Engine.h:334
Definition ObjectPtr.h:488
Definition IntPoint.h:25