UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NavigationData.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
6#include "CoreMinimal.h"
7#endif
8#include "Stats/Stats.h"
11#include "Engine/EngineTypes.h"
13#include "GameFramework/Actor.h"
14#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
16#endif
19#include "EngineDefines.h"
21
22#include "NavigationData.generated.h"
23
24class ANavigationData;
25class Error;
29class UNavArea;
30class UPrimitiveComponent;
33
34USTRUCT()
50
52{
54 ENavPathUpdateType::Type Reason;
55
57 : Path(InPath.ToSharedRef()), Reason(InReason)
58 {}
59
60 bool operator==(const FNavPathRecalculationRequest& Other) const { return Path == Other.Path; }
61};
62
77
85
86struct FNavigationPath : public TSharedFromThis<FNavigationPath, ESPMode::ThreadSafe>
87{
88 //DECLARE_DELEGATE_OneParam(FPathObserverDelegate, FNavigationPath*);
90
94
99
100 inline bool IsValid() const
101 {
102 return bIsReady && PathPoints.Num() > 1 && bUpToDate;
103 }
104 inline bool IsUpToDate() const
105 {
106 return bUpToDate;
107 }
108 inline bool IsReady() const
109 {
110 return bIsReady;
111 }
112 inline bool IsPartial() const
113 {
114 return bIsPartial;
115 }
116 inline bool DidSearchReachedLimit() const
117 {
118 return bReachedSearchLimit;
119 }
120
121 // True when the path request failed because the start location couldn't be projected on the NavData.
122 // False doesn't guarantee that the location is navigable, it's also possible a previous error skipped the projection altogether
127
128 // True when the path request failed because the end location couldn't be projected on the NavData.
129 // False doesn't guarantee that the location is navigable, it's also possible a previous error skipped the projection altogether
134 inline bool IsWaitingForRepath() const
135 {
136 return bWaitingForRepath;
137 }
143 {
145 }
147 {
149 }
151 {
153 }
155 {
156 return ObserverDelegate;
157 }
158 inline FDelegateHandle AddObserver(FPathObserverDelegate::FDelegate NewObserver)
159 {
160 return ObserverDelegate.Add(NewObserver);
161 }
166
167 inline void MarkReady()
168 {
169 bIsReady = true;
170 }
171
172 inline void SetNavigationDataUsed(const ANavigationData* const NewData);
173
175 {
176 return NavigationDataUsed.Get();
177 }
178 inline void SetQuerier(const UObject* InQuerier)
179 {
181 }
182 inline const UObject* GetQuerier() const
183 {
185 }
186 inline void SetQueryData(const FPathFindingQueryData& QueryData)
187 {
188 PathFindingQueryData = QueryData;
189 }
191 {
192 // return copy of query data
194 }
195
196 //FORCEINLINE void SetObserver(const FPathObserverDelegate& Observer) { ObserverDelegate = Observer; }
197 inline void SetIsPartial(const bool bPartial)
198 {
199 bIsPartial = bPartial;
200 }
201 inline void SetSearchReachedLimit(const bool bLimited)
202 {
204 }
214 {
216 Filter = InFilter;
217 }
222 inline AActor* GetBaseActor() const
223 {
224 return Base.Get();
225 }
226
228 {
229 return PathPoints.Num() > 0 ? PathPoints[0].Location : FNavigationSystem::InvalidLocation;
230 }
235
236 inline void DoneUpdating(ENavPathUpdateType::Type UpdateType)
237 {
238 static const ENavPathEvent::Type PathUpdateTypeToPathEvent[] = {
239 ENavPathEvent::UpdatedDueToGoalMoved // GoalMoved,
240 , ENavPathEvent::UpdatedDueToNavigationChanged // NavigationChanged,
241 , ENavPathEvent::MetaPathUpdate // MetaPathUpdate,
242 , ENavPathEvent::Custom // Custom,
243 };
244
245 bUpToDate = true;
246 bWaitingForRepath = false;
247
249 {
250 // notify path before observers
251 OnPathUpdated(UpdateType);
252 }
253
254 ObserverDelegate.Broadcast(this, PathUpdateTypeToPathEvent[uint8(UpdateType)]);
255 }
256
257 inline double GetTimeStamp() const { return LastUpdateTimeStamp; }
258 inline void SetTimeStamp(double TimeStamp) { LastUpdateTimeStamp = TimeStamp; }
259
262
266
269
270 NAVIGATIONSYSTEM_API virtual void DebugDraw(const ANavigationData* NavData, const FColor PathColor, class UCanvas* Canvas, const bool bPersistent, const float LifeTime, const uint32 NextPathPointIndex = 0) const;
271
272#if ENABLE_VISUAL_LOG
274 NAVIGATIONSYSTEM_API virtual FString GetDescription() const;
275#endif // ENABLE_VISUAL_LOG
276
278 UE_DEPRECATED(5.3, "Use version that takes FNavLinkId instead. This function only returns false.")
279 virtual bool ContainsCustomLink(uint32 UniqueLinkId) const final { return false; }
280
282
284 NAVIGATIONSYSTEM_API virtual bool ContainsAnyCustomLink() const;
285
287 NAVIGATIONSYSTEM_API virtual bool ContainsNode(NavNodeRef NodeRef) const;
288
291 {
292 return 0.;
293 }
294
297 {
298 return 0.;
299 }
300
301 inline FVector::FReal GetCost() const
302 {
303 return GetCostFromIndex(0);
304 }
305
308
310 {
311 return PathPoints.Num() ? GetLengthFromPosition(PathPoints[0].Location, 1) : 0.0f;
312 }
313
315 {
316 if (Path && Path->GetPathPoints().IsValidIndex((int32)PathVertIdx))
317 {
318 PathPoint = Path->PathPoints[PathVertIdx];
319 return true;
320 }
321
322 return false;
323 }
324
326 {
327 return PathPoints;
328 }
330 {
331 return PathPoints;
332 }
333
336
346
347private:
348 NAVIGATIONSYSTEM_API bool DoesPathIntersectBoxImplementation(const FBox& Box, const FVector& StartLocation, uint32 StartingIndex, int32* IntersectingSegmentIndex, FVector* AgentExtent) const;
349
351 NAVIGATIONSYSTEM_API void InternalResetNavigationPath();
352
353public:
354
356 template<typename PathClass>
357 inline const PathClass* CastPath() const
358 {
359 return PathType.IsA(PathClass::Type) ? static_cast<const PathClass*>(this) : NULL;
360 }
361
362 template<typename PathClass>
364 {
365 return PathType.IsA(PathClass::Type) ? static_cast<PathClass*>(this) : NULL;
366 }
367
371 void SetGoalActorTetherDistance(const float NewTetherDistace) { GoalActorLocationTetherDistanceSq = FMath::Square(NewTetherDistace); }
376
377 const AActor* GetSourceActor() const { return SourceActor.Get(); }
378 const INavAgentInterface* GetSourceActorAsNavAgent() const { return SourceActorAsNavAgent; }
379
380 FVector GetLastRepathGoalLocation() const { return GoalActorLastLocation; }
382
383 double GetLastUpdateTime() const { return LastUpdateTimeStamp; }
384 float GetGoalActorTetherDistance() const { return FMath::Sqrt(GoalActorLocationTetherDistanceSq); }
385
392 {
394 }
395
399
400 NAVIGATIONSYSTEM_API EPathObservationResult::Type TickPathObservation();
401
404
407
408 const AActor* GetGoalActor() const
409 {
410 return bObservingGoalActor ? GoalActor.Get() : nullptr;
411 }
413 {
414 return GoalActor.IsValid() ? GoalActorAsNavAgent : NULL;
415 }
416
417 // @todo this is navigation-type specific and should not be implemented here.
420
421protected:
422
424 virtual void OnPathUpdated(ENavPathUpdateType::Type UpdateType) {};
425
431
434
435private:
440
442 const INavAgentInterface* GoalActorAsNavAgent;
443
446
448 const INavAgentInterface* SourceActorAsNavAgent;
449
450protected:
451 // DEPRECATED: filter used to build this path
453
456
458
461
464
467
470
475
478
481
484
490
493
496
499
502
506
509
512
515
516private:
517 /* if GoalActor is set this is the distance we'll try to keep GoalActor from end of path. If GoalActor
518 * moves more then this from the end of the path we'll recalculate the path */
519 float GoalActorLocationTetherDistanceSq;
520
522 FVector GoalActorLastLocation;
523};
524
528UENUM()
530{
531 // No runtime generation, fully static navigation data
532 Static,
533 // Supports only navigation modifiers updates
535 // Fully dynamic, supports geometry changes along with navigation modifiers
536 Dynamic,
537 // Only for legacy loading don't use it!
539};
540
545UCLASS(config=Engine, defaultconfig, NotBlueprintable, abstract, MinimalAPI)
547{
549
552
553protected:
554 UPROPERTY()
555 FNavDataConfig NavDataConfig;
556
558 UPROPERTY(Transient, EditAnywhere, Category=Display)
559 uint32 bEnableDrawing:1;
560
561 //----------------------------------------------------------------------//
562 // game-time config
563 //----------------------------------------------------------------------//
564
567 UPROPERTY(config, EditAnywhere, Category = Runtime)
568 uint32 bForceRebuildOnLoad : 1;
569
572 UPROPERTY(config, EditAnywhere, Category = Runtime)
573 uint32 bAutoDestroyWhenNoNavigation : 1;
574
576 UPROPERTY(config, EditAnywhere, Category = Runtime, AdvancedDisplay)
577 uint32 bCanBeMainNavData : 1;
578
580 UPROPERTY(config, VisibleAnywhere, Category = Runtime, AdvancedDisplay)
581 uint32 bCanSpawnOnRebuild : 1;
582
584 UPROPERTY(config)
585 uint32 bRebuildAtRuntime_DEPRECATED:1;
586
588 UPROPERTY(EditAnywhere, Category = Runtime, config)
589 ERuntimeGenerationType RuntimeGeneration;
590
592 UPROPERTY(EditAnywhere, Category = Runtime, config)
593 float ObservedPathsTickInterval;
594
595public:
596 //----------------------------------------------------------------------//
597 // Life cycle
598 //----------------------------------------------------------------------//
599
600 //~ Begin UObject/AActor Interface
601 NAVIGATIONSYSTEM_API virtual void PostInitProperties() override;
602 NAVIGATIONSYSTEM_API virtual void PostInitializeComponents() override;
604#if WITH_EDITOR
605 NAVIGATIONSYSTEM_API virtual void RerunConstructionScripts() override;
606 NAVIGATIONSYSTEM_API virtual void PostEditUndo() override;
607 bool IsBuildingOnLoad() const { return bIsBuildingOnLoad; }
608 void SetIsBuildingOnLoad(bool bValue) { bIsBuildingOnLoad = bValue; }
609#endif // WITH_EDITOR
610 NAVIGATIONSYSTEM_API virtual void Destroyed() override;
611 NAVIGATIONSYSTEM_API virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
612 //~ End UObject Interface
613
614 NAVIGATIONSYSTEM_API virtual void CleanUp();
615 NAVIGATIONSYSTEM_API virtual void ApplyWorldOffset(const FVector& InOffset, bool bWorldShift) override;
616
617protected:
618 NAVIGATIONSYSTEM_API void RequestRegistration();
619
620private:
622 NAVIGATIONSYSTEM_API void UnregisterAndCleanUp();
623
624public:
625 NAVIGATIONSYSTEM_API virtual void CleanUpAndMarkPendingKill();
626
627 inline bool IsRegistered() const { return bRegistered; }
628 NAVIGATIONSYSTEM_API virtual void OnRegistered();
629 NAVIGATIONSYSTEM_API void OnUnregistered();
630
631 inline uint16 GetNavDataUniqueID() const { return NavDataUniqueID; }
632
633 NAVIGATIONSYSTEM_API virtual void TickActor(float DeltaTime, enum ELevelTick TickType, FActorTickFunction& ThisTickFunction) override;
634
635 virtual bool NeedsRebuild() const { return false; }
636 NAVIGATIONSYSTEM_API virtual bool SupportsRuntimeGeneration() const;
637 NAVIGATIONSYSTEM_API virtual bool SupportsStreaming() const;
638 NAVIGATIONSYSTEM_API virtual void OnNavigationBoundsChanged();
639
643
646
647#if WITH_EDITOR
648 virtual double GetWorldPartitionNavigationDataBuilderOverlap() const { return 0; }
649#endif
650
651 //----------------------------------------------------------------------//
652 // Generation & data access
653 //----------------------------------------------------------------------//
654public:
655 inline const FNavDataConfig& GetConfig() const { return NavDataConfig; }
656 inline ERuntimeGenerationType GetRuntimeGenerationMode() const { return RuntimeGeneration; }
660 NAVIGATIONSYSTEM_API virtual void SetConfig(const FNavDataConfig& Src);
661
662 void SetSupportsDefaultAgent(bool bIsDefault) { bSupportsDefaultAgent = bIsDefault; SetNavRenderingEnabled(bIsDefault); }
663 bool IsSupportingDefaultAgent() const { return bSupportsDefaultAgent; }
665 {
666 return NavAgentProperties;
667 }
668
669 NAVIGATIONSYSTEM_API virtual bool DoesSupportAgent(const FNavAgentProperties& AgentProps) const;
670
672
673 bool CanBeMainNavData() const { return bCanBeMainNavData; }
674 bool CanSpawnOnRebuild() const { return bCanSpawnOnRebuild; }
675 bool NeedsRebuildOnLoad() const { return bForceRebuildOnLoad; }
676
677protected:
678 virtual void FillConfig(FNavDataConfig& Dest) { Dest = NavDataConfig; }
679
680public:
682 NAVIGATIONSYSTEM_API virtual void ConditionalConstructGenerator();
683
686
688 virtual void PostLoadPreRebuild() {}
689
691 NAVIGATIONSYSTEM_API virtual void RebuildAll();
692
694 NAVIGATIONSYSTEM_API virtual void EnsureBuildCompletion();
695
697 NAVIGATIONSYSTEM_API virtual void CancelBuild();
698
703 NAVIGATIONSYSTEM_API virtual void TickAsyncBuild(float DeltaSeconds);
704
706 FNavDataGenerator* GetGenerator() { return NavDataGenerator.Get(); }
707 const FNavDataGenerator* GetGenerator() const { return NavDataGenerator.Get(); }
708
710 NAVIGATIONSYSTEM_API virtual void RebuildDirtyAreas(const TArray<FNavigationDirtyArea>& DirtyAreas);
711
724 NAVIGATIONSYSTEM_API virtual void SetRebuildingSuspended(const bool bNewSuspend);
725
727 virtual bool IsRebuildingSuspended() const { return bRebuildingSuspended; }
728
730 virtual int32 GetNumSuspendedDirtyAreas() const { return SuspendedDirtyAreas.Num(); }
731
733protected:
736
737public:
742 template<typename PathType>
744 {
745 FNavPathSharedPtr SharedPath = MakeShareable(new PathType());
746 SharedPath->SetNavigationDataUsed(this);
747 SharedPath->SetQueryData(QueryData);
748 SharedPath->SetTimeStamp( GetWorldTimeStamp() );
749
750 const_cast<ANavigationData*>(this)->RegisterActivePath(SharedPath);
751 return SharedPath;
752 }
753
755 {
757 if (ObservedPaths.Num() == 0)
758 {
759 NextObservedPathsTickInSeconds = ObservedPathsTickInterval;
760 }
761 ObservedPaths.Add(SharedPath);
762 }
763
764 void RequestRePath(FNavPathSharedPtr Path, ENavPathUpdateType::Type Reason)
765 {
767 RepathRequests.AddUnique(FNavPathRecalculationRequest(Path, Reason));
768 }
769
770protected:
772 NAVIGATIONSYSTEM_API void PurgeUnusedPaths();
773
774 NAVIGATIONSYSTEM_API void RegisterActivePath(FNavPathSharedPtr SharedPath);
775
776public:
778 virtual FBox GetBounds() const PURE_VIRTUAL(ANavigationData::GetBounds,return FBox(););
779
781 NAVIGATIONSYSTEM_API TArray<FBox> GetNavigableBounds() const;
782
784 NAVIGATIONSYSTEM_API TArray<FBox> GetNavigableBoundsInLevel(ULevel* InLevel) const;
785
786 //----------------------------------------------------------------------//
787 // Debug
788 //----------------------------------------------------------------------//
789 NAVIGATIONSYSTEM_API void DrawDebugPath(FNavigationPath* Path, const FColor PathColor = FColor::White, class UCanvas* Canvas = nullptr, const bool bPersistent = true, const float LifeTime = -1.f, const uint32 NextPathPointIndex = 0) const;
790
791 inline bool IsDrawingEnabled() const { return bEnableDrawing; }
792
794 NAVIGATIONSYSTEM_API virtual uint32 LogMemUsed() const;
795
796 //----------------------------------------------------------------------//
797 // Batch processing (important with async rebuilding)
798 //----------------------------------------------------------------------//
799
801 virtual void BeginBatchQuery() const {}
802
804 virtual void FinishBatchQuery() const {};
805
806 //----------------------------------------------------------------------//
807 // Querying
808 //----------------------------------------------------------------------//
809 inline FSharedConstNavQueryFilter GetDefaultQueryFilter() const { return DefaultQueryFilter; }
810 inline const class INavigationQueryFilterInterface* GetDefaultQueryFilterImpl() const { return DefaultQueryFilter->GetImplementation(); }
811 inline FVector GetDefaultQueryExtent() const { return NavDataConfig.DefaultQueryExtent; }
812
822 {
823 check(FindPathImplementation);
824 // this awkward implementation avoids virtual call overhead - it's possible this function will be called a lot
825 return (*FindPathImplementation)(AgentProperties, Query);
826 }
827
837 {
838 check(FindHierarchicalPathImplementation);
839 // this awkward implementation avoids virtual call overhead - it's possible this function will be called a lot
840 return (*FindHierarchicalPathImplementation)(AgentProperties, Query);
841 }
842
851 {
852 check(TestPathImplementation);
853 // this awkward implementation avoids virtual call overhead - it's possible this function will be called a lot
854 return (*TestPathImplementation)(AgentProperties, Query, NumVisitedNodes);
855 }
856
865 {
866 check(TestHierarchicalPathImplementation);
867 // this awkward implementation avoids virtual call overhead - it's possible this function will be called a lot
868 return (*TestHierarchicalPathImplementation)(AgentProperties, Query, NumVisitedNodes);
869 }
870
878 inline bool Raycast(const FVector& RayStart, const FVector& RayEnd, FVector& HitLocation, FSharedConstNavQueryFilter QueryFilter, const UObject* Querier = NULL) const
879 {
880 return Raycast(RayStart, RayEnd, HitLocation, nullptr/*AdditionalResults*/, QueryFilter, Querier);
881 }
882
891 inline bool Raycast(const FVector& RayStart, const FVector& RayEnd, FVector& HitLocation, FNavigationRaycastAdditionalResults* AdditionalResults, FSharedConstNavQueryFilter QueryFilter, const UObject* Querier = NULL) const
892 {
893 check(RaycastImplementationWithAdditionalResults);
894 // this awkward implementation avoids virtual call overhead - it's possible this function will be called a lot
895 return (*RaycastImplementationWithAdditionalResults)(this, RayStart, RayEnd, HitLocation, AdditionalResults, QueryFilter, Querier);
896 }
897
899 virtual void BatchRaycast(TArray<FNavigationRaycastWork>& Workload, FSharedConstNavQueryFilter QueryFilter, const UObject* Querier = NULL) const PURE_VIRTUAL(ANavigationData::BatchRaycast, );
900
905 virtual bool FindMoveAlongSurface(const FNavLocation& StartLocation, const FVector& TargetPosition, FNavLocation& OutLocation, FSharedConstNavQueryFilter Filter = NULL, const UObject* Querier = NULL) const PURE_VIRTUAL(ANavigationData::FindMoveAlongSurface, return false;);
906
915
927
929
932
935
940 virtual bool ProjectPoint(const FVector& Point, FNavLocation& OutLocation, const FVector& Extent, FSharedConstNavQueryFilter Filter = NULL, const UObject* Querier = NULL) const PURE_VIRTUAL(ANavigationData::ProjectPoint, return false;);
941
943 virtual void BatchProjectPoints(TArray<FNavigationProjectionWork>& Workload, const FVector& Extent, FSharedConstNavQueryFilter Filter = NULL, const UObject* Querier = NULL) const PURE_VIRTUAL(ANavigationData::BatchProjectPoints, );
944
948 virtual void BatchProjectPoints(TArray<FNavigationProjectionWork>& Workload, FSharedConstNavQueryFilter Filter = NULL, const UObject* Querier = NULL) const PURE_VIRTUAL(ANavigationData::BatchProjectPoints, );
949
954
959
964
968
969 NAVIGATIONSYSTEM_API double GetWorldTimeStamp() const;
970
971 //----------------------------------------------------------------------//
972 // Areas
973 //----------------------------------------------------------------------//
974
976 NAVIGATIONSYSTEM_API virtual void OnNavAreaAdded(const UClass* NavAreaClass, int32 AgentIndex);
977
979 NAVIGATIONSYSTEM_API virtual void OnNavAreaRemoved(const UClass* NavAreaClass);
980
982 NAVIGATIONSYSTEM_API virtual void OnNavAreaChanged();
983
984 NAVIGATIONSYSTEM_API void OnNavAreaEvent(const UClass* NavAreaClass, ENavAreaEvent::Type Event);
985
987 NAVIGATIONSYSTEM_API void ProcessNavAreas(const TSet<const UClass*>& AreaClasses, int32 AgentIndex);
988
990 NAVIGATIONSYSTEM_API const UClass* GetAreaClass(int32 AreaID) const;
991
993 NAVIGATIONSYSTEM_API bool IsAreaAssigned(int32 AreaID) const;
994
996 NAVIGATIONSYSTEM_API int32 GetAreaID(const UClass* AreaClass) const;
997
999 virtual int32 GetMaxSupportedAreas() const { return MAX_int32; }
1000
1002 void GetSupportedAreas(TArray<FSupportedAreaData>& Areas) const { Areas = SupportedAreas; }
1003
1004 //----------------------------------------------------------------------//
1005 // Custom navigation links
1006 //----------------------------------------------------------------------//
1007
1008 NAVIGATIONSYSTEM_API virtual void UpdateCustomLink(const INavLinkCustomInterface* CustomLink);
1009
1010 //----------------------------------------------------------------------//
1011 // Filters
1012 //----------------------------------------------------------------------//
1013
1016
1019
1021 NAVIGATIONSYSTEM_API void RemoveQueryFilter(TSubclassOf<UNavigationQueryFilter> FilterClass);
1022
1023 //----------------------------------------------------------------------//
1024 // all the rest
1025 //----------------------------------------------------------------------//
1026 virtual UPrimitiveComponent* ConstructRenderingComponent() { return NULL; }
1027
1029 NAVIGATIONSYSTEM_API void SetNavRenderingEnabled(bool bEnable);
1030
1031#if WITH_EDITOR
1032 virtual bool CanChangeIsSpatiallyLoadedFlag() const override { return false; }
1033#endif
1034
1035protected:
1036 NAVIGATIONSYSTEM_API void InstantiateAndRegisterRenderingComponent();
1037
1039 NAVIGATIONSYSTEM_API virtual int32 GetNewAreaID(const UClass* AreaClass) const;
1040
1041protected:
1043 UPROPERTY()
1044 uint32 DataVersion;
1045
1047 FFindPathPtr FindPathImplementation;
1048 FFindPathPtr FindHierarchicalPathImplementation;
1049
1051 FTestPathPtr TestPathImplementation;
1052 FTestPathPtr TestHierarchicalPathImplementation;
1053
1054 typedef bool(*FNavRaycastPtr)(const ANavigationData* NavDataInstance, const FVector& RayStart, const FVector& RayEnd, FVector& HitLocation, FSharedConstNavQueryFilter QueryFilter, const UObject* Querier);
1055 UE_DEPRECATED(5.6, "Please use RaycastImplementationWithAdditionalResults instead")
1056 FNavRaycastPtr RaycastImplementation;
1057
1058 typedef bool(*FNavRaycastWithAdditionalResultsPtr)(const ANavigationData* NavDataInstance, const FVector& RayStart, const FVector& RayEnd, FVector& HitLocation, FNavigationRaycastAdditionalResults* AdditionalResults, FSharedConstNavQueryFilter QueryFilter, const UObject* Querier);
1059 FNavRaycastWithAdditionalResultsPtr RaycastImplementationWithAdditionalResults;
1060
1061protected:
1063
1068 TArray<FNavigationDirtyArea> SuspendedDirtyAreas;
1069
1076
1079
1083 TArray<FNavPathWeakPtr> ObservedPaths;
1084
1087
1089 float NextObservedPathsTickInSeconds;
1090
1092 FSharedNavQueryFilter DefaultQueryFilter;
1093
1096
1098 UPROPERTY()
1100
1102 TMap<const UClass*, int32> AreaClassToIdMap;
1103
1105 uint32 bRegistered : 1;
1106
1108 uint32 bSupportsDefaultAgent : 1;
1109
1113 uint32 bRebuildingSuspended : 1;
1114
1119 uint32 bReachedSuspendedAreasMaxCount : 1 = false;
1120
1121#if WITH_EDITORONLY_DATA
1123#endif
1124
1125private:
1126 uint16 NavDataUniqueID;
1127
1128 static NAVIGATIONSYSTEM_API uint16 GetNextUniqueID();
1129
1130protected:
1135
1137 {
1138 NavAgentProperties = InNavAgentProperties;
1139 }
1140};
1141
1165
1167{
1169}
1170
1172{
1173 NavigationDataUsed = MakeWeakObjectPtr(const_cast<ANavigationData*>(NavData));
1174}
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
SharedPointerInternals::TRawPtrProxy< ObjectType > MakeShareable(ObjectType *InObject)
Definition SharedPointer.h:1947
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
DIRECTLINK_API Display
Definition DirectLinkLog.h:8
ELevelTick
Definition EngineBaseTypes.h:70
return true
Definition ExternalRpcRegistry.cpp:601
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
ERuntimeGenerationType
Definition NavigationData.h:530
uint64 NavNodeRef
Definition NavigationTypes.h:34
#define INVALID_NAVEXTENT
Definition NavigationTypes.h:22
#define INVALID_NAVQUERYID
Definition NavigationTypes.h:20
#define MAX_int32
Definition NumericLimits.h:25
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
ESPMode
Definition SharedPointerFwd.h:12
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
::FCriticalSection FTransactionallySafeCriticalSection
Definition TransactionallySafeCriticalSection.h:16
FORCEINLINE TWeakObjectPtr< T > MakeWeakObjectPtr(T *Ptr)
Definition WeakObjectPtrTemplates.h:385
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition NavigationDataChunkActor.h:14
Definition NavigationData.h:547
FNavAgentProperties NavAgentProperties
Definition NavigationData.h:1134
bool TestPath(const FNavAgentProperties &AgentProperties, const FPathFindingQuery &Query, int32 *NumVisitedNodes) const
Definition NavigationData.h:850
void RegisterObservedPath(FNavPathSharedPtr SharedPath)
Definition NavigationData.h:754
const FNavDataGenerator * GetGenerator() const
Definition NavigationData.h:707
void GetSupportedAreas(TArray< FSupportedAreaData > &Areas) const
Definition NavigationData.h:1002
virtual void OnStreamingLevelRemoved(ULevel *InLevel, UWorld *InWorld)
Definition NavigationData.h:645
virtual ENavigationQueryResult::Type CalcPathLength(const FVector &PathStart, const FVector &PathEnd, FVector::FReal &OutPathLength, FSharedConstNavQueryFilter QueryFilter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:958
FNavDataGenerator * GetGenerator()
Definition NavigationData.h:706
bool IsSupportingDefaultAgent() const
Definition NavigationData.h:663
virtual bool ProjectPoint(const FVector &Point, FNavLocation &OutLocation, const FVector &Extent, FSharedConstNavQueryFilter Filter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:940
virtual void LoadBeforeGeneratorRebuild()
Definition NavigationData.h:685
const class INavigationQueryFilterInterface * GetDefaultQueryFilterImpl() const
Definition NavigationData.h:810
bool CanSpawnOnRebuild() const
Definition NavigationData.h:674
const FNavDataConfig & GetConfig() const
Definition NavigationData.h:655
void RequestRePath(FNavPathSharedPtr Path, ENavPathUpdateType::Type Reason)
Definition NavigationData.h:764
bool IsRegistered() const
Definition NavigationData.h:627
virtual void FinishBatchQuery() const
Definition NavigationData.h:804
virtual void OnStreamingNavDataRemoved(class ANavigationDataChunkActor &InActor)
Definition NavigationData.h:642
virtual bool NeedsRebuild() const
Definition NavigationData.h:635
virtual void PostLoadPreRebuild()
Definition NavigationData.h:688
virtual bool FindOverlappingEdges(const FNavLocation &StartLocation, TConstArrayView< FVector > ConvexPolygon, TArray< FVector > &OutEdges, FSharedConstNavQueryFilter Filter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:914
NAVIGATIONSYSTEM_API void RegisterAsNavAreaClassObserver()
virtual void BeginBatchQuery() const
Definition NavigationData.h:801
virtual void virtual BatchRaycast(TArray< FNavigationRaycastWork > &Workload, FSharedConstNavQueryFilter QueryFilter, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData boo FindMoveAlongSurface)(const FNavLocation &StartLocation, const FVector &TargetPosition, FNavLocation &OutLocation, FSharedConstNavQueryFilter Filter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:905
virtual bool GetRandomReachablePointInRadius(const FVector &Origin, float Radius, FNavLocation &OutResult, FSharedConstNavQueryFilter Filter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:931
virtual bool IsRebuildingSuspended() const
Definition NavigationData.h:727
uint16 GetNavDataUniqueID() const
Definition NavigationData.h:631
void SetSupportsDefaultAgent(bool bIsDefault)
Definition NavigationData.h:662
virtual bool GetRandomPointInNavigableRadius(const FVector &Origin, float Radius, FNavLocation &OutResult, FSharedConstNavQueryFilter Filter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:934
bool TestHierarchicalPath(const FNavAgentProperties &AgentProperties, const FPathFindingQuery &Query, int32 *NumVisitedNodes) const
Definition NavigationData.h:864
FPathFindingResult FindPath(const FNavAgentProperties &AgentProperties, const FPathFindingQuery &Query) const
Definition NavigationData.h:821
bool NeedsRebuildOnLoad() const
Definition NavigationData.h:675
bool CanBeMainNavData() const
Definition NavigationData.h:673
bool Raycast(const FVector &RayStart, const FVector &RayEnd, FVector &HitLocation, FNavigationRaycastAdditionalResults *AdditionalResults, FSharedConstNavQueryFilter QueryFilter, const UObject *Querier=NULL) const
Definition NavigationData.h:891
virtual void FillConfig(FNavDataConfig &Dest)
Definition NavigationData.h:678
virtual void OnStreamingNavDataAdded(class ANavigationDataChunkActor &InActor)
Definition NavigationData.h:641
virtual UPrimitiveComponent * ConstructRenderingComponent()
Definition NavigationData.h:1026
virtual void OnStreamingLevelAdded(ULevel *InLevel, UWorld *InWorld)
Definition NavigationData.h:644
virtual bool DoesNodeContainLocation(NavNodeRef NodeRef, const FVector &WorldSpaceLocation) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:967
bool Raycast(const FVector &RayStart, const FVector &RayEnd, FVector &HitLocation, FSharedConstNavQueryFilter QueryFilter, const UObject *Querier=NULL) const
Definition NavigationData.h:878
FVector GetDefaultQueryExtent() const
Definition NavigationData.h:811
ERuntimeGenerationType GetRuntimeGenerationMode() const
Definition NavigationData.h:656
virtual FNavLocation GetRandomPoint(FSharedConstNavQueryFilter Filter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:928
virtual void virtual BatchProjectPoints(TArray< FNavigationProjectionWork > &Workload, const FVector &Extent, FSharedConstNavQueryFilter Filter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData void virtual BatchProjectPoints(TArray< FNavigationProjectionWork > &Workload, FSharedConstNavQueryFilter Filter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData ENavigationQueryResult::Typ CalcPathCost)(const FVector &PathStart, const FVector &PathEnd, FVector::FReal &OutPathCost, FSharedConstNavQueryFilter QueryFilter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:953
FSharedConstNavQueryFilter GetDefaultQueryFilter() const
Definition NavigationData.h:809
virtual void FillNavigationDataChunkActor(const FBox &QueryBounds, class ANavigationDataChunkActor &DataChunkActor, FBox &OutTilesBounds) const
Definition NavigationData.h:640
virtual void RestrictBuildingToActiveTiles(bool InRestrictBuildingToActiveTiles)
Definition NavigationData.h:671
virtual bool GetPathSegmentBoundaryEdges(const FNavigationPath &Path, const FNavPathPoint &StartPoint, const FNavPathPoint &EndPoint, const TConstArrayView< FVector > SearchArea, TArray< FVector > &OutEdges, const float MaxAreaEnterCost, FSharedConstNavQueryFilter Filter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:926
FNavPathSharedPtr CreatePathInstance(const FPathFindingQueryData &QueryData) const
Definition NavigationData.h:743
const FNavAgentProperties & GetNavAgentProperties() const
Definition NavigationData.h:664
void SetNavAgentProperties(const FNavAgentProperties &InNavAgentProperties)
Definition NavigationData.h:1136
virtual FBox GetBounds() const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:778
virtual ENavigationQueryResult::Type CalcPathLengthAndCost(const FVector &PathStart, const FVector &PathEnd, FVector::FReal &OutPathLength, FVector::FReal &OutPathCost, FSharedConstNavQueryFilter QueryFilter=NULL, const UObject *Querier=NULL) const PURE_VIRTUAL(ANavigationData
Definition NavigationData.h:963
FPathFindingResult FindHierarchicalPath(const FNavAgentProperties &AgentProperties, const FPathFindingQuery &Query) const
Definition NavigationData.h:836
virtual int32 GetNumSuspendedDirtyAreas() const
Definition NavigationData.h:730
virtual int32 GetMaxSupportedAreas() const
Definition NavigationData.h:999
Definition Engine.Build.cs:7
Definition IDelegateInstance.h:14
Definition NavDataGenerator.h:16
Definition UnrealType.h:3087
Definition NavAgentInterface.h:20
Definition NavLinkCustomInterface.h:40
Definition NavigationDataInterface.h:26
Definition NavQueryFilter.h:10
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType & Last(SizeType IndexFromTheEnd=0) UE_LIFETIMEBOUND
Definition Array.h:1263
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition SubclassOf.h:30
Definition Canvas.h:159
Definition Class.h:3793
Definition Level.h:423
Definition NavArea.h:18
Definition NavigationQueryFilter.h:107
Definition Object.h:95
Definition World.h:918
Type
Definition EngineTypes.h:3431
Type
Definition NavigationTypes.h:629
@ Invalid
Definition NavigationTypes.h:630
@ Success
Definition NavigationTypes.h:633
@ Error
Definition NavigationTypes.h:631
Definition NavigationSystemTypes.h:85
Type
Definition NavigationSystemTypes.h:87
constexpr FVector InvalidLocation
Definition NavigationTypes.h:47
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition EngineBaseTypes.h:526
Definition NavigationData.h:1143
const uint32 QueryID
Definition NavigationData.h:1144
const FNavPathQueryDelegate OnDoneDelegate
Definition NavigationData.h:1145
const TEnumAsByte< EPathFindingMode::Type > Mode
Definition NavigationData.h:1146
static uint32 GetUniqueID()
Definition NavigationData.h:1158
static uint32 LastPathFindingUniqueID
Definition NavigationData.h:1163
FPathFindingResult Result
Definition NavigationData.h:1147
FAsyncPathFindingQuery()
Definition NavigationData.h:1149
Definition EngineTypes.h:1918
Definition Color.h:486
static constexpr UE_FORCEINLINE_HINT T Square(const T A)
Definition UnrealMathUtility.h:578
Definition NavigationTypes.h:453
Definition NavigationTypes.h:525
FVector DefaultQueryExtent
Definition NavigationTypes.h:538
Definition NavigationTypes.h:150
Definition NavigationTypes.h:252
FVector Location
Definition NavigationTypes.h:254
Definition NavigationTypes.h:276
Definition NavigationData.h:52
FNavPathWeakPtr Path
Definition NavigationData.h:53
FNavPathRecalculationRequest(const FNavPathSharedPtr &InPath, ENavPathUpdateType::Type InReason)
Definition NavigationData.h:56
ENavPathUpdateType::Type Reason
Definition NavigationData.h:54
bool operator==(const FNavPathRecalculationRequest &Other) const
Definition NavigationData.h:60
Definition NavigationTypes.h:316
bool IsA(const FNavPathType &Other) const
Definition NavigationTypes.h:324
Definition NavigationDirtyArea.h:25
Definition NavigationData.h:87
const UObject * GetQuerier() const
Definition NavigationData.h:182
void DoneUpdating(ENavPathUpdateType::Type UpdateType)
Definition NavigationData.h:236
uint32 bIsReady
Definition NavigationData.h:466
void SetQueryData(const FPathFindingQueryData &QueryData)
Definition NavigationData.h:186
FSharedConstNavQueryFilter Filter
Definition NavigationData.h:452
virtual FVector::FReal GetCostFromNode(NavNodeRef PathNode) const
Definition NavigationData.h:296
virtual NAVIGATIONSYSTEM_API FVector::FReal GetLengthFromPosition(FVector SegmentStart, uint32 NextPathPointIndex) const
Definition NavigationPath.cpp:251
virtual NAVIGATIONSYSTEM_API bool ContainsAnyCustomLink() const
Definition NavigationPath.cpp:289
virtual NAVIGATIONSYSTEM_API void DebugDraw(const ANavigationData *NavData, const FColor PathColor, class UCanvas *Canvas, const bool bPersistent, const float LifeTime, const uint32 NextPathPointIndex=0) const
Definition NavigationPath.cpp:197
double GetTimeStamp() const
Definition NavigationData.h:257
uint32 bObservingGoalActor
Definition NavigationData.h:505
uint32 bErrorEndLocationNonNavigable
Definition NavigationData.h:480
NAVIGATIONSYSTEM_API FVector GetGoalLocation() const
Definition NavigationPath.cpp:104
NAVIGATIONSYSTEM_API void UpdateLastRepathGoalLocation()
Definition NavigationPath.cpp:145
uint32 bUpToDate
Definition NavigationData.h:463
bool IsWaitingForRepath() const
Definition NavigationData.h:134
virtual NAVIGATIONSYSTEM_API void ResetForRepath()
Definition NavigationPath.cpp:192
FDelegateHandle AddObserver(FPathObserverDelegate::FDelegate NewObserver)
Definition NavigationData.h:158
virtual NAVIGATIONSYSTEM_API bool DoesIntersectBox(const FBox &Box, uint32 StartingIndex=0, int32 *IntersectingSegmentIndex=NULL, FVector *AgentExtent=NULL) const
Definition NavigationPath.cpp:337
uint32 bUseOnPathUpdatedNotify
Definition NavigationData.h:501
virtual NAVIGATIONSYSTEM_API FVector GetSegmentDirection(uint32 SegmentEndIndex) const
Definition NavigationPath.cpp:365
NAVIGATIONSYSTEM_API void RemoveOverlappingPoints(const FVector &Tolerance)
Definition NavigationData.cpp:157
PRAGMA_ENABLE_DEPRECATION_WARNINGS bool IsValid() const
Definition NavigationData.h:100
void SetErrorStartLocationNonNavigable(const bool bErrorNonNavigable)
Definition NavigationData.h:205
NAVIGATIONSYSTEM_API FNavigationPath()
Definition NavigationPath.cpp:26
void SetGoalActorTetherDistance(const float NewTetherDistace)
Definition NavigationData.h:371
FVector GetDestinationLocation() const
Definition NavigationData.h:150
virtual NAVIGATIONSYSTEM_API bool ContainsNode(NavNodeRef NodeRef) const
Definition NavigationPath.cpp:238
void SetTimeStamp(double TimeStamp)
Definition NavigationData.h:258
uint32 bUpdateEndPointOnRepath
Definition NavigationData.h:495
uint32 bErrorStartLocationNonNavigable
Definition NavigationData.h:477
void SetIgnoreInvalidation(bool bShouldIgnore)
Definition NavigationData.h:397
const PathClass * CastPath() const
Definition NavigationData.h:357
virtual bool ContainsCustomLink(uint32 UniqueLinkId) const final
Definition NavigationData.h:279
PathClass * CastPath()
Definition NavigationData.h:363
bool IsPartial() const
Definition NavigationData.h:112
ANavigationData * GetNavigationDataUsed() const
Definition NavigationData.h:174
DECLARE_MULTICAST_DELEGATE_TwoParams(FPathObserverDelegate, FNavigationPath *, ENavPathEvent::Type)
FPathObserverDelegate & GetObserver()
Definition NavigationData.h:154
uint32 bIgnoreInvalidation
Definition NavigationData.h:489
float GetGoalActorTetherDistance() const
Definition NavigationData.h:384
virtual NAVIGATIONSYSTEM_API ~FNavigationPath()
FSharedConstNavQueryFilter GetFilter() const
Definition NavigationData.h:218
const AActor * GetGoalActor() const
Definition NavigationData.h:408
uint32 bUpdateStartPointOnRepath
Definition NavigationData.h:492
const INavAgentInterface * GetGoalActorAsNavAgent() const
Definition NavigationData.h:412
FVector::FReal GetLength() const
Definition NavigationData.h:309
NAVIGATIONSYSTEM_API void RePathFailed()
Definition NavigationPath.cpp:186
NAVIGATIONSYSTEM_API FVector GetPathFindingStartLocation() const
Definition NavigationPath.cpp:109
PRAGMA_DISABLE_DEPRECATION_WARNINGS FNavigationPath(const FNavigationPath &)=default
AActor * GetBaseActor() const
Definition NavigationData.h:222
double LastUpdateTimeStamp
Definition NavigationData.h:514
FNavigationPath & operator=(const FNavigationPath &Other)=default
TWeakObjectPtr< AActor > Base
Definition NavigationData.h:433
NAVIGATIONSYSTEM_API void SetGoalActorObservation(const AActor &ActorToObserve, float TetherDistance)
Definition NavigationPath.cpp:114
double GetLastUpdateTime() const
Definition NavigationData.h:383
bool WillRecalculateOnInvalidation() const
Definition NavigationData.h:391
uint32 bReachedSearchLimit
Definition NavigationData.h:474
FVector GetStartLocation() const
Definition NavigationData.h:227
bool GetIgnoreInvalidation() const
Definition NavigationData.h:398
TWeakObjectPtr< ANavigationData > NavigationDataUsed
Definition NavigationData.h:508
bool DidSearchReachedLimit() const
Definition NavigationData.h:116
NAVIGATIONSYSTEM_API void DisableGoalActorObservation()
Definition NavigationPath.cpp:164
NAVIGATIONSYSTEM_API void Invalidate()
Definition NavigationPath.cpp:172
uint32 bDoAutoUpdateOnInvalidation
Definition NavigationData.h:483
NAVIGATIONSYSTEM_API EPathObservationResult::Type TickPathObservation()
Definition NavigationPath.cpp:153
bool ShouldUpdateEndPointOnRepath() const
Definition NavigationData.h:146
void SetFilter(FSharedConstNavQueryFilter InFilter)
Definition NavigationData.h:213
void EnableRecalculationOnInvalidation(bool bShouldAutoUpdate)
Definition NavigationData.h:387
void RemoveObserver(FDelegateHandle HandleOfObserverToRemove)
Definition NavigationData.h:162
FVector GetLastRepathGoalLocation() const
Definition NavigationData.h:380
bool IsUpToDate() const
Definition NavigationData.h:104
void SetQuerier(const UObject *InQuerier)
Definition NavigationData.h:178
TArray< FNavPathPoint > PathPoints
Definition NavigationData.h:430
FPathFindingQueryData GetQueryData() const
Definition NavigationData.h:190
bool ShouldUpdateStartPointOnRepath() const
Definition NavigationData.h:142
const INavAgentInterface * GetSourceActorAsNavAgent() const
Definition NavigationData.h:378
static bool GetPathPoint(const FNavigationPath *Path, uint32 PathVertIdx, FNavPathPoint &PathPoint)
Definition NavigationData.h:314
void SetIsPartial(const bool bPartial)
Definition NavigationData.h:197
NAVIGATIONSYSTEM_API void SetSourceActor(const AActor &InSourceActor)
Definition NavigationPath.cpp:139
bool IsReady() const
Definition NavigationData.h:108
const TArray< FNavPathPoint > & GetPathPoints() const
Definition NavigationData.h:325
virtual FVector::FReal GetCostFromIndex(int32 PathPointIndex) const
Definition NavigationData.h:290
TArray< NavNodeRef > ShortcutNodeRefs
Definition NavigationData.h:419
FPathFindingQueryData PathFindingQueryData
Definition NavigationData.h:511
bool IsErrorEndLocationNonNavigable() const
Definition NavigationData.h:130
FPathObserverDelegate ObserverDelegate
Definition NavigationData.h:460
void SetErrorEndLocationNonNavigable(const bool bErrorNonNavigable)
Definition NavigationData.h:209
TArray< FNavPathPoint > & GetPathPoints()
Definition NavigationData.h:329
void SetNavigationDataUsed(const ANavigationData *const NewData)
Definition NavigationData.h:1171
bool IsErrorStartLocationNonNavigable() const
Definition NavigationData.h:123
FNavPathType PathType
Definition NavigationData.h:457
FVector::FReal GetCost() const
Definition NavigationData.h:301
void MarkReady()
Definition NavigationData.h:167
virtual void OnPathUpdated(ENavPathUpdateType::Type UpdateType)
Definition NavigationData.h:424
const AActor * GetSourceActor() const
Definition NavigationData.h:377
FVector GetEndLocation() const
Definition NavigationData.h:231
uint32 bWaitingForRepath
Definition NavigationData.h:498
uint32 bIsPartial
Definition NavigationData.h:469
void SetSearchReachedLimit(const bool bLimited)
Definition NavigationData.h:201
NAVIGATIONSYSTEM_API FBasedPosition GetPathPointLocation(uint32 Index) const
Definition NavigationPath.cpp:394
static NAVIGATIONSYSTEM_API const FNavPathType Type
Definition NavigationData.h:455
void SetManualRepathWaiting(const bool bInWaitingForRepath)
Definition NavigationData.h:138
Definition NavigationData.h:79
bool bIsRayEndInCorridor
Definition NavigationData.h:83
Definition NavigationSystemTypes.h:37
FVector::FReal CostLimit
Definition NavigationSystemTypes.h:44
FSharedConstNavQueryFilter QueryFilter
Definition NavigationSystemTypes.h:41
TWeakObjectPtr< const UObject > Owner
Definition NavigationSystemTypes.h:38
Definition NavigationSystemTypes.h:62
Definition NavigationData.h:64
bool IsSuccessful() const
Definition NavigationData.h:71
ENavigationQueryResult::Type Result
Definition NavigationData.h:66
FPathFindingResult(ENavigationQueryResult::Type InResult=ENavigationQueryResult::Invalid)
Definition NavigationData.h:68
bool IsPartial() const
Definition NavigationData.h:1166
FNavPathSharedPtr Path
Definition NavigationData.h:65
Definition NavigationData.h:36
Definition VisualLoggerTypes.h:205
Definition NumericLimits.h:41
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25
FORCEINLINE T * Get(bool bEvenIfPendingKill) const
Definition WeakObjectPtrTemplates.h:132
FORCEINLINE bool IsValid(bool bEvenIfPendingKill, bool bThreadsafeTest=false) const
Definition WeakObjectPtrTemplates.h:232
double FReal
Definition Vector.h:55