UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NavigationTypes.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "UObject/Object.h"
7#include "UObject/Class.h"
9#include "Misc/CoreStats.h"
11#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
12#include "GameFramework/Actor.h"
14#endif // UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
15#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_5
16#include "NavigationDirtyArea.h"
17#endif //UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_5
18#include "NavigationTypes.generated.h"
19
20#define INVALID_NAVQUERYID uint32(0)
21#define INVALID_NAVDATA uint32(0)
22#define INVALID_NAVEXTENT (FVector::ZeroVector)
23
24#define DEFAULT_NAV_QUERY_EXTENT_HORIZONTAL 50.f
25#define DEFAULT_NAV_QUERY_EXTENT_VERTICAL 250.f
26
27class AActor;
30class ULevel;
31struct FNavigationPath;
32
35#define INVALID_NAVNODEREF NavNodeRef(0)
36
38{
40 extern ENGINE_API const float FallbackAgentRadius;
41
43 extern ENGINE_API const float FallbackAgentHeight;
44
46
48
50 {
52 }
53
54 inline bool BoxesAreSame(const FBox& A, const FBox& B)
55 {
56 return FVector::PointsAreSame(A.Min, B.Min) && FVector::PointsAreSame(A.Max, B.Max);
57 }
58
61
64}
65
66UENUM()
68{
69 Default,
70 Enable UMETA(DisplayName = "Yes"), // UHT was complaining when tried to use True as value instead of Enable
71 Disable UMETA(DisplayName = "No"),
73};
74
76// Navigation data generation
77
78UENUM()
85
86UENUM()
93
94//
95// Used to gather per instance transforms in a specific area
96//
98
99/*
100 * There should be one of these Ids generated and stored per Actor or Component that inherits from INavLinkCustomInterface. Primarily
101 * its a way of differentiating between Components that inherit from INavLinkCustomInterface as the ActorInstanceGuid
102 * alone can not do this.See UNavLinkCustomComponent as an example. For Level Instances these will be different for each component in an actor but repeated
103 * in repeated Level Instances.FNavLinkId::GenerateUniqueId() uses this to make the UniqueId
104 */
105USTRUCT()
107{
109
111
112 uint64 GetId() const
113 {
114 return Id;
115 }
116
117 bool operator==(const FNavLinkAuxiliaryId& Other) const { return Id == Other.Id; }
118 bool operator!=(const FNavLinkAuxiliaryId& Other) const { return !this->operator==(Other); }
119
120
121 UE_DEPRECATED(5.4, "This function is not deterministic in all instances during cooking. Use the version which takes PathName.")
122 static ENGINE_API FNavLinkAuxiliaryId GenerateUniqueAuxiliaryId();
123
127 static ENGINE_API FNavLinkAuxiliaryId GenerateUniqueAuxiliaryId(FStringView PathName);
128
129private:
131 : Id(InId)
132 {}
133
134public:
136
137private:
138 UPROPERTY()
139 uint64 Id = InvalidLinkId;
140
141 static constexpr uint64 InvalidLinkId = 0;
142};
143
148USTRUCT()
150{
152
153 FNavLinkId() = default;
154
156 : Id(InId)
157 {}
158
159 bool IsValid() const
160 {
161 return Id != InvalidLinkId;
162 }
163
164 bool operator==(const FNavLinkId& Other) const
165 {
166 return Id == Other.Id;
167 }
168
169
170 bool operator!=(const FNavLinkId& Other) const
171 {
172 return !this->operator==(Other);
173 }
174
175 uint64 GetId() const
176 {
177 return Id;
178 }
179
181 {
182 Id = InId;
183 }
184
191 bool IsLegacyId() const
192 {
193 return (Id & NavLinkIdBitMask) == 0;
194 }
195
199 static ENGINE_API FNavLinkId GenerateUniqueId();
200
204 static ENGINE_API FNavLinkId GenerateUniqueId(FNavLinkAuxiliaryId AuxiliaryId, FGuid ActorInstanceGuid);
205
206 friend inline uint32 GetTypeHash(FNavLinkId const& Value)
207 {
208 return GetTypeHash(Value.GetId());
209 }
210
211public:
213
214private:
215 UPROPERTY()
216 uint64 Id = InvalidLinkId;
217
218 static constexpr uint64 InvalidLinkId = 0;
219 static constexpr uint64 NavLinkIdBitMask = 1ULL << 63; // Newer non incremental 64 bit NavLinkIds will have a 1 in the most significant bit.
220};
221
222
224// Path
225
227{
231
233 {}
234
238
239 inline FVector GetPoint(const int32 Index) const
240 {
241 check(Index >= 0 && Index < 2);
242 return ((FVector*)&Left)[Index];
243 }
244
245 inline FVector::FReal GetLength() const { return FVector::Dist(Left, Right); }
246
247 inline FVector GetMiddlePoint() const { return Left + (Right - Left) / 2; }
248};
249
252{
255
258
262
264 inline bool HasNodeRef() const { return NodeRef != INVALID_NAVNODEREF; }
265
266 inline operator FVector() const { return Location; }
267
268 bool operator==(const FNavLocation& Other) const
269 {
270 return Location == Other.Location && NodeRef == Other.NodeRef;
271 }
272};
273
313
316{
317 explicit FNavPathType(const FNavPathType* Parent = nullptr) : Id(++NextUniqueId), ParentType(Parent) {}
318
319 bool operator==(const FNavPathType& Other) const
320 {
321 return Id == Other.Id || (ParentType != nullptr && *ParentType == Other);
322 }
323
324 bool IsA(const FNavPathType& Other) const
325 {
326 return (Id == Other.Id) || (ParentType && ParentType->IsA(Other));
327 }
328
329private:
330 static ENGINE_API uint32 NextUniqueId;
331 uint32 Id;
332 const FNavPathType* ParentType;
333};
334
335UENUM()
337{
338 enum Type : int
339 {
340 Cleared,
341 NewPath,
342 UpdatedDueToGoalMoved,
343 UpdatedDueToNavigationChanged,
344 Invalidated,
345 RePathFailed,
346 MetaPathUpdate,
347 Custom,
348 };
349}
350
352{
353 enum Type
354 {
355 GoalMoved,
356 NavigationChanged,
357 MetaPathUpdate,
358 Custom,
359 };
360}
361
363{
364 enum Type
365 {
366 NoLongerObserving,
367 NoChange,
368 RequestRepath,
369 };
370}
371
373{
374 enum Type
375 {
376 Registered,
377 Unregistered
378 };
379}
380
384
386USTRUCT(BlueprintType)
388{
390
391
392 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=MovementProperties)
393 uint8 bCanCrouch:1;
394
396 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=MovementProperties)
397 uint8 bCanJump:1;
398
400 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=MovementProperties)
401 uint8 bCanWalk:1;
402
404 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=MovementProperties)
405 uint8 bCanSwim:1;
406
408 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=MovementProperties)
409 uint8 bCanFly:1;
410
412 : bCanCrouch(false)
413 , bCanJump(false)
414 , bCanWalk(false)
415 , bCanSwim(false)
416 , bCanFly(false)
417 {
418 }
419};
420
424USTRUCT(BlueprintType)
426{
428
429
430 UPROPERTY(EditAnywhere, Category = NavMovement, meta = (EditCondition = "bUseFixedBrakingDistanceForPaths"))
431 float FixedPathBrakingDistance = 0;
432
434 UPROPERTY(EditAnywhere, Category = NavMovement)
435 bool bUpdateNavAgentWithOwnersCollision = true;
436
438 UPROPERTY(EditAnywhere, Category = NavMovement, GlobalConfig)
439 bool bUseAccelerationForPaths = false;
440
442 UPROPERTY(EditAnywhere, Category = NavMovement, meta = (EditCondition = "bUseAccelerationForPaths"))
443 bool bUseFixedBrakingDistanceForPaths = false;
444
446 UPROPERTY(EditAnywhere, Category = NavMovement)
447 bool bStopMovementAbortPaths = true;
448};
449
451USTRUCT(BlueprintType)
453{
455
456
457 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=MovementProperties, meta=(DisplayName="Nav Agent Radius"))
458 float AgentRadius;
459
461 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=MovementProperties, meta=(DisplayName="Nav Agent Height"))
462 float AgentHeight;
463
465 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=MovementProperties, meta=(DisplayName="Nav Agent Step Height"))
466 float AgentStepHeight;
467
469 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=MovementProperties)
470 float NavWalkingSearchHeightScale;
471
473 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=MovementProperties, meta=(MetaClass = "/Script/NavigationSystem.NavigationData"))
474 FSoftClassPath PreferredNavData;
475
476 FNavAgentProperties(float Radius = -1.f, float Height = -1.f)
477 : AgentRadius(Radius), AgentHeight(Height), AgentStepHeight(-1), NavWalkingSearchHeightScale(0.5f)
478 {}
479
482
483 ENGINE_API void UpdateWithCollisionComponent(class UShapeComponent* CollisionComponent);
484
485 inline bool IsValid() const { return AgentRadius >= 0.f && AgentHeight >= 0.f; }
486 inline bool HasStepHeightOverride() const { return AgentStepHeight >= 0.0f; }
487
488 ENGINE_API bool IsNavDataMatching(const FNavAgentProperties& Other) const;
489
490 inline bool IsEquivalent(const FNavAgentProperties& Other, float Precision = 5.f) const
491 {
492 return FGenericPlatformMath::Abs(AgentRadius - Other.AgentRadius) < Precision
493 && FGenericPlatformMath::Abs(AgentHeight - Other.AgentHeight) < Precision
494 && ((HasStepHeightOverride() == false)
495 || (Other.HasStepHeightOverride() == false)
496 || FGenericPlatformMath::Abs(AgentStepHeight - Other.AgentStepHeight) < Precision)
497 && IsNavDataMatching(Other);
498 }
499
501 {
502 return IsEquivalent(Other);
503 }
504
506 {
507 return IsValid()
508 ? FVector(AgentRadius, AgentRadius, AgentHeight / 2)
510 }
511
512 ENGINE_API void SetPreferredNavData(TSubclassOf<AActor> NavDataClass);
513
515
517 {
518 return ((int16(A.AgentRadius) << 16) | int16(A.AgentHeight)) ^ int32(A.AgentStepHeight);
519 }
520};
521
523USTRUCT(BlueprintType)
525{
527
528
529 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Display)
531
533 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Display)
535
537 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Querying)
538 FVector DefaultQueryExtent;
539
542 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Navigation, meta = (MetaClass = "/Script/NavigationSystem.NavigationData"))
543 TSoftClassPtr<AActor> NavDataClass;
544
545public:
546 ENGINE_API FNavDataConfig(float Radius = FNavigationSystem::FallbackAgentRadius, float Height = FNavigationSystem::FallbackAgentHeight);
547
550
551 ENGINE_API bool IsValid() const;
552 ENGINE_API void Invalidate();
553
554 ENGINE_API void SetNavDataClass(UClass* InNavDataClass);
555 ENGINE_API void SetNavDataClass(TSoftClassPtr<AActor> InNavDataClass);
556
558 TSubclassOf<T> GetNavDataClass() const { return TSubclassOf<T>(NavDataClass.Get()); }
559
560 ENGINE_API FString GetDescription() const;
561
562#if WITH_EDITOR
564 {
567 }
568#endif // WITH_EDITOR
569};
571
573{
574 // source point
576
577 // projection range
579
580 // result point with nav Id
582
583 // if set, projection function scoring will be biased for 2D work (e.g. in case of navmesh, findNearestPoly2D)
585
586 // result of projection function. 'true' means nav projection was successful
587 // and OutLocation contains Point projected to the nav data's surface
589
590 // if set, data in this structure is valid
592
596
600};
601
610
624
625UENUM()
627{
628 enum Type : int
629 {
633 Success
634 };
635}
636
646
648// Memory stating
649
651{
652#if STATS
653 // @todo could be made a more generic solution
655 {
656 public:
657 typedef FDefaultAllocator Super;
658
659 class ForAnyElementType : public FDefaultAllocator::ForAnyElementType
660 {
661 public:
663 private:
664 int64 AllocatedSize;
665 public:
666
667 ForAnyElementType()
668 : AllocatedSize(0)
669 {
670
671 }
672
674 ~ForAnyElementType()
675 {
676 if (AllocatedSize)
677 {
679 }
680 }
681
682 inline void ResizeAllocation(int32 PreviousNumElements, int32 NumElements, int32 NumBytesPerElement, uint32 AlignmentOfElement)
683 {
684 // Maintain existing behavior, call the default aligned version of this function.
685 // We currently rely on this as we are often storing actual structs into uint8's here.
686 ResizeAllocation(PreviousNumElements, NumElements, NumBytesPerElement);
687 }
688
689 inline void ResizeAllocation(SizeType PreviousNumElements, SizeType NumElements, SIZE_T NumBytesPerElement)
690 {
691 const int64 NewSize = NumElements * NumBytesPerElement;
692 INC_DWORD_STAT_BY(STAT_NavigationMemory, NewSize - AllocatedSize);
693 AllocatedSize = NewSize;
694
695 Super::ResizeAllocation(PreviousNumElements, NumElements, NumBytesPerElement);
696 }
697
698 private:
699 ForAnyElementType(const ForAnyElementType&);
700 ForAnyElementType& operator=(const ForAnyElementType&);
701 };
702
703 template<typename ElementType>
704 class ForElementType : public ForAnyElementType
705 {
706 public:
707 ElementType* GetAllocation() const
708 {
709 return (ElementType*)ForAnyElementType::GetAllocation();
710 }
711 };
712 };
713
715#else
717#endif
718}
719
720#if STATS
721
722template <>
723struct TAllocatorTraits<NavMeshMemory::FNavigationMemoryStat> : TAllocatorTraits<NavMeshMemory::FNavigationMemoryStat::Super>
724{
725};
726
727#endif
728
729template<typename InElementType>
730class TNavStatArray : public TArray<InElementType, NavMeshMemory::FNavAllocator>
731{
732public:
734};
735
736
737//----------------------------------------------------------------------//
738// generic "landscape" support
739//----------------------------------------------------------------------//
#define check(expr)
Definition AssertionMacros.h:314
#define GET_MEMBER_NAME_CHECKED(ClassName, MemberName)
Definition AssertionMacros.h:493
@ ForceInit
Definition CoreMiscDefines.h:155
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
#define DEC_DWORD_STAT_BY(StatId, Amount)
Definition Stats.h:703
#define INC_DWORD_STAT_BY(StatId, Amount)
Definition Stats.h:698
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
#define DECLARE_DELEGATE_ThreeParams(DelegateName, Param1Type, Param2Type, Param3Type)
Definition DelegateCombinations.h:66
DIRECTLINK_API Display
Definition DirectLinkLog.h:8
return true
Definition ExternalRpcRegistry.cpp:601
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define FVector
Definition IOSSystemIncludes.h:8
UE::Math::TBox< double > FBox
Definition MathFwd.h:55
ENavigationSortPendingTilesMethod
Definition NavigationTypes.h:88
uint64 NavNodeRef
Definition NavigationTypes.h:34
#define INVALID_NAVEXTENT
Definition NavigationTypes.h:22
#define INVALID_NAVNODEREF
Definition NavigationTypes.h:35
TWeakPtr< struct FNavigationPath, ESPMode::ThreadSafe > FNavPathWeakPtr
Definition NavigationTypes.h:383
ENavigationOptionFlag
Definition NavigationTypes.h:68
TSharedPtr< struct FNavigationPath, ESPMode::ThreadSafe > FNavPathSharedPtr
Definition NavigationTypes.h:382
ENavDataGatheringModeConfig
Definition NavigationTypes.h:80
TSharedRef< struct FNavigationPath, ESPMode::ThreadSafe > FNavPathSharedRef
Definition NavigationTypes.h:381
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
void * GetAllocation(void *Target, uint32 Size, uint32 Offset, uint32 Alignment=16)
Definition OpenGLBuffer.cpp:57
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition NameTypes.h:617
Definition NavAgentInterface.h:20
Definition NavRelevantInterface.h:49
Definition Array.h:670
UE_REWRITE bool IsEmpty() const
Definition Array.h:1133
bool IsEmpty() const
Definition BitArray.h:1461
Definition NavigationTypes.h:731
TArray< InElementType, NavMeshMemory::FNavAllocator > Super
Definition NavigationTypes.h:733
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition ContainerAllocationPolicies.h:830
Definition ContainerAllocationPolicies.h:631
Definition SoftObjectPtr.h:763
Definition SubclassOf.h:30
Definition SharedPointer.h:1295
Definition Class.h:3793
Definition Level.h:423
Definition Object.h:95
Definition NavigationTypes.h:373
Definition NavigationTypes.h:337
Definition NavigationTypes.h:352
Definition NavigationTypes.h:627
Type
Definition NavigationTypes.h:629
Definition NavigationTypes.h:363
Definition NavigationTypes.h:38
ENGINE_API const float FallbackAgentHeight
Definition NavigationTypes.cpp:27
ENGINE_API const float FallbackAgentRadius
Definition NavigationTypes.cpp:26
constexpr FBox InvalidBoundingBox(ForceInit, UE::Math::TBoxConstInit{})
constexpr FVector InvalidLocation
Definition NavigationTypes.h:47
ENGINE_API bool IsInBaseNavmesh(const UObject *Object)
Definition NavigationTypes.cpp:50
bool IsValidLocation(const FVector &TestLocation)
Definition NavigationTypes.h:49
bool BoxesAreSame(const FBox &A, const FBox &B)
Definition NavigationTypes.h:54
ENGINE_API bool IsLevelVisibilityChanging(const UObject *Object)
Definition NavigationTypes.cpp:29
Definition NavigationTypes.h:651
FDefaultAllocator FNavAllocator
Definition NavigationTypes.h:716
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition Color.h:486
static constexpr UE_FORCEINLINE_HINT T Abs(const T A)
Definition GenericPlatformMath.h:949
Definition Guid.h:109
Definition NavigationTypes.h:388
Definition NavigationTypes.h:453
bool IsEquivalent(const FNavAgentProperties &Other, float Precision=5.f) const
Definition NavigationTypes.h:490
friend uint32 GetTypeHash(const FNavAgentProperties &A)
Definition NavigationTypes.h:516
bool IsValid() const
Definition NavigationTypes.h:485
ENGINE_API FNavAgentProperties(const FNavAgentProperties &Other)
ENGINE_API FNavAgentProperties & operator=(const FNavAgentProperties &Other)
bool operator==(const FNavAgentProperties &Other) const
Definition NavigationTypes.h:500
bool HasStepHeightOverride() const
Definition NavigationTypes.h:486
static ENGINE_API const FNavAgentProperties DefaultProperties
Definition NavigationTypes.h:514
FVector GetExtent() const
Definition NavigationTypes.h:505
Definition NavigationTypes.h:525
Definition NavigationTypes.h:741
TBitArray Holes
Definition NavigationTypes.h:743
ENGINE_API void Empty()
Definition NavigationTypes.cpp:404
bool IsEmpty() const
Definition NavigationTypes.h:749
TNavStatArray< int16 > Heights
Definition NavigationTypes.h:742
ENGINE_API void GetResourceSizeEx(FResourceSizeEx &CumulativeResourceSize)
Definition NavigationTypes.cpp:399
ENGINE_API FNavHeightfieldSamples()
Definition NavigationTypes.cpp:395
Definition NavigationTypes.h:107
static ENGINE_API const FNavLinkAuxiliaryId Invalid
Definition NavigationTypes.h:135
bool operator!=(const FNavLinkAuxiliaryId &Other) const
Definition NavigationTypes.h:118
bool operator==(const FNavLinkAuxiliaryId &Other) const
Definition NavigationTypes.h:117
Definition NavigationTypes.h:150
uint64 GetId() const
Definition NavigationTypes.h:175
bool IsValid() const
Definition NavigationTypes.h:159
bool IsLegacyId() const
Definition NavigationTypes.h:191
bool operator==(const FNavLinkId &Other) const
Definition NavigationTypes.h:164
friend uint32 GetTypeHash(FNavLinkId const &Value)
Definition NavigationTypes.h:206
bool operator!=(const FNavLinkId &Other) const
Definition NavigationTypes.h:170
void SetId(uint64 InId)
Definition NavigationTypes.h:180
static ENGINE_API const FNavLinkId Invalid
Definition NavigationTypes.h:212
Definition NavigationTypes.h:252
bool operator==(const FNavLocation &Other) const
Definition NavigationTypes.h:268
FVector Location
Definition NavigationTypes.h:254
bool HasNodeRef() const
Definition NavigationTypes.h:264
FNavLocation()
Definition NavigationTypes.h:259
NavNodeRef NodeRef
Definition NavigationTypes.h:257
FNavLocation(const FVector &InLocation, NavNodeRef InNodeRef=INVALID_NAVNODEREF)
Definition NavigationTypes.h:260
Definition NavigationTypes.h:426
Definition NavigationTypes.h:276
FNavLinkId CustomNavLinkId
Definition NavigationTypes.h:284
FNavPathPoint & operator=(FNavPathPoint &&Other)=default
PRAGMA_ENABLE_DEPRECATION_WARNINGS bool operator==(const FNavPathPoint &Other) const
Definition NavigationTypes.h:308
PRAGMA_DISABLE_DEPRECATION_WARNINGS FNavPathPoint(const FNavPathPoint &)=default
FNavPathPoint & operator=(const FNavPathPoint &Other)=default
FNavPathPoint(const FVector &InLocation, NavNodeRef InNodeRef=INVALID_NAVNODEREF, uint32 InFlags=0)
Definition NavigationTypes.h:293
uint32 CustomLinkId
Definition NavigationTypes.h:281
FNavPathPoint(FNavPathPoint &&Other)=default
uint32 Flags
Definition NavigationTypes.h:278
Definition NavigationTypes.h:316
bool IsA(const FNavPathType &Other) const
Definition NavigationTypes.h:324
FNavPathType(const FNavPathType *Parent=nullptr)
Definition NavigationTypes.h:317
bool operator==(const FNavPathType &Other) const
Definition NavigationTypes.h:319
Definition NavigationData.h:87
Definition NavigationTypes.h:227
FNavigationPortalEdge()
Definition NavigationTypes.h:232
FNavigationPortalEdge(const FVector &InLeft, const FVector &InRight, NavNodeRef InToRef)
Definition NavigationTypes.h:235
FVector Left
Definition NavigationTypes.h:228
FVector GetPoint(const int32 Index) const
Definition NavigationTypes.h:239
FVector GetMiddlePoint() const
Definition NavigationTypes.h:247
FVector Right
Definition NavigationTypes.h:229
NavNodeRef ToRef
Definition NavigationTypes.h:230
FVector::FReal GetLength() const
Definition NavigationTypes.h:245
Definition NavigationTypes.h:573
FNavLocation OutLocation
Definition NavigationTypes.h:581
uint32 bIsValid
Definition NavigationTypes.h:591
FNavigationProjectionWork()
Definition NavigationTypes.h:597
FNavigationProjectionWork(const FVector &StartPoint, const FBox &CustomProjectionLimits=FBox(ForceInit))
Definition NavigationTypes.h:593
uint32 bHintProjection2D
Definition NavigationTypes.h:584
const FVector Point
Definition NavigationTypes.h:575
FBox ProjectionLimit
Definition NavigationTypes.h:578
uint32 bResult
Definition NavigationTypes.h:588
Definition NavigationTypes.h:612
FNavigationRaycastWork(const FVector &InRayStart, const FVector &InRayEnd)
Definition NavigationTypes.h:620
FNavLocation HitLocation
Definition NavigationTypes.h:614
bool bIsRayEndInCorridor
Definition NavigationTypes.h:618
bool bDidHit
Definition NavigationTypes.h:615
Definition NavigationTypes.h:603
const FVector RayEnd
Definition NavigationTypes.h:605
FRayStartEnd(const FVector &InRayStart=FNavigationSystem::InvalidLocation, const FVector &InRayEnd=FNavigationSystem::InvalidLocation)
Definition NavigationTypes.h:606
const FVector RayStart
Definition NavigationTypes.h:604
Definition ResourceSize.h:31
Definition SoftObjectPath.h:539
Definition ContainerAllocationPolicies.h:256
Definition NumericLimits.h:41
Definition Box.h:31
Definition Vector.h:44
static bool PointsAreSame(const TVector< double > &P, const TVector< double > &Q)
Definition Vector.h:1368
double FReal
Definition Vector.h:55
static UE_FORCEINLINE_HINT double Dist(const TVector< double > &V1, const TVector< double > &V2)
Definition Vector.h:2466