UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ARGeoTrackingSupport.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "ARBlueprintProxy.h"
6#include "Misc/Optional.h"
7#include "ARTypes.h"
9
10#include "ARGeoTrackingSupport.generated.h"
11
12#define UE_API AUGMENTEDREALITY_API
13
14
17
18
19UENUM(BlueprintType)
21{
22 // The session is initializing geo tracking.
24
25 // Geo tracking is localized.
27
28 // Geo tracking is attempting to localize against a map.
30
31 // Geo tracking is not available.
33};
34
35
36UENUM(BlueprintType)
38{
39 // No issues reported.
40 None,
41
42 // Geo tracking is not available at the location.
44
45 // Geo tracking needs location permissions from the user.
47
48 // The user is pointing the device too low to use geo tracking.
50
51 // The session is unsure of the device’s pose in the physical environment.
53
54 // The framework is waiting for a position for the user.
56
57 // The framework is actively attempting to download localization imagery.
59
60 // The framework failed to match its localization imagery with the device’s camera captures.
62
63 // The framework is waiting for the availability check.
65};
66
67
68UENUM(BlueprintType)
70{
71 // Geo-tracking accuracy is undetermined.
73
74 // Geo-tracking accuracy is low.
75 Low,
76
77 // Geo-tracking accuracy is average.
78 Medium,
79
80 // Geo-tracking accuracy is high.
81 High,
82};
83
84
88UCLASS(MinimalAPI, BlueprintType, Abstract, Category="AR|Geo Tracking")
90{
92
93public:
95 {
96 static FName FeatureName = FName(TEXT("ARGeoTrackingSupport"));
97 return FeatureName;
98 }
99
101 UFUNCTION(BlueprintCallable, Category = "AR AugmentedReality|Geo Tracking")
102 static UE_API class UARGeoTrackingSupport* GetGeoTrackingSupport();
103
109
114 UE_API virtual TSharedPtr<FCheckGeoTrackingAvailabilityAsyncTask, ESPMode::ThreadSafe> CheckGeoTrackingAvailability(float Longitude, float Latitude, FString& OutError);
115
120 UE_API virtual TSharedPtr<FGetGeoLocationAsyncTask, ESPMode::ThreadSafe> GetGeoLocationAtWorldPosition(const FVector& WorldPosition, FString& OutError);
121
125 UFUNCTION(BlueprintCallable, Category = "AR AugmentedReality|Geo Tracking")
126 virtual EARGeoTrackingState GetGeoTrackingState() const { return EARGeoTrackingState::NotAvailable; }
127
131 UFUNCTION(BlueprintCallable, Category = "AR AugmentedReality|Geo Tracking")
133
137 UFUNCTION(BlueprintCallable, Category = "AR AugmentedReality|Geo Tracking")
138 virtual EARGeoTrackingAccuracy GetGeoTrackingAccuracy() const { return EARGeoTrackingAccuracy::Undetermined; }
139
143 UFUNCTION(BlueprintCallable, Category = "AR AugmentedReality|Geo Tracking")
144 virtual bool AddGeoAnchorAtLocation(float Longitude, float Latitude, FString OptionalAnchorName) { return false; }
145
149 UFUNCTION(BlueprintCallable, Category = "AR AugmentedReality|Geo Tracking")
150 virtual bool AddGeoAnchorAtLocationWithAltitude(float Longitude, float Latitude, float AltitudeMeters, FString OptionalAnchorName) { return false; }
151};
152
153
158{
159public:
160 bool IsAvailable() const { return bIsAvailable; }
161
166
170 UE_API void FinishWithError(const FString& InError);
171
172private:
173 bool bIsAvailable = false;
174};
175
176
180UCLASS(MinimalAPI)
182{
184
185public:
187
188 UPROPERTY(BlueprintAssignable)
190
191 UPROPERTY(BlueprintAssignable)
193
197 UFUNCTION(BlueprintCallable, Category = "AR AugmentedReality|Geo Tracking", meta=(BlueprintInternalUseOnly="true", WorldContext = "WorldContextObject"))
198 static UE_API UCheckGeoTrackingAvailabilityAsyncTaskBlueprintProxy* CheckGeoTrackingAvailability(UObject* WorldContextObject);
199
203 UFUNCTION(BlueprintCallable, Category = "AR AugmentedReality|Geo Tracking", meta=(BlueprintInternalUseOnly="true", WorldContext = "WorldContextObject"))
204 static UE_API UCheckGeoTrackingAvailabilityAsyncTaskBlueprintProxy* CheckGeoTrackingAvailabilityAtLocation(UObject* WorldContextObject, float Longitude, float Latitude);
205
206private:
207 // UBlueprintAsyncActionBase interface
208 UE_API void Activate() override;
209 UE_API void ReportSuccess() override;
210 UE_API void ReportFailure() override;
211 //~UBlueprintAsyncActionBase interface
212
213 TOptional<float> Longitude;
214 TOptional<float> Latitude;
215
218
219 FString Error;
220};
221
222
227{
228public:
232 UE_API void FinishWithGeoLocation(float InLongitude, float InLatitude, float InAltitude);
233
237 UE_API void FinishWithError(const FString& InError);
238
242 float GetLongitude() const { return Longitude; }
243
247 float GetLatitude() const { return Latitude; }
248
252 float GetAltitude() const { return Altitude; }
253
254private:
255 float Longitude = 0.f;
256 float Latitude = 0.f;
257 float Altitude = 0.f;
258};
259
260
264UCLASS(MinimalAPI)
266{
268
269public:
270 DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FGetGeoLocationDelegate, float, Longitude, float, Latitude, float, Altitude, FString, Error);
271
272 UPROPERTY(BlueprintAssignable)
274
275 UPROPERTY(BlueprintAssignable)
277
281 UFUNCTION(BlueprintCallable, Category = "AR AugmentedReality|Geo Tracking", meta=(BlueprintInternalUseOnly="true", WorldContext = "WorldContextObject"))
282 static UE_API UGetGeoLocationAsyncTaskBlueprintProxy* GetGeoLocationAtWorldPosition(UObject* WorldContextObject, const FVector& WorldPosition);
283
284private:
285 // UBlueprintAsyncActionBase interface
286 UE_API void Activate() override;
287 UE_API void ReportSuccess() override;
288 UE_API void ReportFailure() override;
289 //~UBlueprintAsyncActionBase interface
290
291 FVector WorldPosition = FVector::ZeroVector;
292
295
296 FString Error;
297};
298
299#undef UE_API
EARGeoTrackingState
Definition ARGeoTrackingSupport.h:21
EARGeoTrackingAccuracy
Definition ARGeoTrackingSupport.h:70
#define UE_API
Definition ARGeoTrackingSupport.h:12
EARGeoTrackingStateReason
Definition ARGeoTrackingSupport.h:38
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
ESPMode
Definition SharedPointerFwd.h:12
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition ARTypes.h:423
Definition ARGeoTrackingSupport.h:158
UE_API void FinishWithError(const FString &InError)
Definition ARGeoTrackingSupport.cpp:46
bool IsAvailable() const
Definition ARGeoTrackingSupport.h:160
UE_API void FinishWithAvailability(bool bInIsAvailable)
Definition ARGeoTrackingSupport.cpp:39
Definition ARGeoTrackingSupport.h:227
float GetLatitude() const
Definition ARGeoTrackingSupport.h:247
float GetAltitude() const
Definition ARGeoTrackingSupport.h:252
float GetLongitude() const
Definition ARGeoTrackingSupport.h:242
Definition NameTypes.h:617
Definition IModularFeature.h:12
Definition SharedPointer.h:692
Definition ARBlueprintProxy.h:23
Definition ARGeoTrackingSupport.h:90
static FName GetModularFeatureName()
Definition ARGeoTrackingSupport.h:94
Definition ARGeoTrackingSupport.h:182
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FGeoTrackingAvailabilityDelegate, bool, bIsAvailable, FString, Error)
Definition ARGeoTrackingSupport.h:266
DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FGetGeoLocationDelegate, float, Longitude, float, Latitude, float, Altitude, FString, Error)
Definition Object.h:95
Definition Optional.h:131