5#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
15class UPrimitiveComponent;
114 UE_DEPRECATED(5.0,
"FAreaNavModifier constructor with a UBrushComponent* parameter has been deprecated since it wasn't able to handle concave shapes. Use FCompositeNavModifier::CreateAreaModifiers instead")
184 UE_DEPRECATED(5.3,
"Use NavLinkId instead, this id is no longer used in the engine.")
281 : bHasPotentialLinks(
false)
282 , bAdjustHeight(
false)
283 , bHasLowAreaModifiers(
false)
284 , bIsPerInstanceModifier(
false)
285 , bFillCollisionUnderneathForNavmesh(
false)
286 , bMaskFillCollisionUnderneathForNavmesh(
false)
287 , bRasterizeAsFilledConvexVolume(
false)
297 return (Areas.
Num() == 0) && (SimpleLinks.
Num() == 0) && (CustomLinks.
Num() == 0) &&
298 !bFillCollisionUnderneathForNavmesh &&
299 !bMaskFillCollisionUnderneathForNavmesh &&
300 !bRasterizeAsFilledConvexVolume &&
314 bAdjustHeight |=
Area.ShouldIncludeAgentHeight();
315 bHasLowAreaModifiers |=
Area.IsLowAreaModifier();
332 Areas.
Append(Modifiers.Areas);
333 SimpleLinks.
Append(Modifiers.SimpleLinks);
334 CustomLinks.
Append(Modifiers.CustomLinks);
354 inline bool HasLinks()
const {
return (SimpleLinks.
Num() > 0) || (CustomLinks.
Num() > 0); }
375 UE_DEPRECATED(5.5,
"Use the version taking a const reference instead.")
396 uint32 bHasPotentialLinks : 1;
398 uint32 bHasLowAreaModifiers : 1;
399 uint32 bIsPerInstanceModifier : 1;
400 uint32 bFillCollisionUnderneathForNavmesh : 1;
401 uint32 bMaskFillCollisionUnderneathForNavmesh : 1;
402 uint32 bRasterizeAsFilledConvexVolume : 1;
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
ENavigationDataResolution
Definition NavigationDataResolution.h:9
ENGINE_API FString LexToString(ENavigationShapeType::Type Type)
Definition NavigationModifier.cpp:296
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_REWRITE bool IsEmpty() const
Definition Array.h:1133
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
void Append(const TArray< OtherElementType, OtherAllocatorType > &Source)
Definition Array.h:2412
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition EnumAsByte.h:22
Definition NavigationTypes.h:731
Definition SubclassOf.h:30
Definition NavAreaBase.h:14
Definition NavigationModifier.h:45
Type
Definition NavigationModifier.h:47
@ ApplyInLowPass
Definition NavigationModifier.h:56
@ Replace
Definition NavigationModifier.h:52
@ Apply
Definition NavigationModifier.h:49
@ ReplaceInLowPass
Definition NavigationModifier.h:60
Definition NavigationModifier.h:67
Type
Definition NavigationModifier.h:69
@ Unreal
Definition NavigationModifier.h:70
@ MAX
Definition NavigationModifier.h:73
@ Navigation
Definition NavigationModifier.h:71
Definition NavigationModifier.h:31
Type
Definition NavigationModifier.h:33
@ InstancedConvex
Definition NavigationModifier.h:38
@ Convex
Definition NavigationModifier.h:37
@ Unknown
Definition NavigationModifier.h:34
@ Cylinder
Definition NavigationModifier.h:35
@ Box
Definition NavigationModifier.h:36
@ false
Definition radaudio_common.h:23
Definition NavigationModifier.h:101
ENGINE_API void GetPerInstanceConvex(const FTransform &InLocalToWorld, FConvexNavAreaData &OutData) const
Definition NavigationModifier.cpp:455
ENGINE_API void GetConvex(FConvexNavAreaData &Data) const
Definition NavigationModifier.cpp:446
float Cost
Definition NavigationModifier.h:103
bool IsLowAreaModifier() const
Definition NavigationModifier.h:123
ENavigationShapeType::Type GetShapeType() const
Definition NavigationModifier.h:121
ENGINE_API void GetBox(FBoxNavAreaData &Data) const
Definition NavigationModifier.cpp:439
bool ShouldExpandTopByCellHeight() const
Definition NavigationModifier.h:124
ENGINE_API void SetAreaClassToReplace(const TSubclassOf< UNavAreaBase > AreaClass)
Definition NavigationModifier.cpp:490
TEnumAsByte< ENavigationShapeType::Type > ShapeType
Definition NavigationModifier.h:152
ENGINE_API void GetCylinder(FCylinderNavAreaData &Data) const
Definition NavigationModifier.cpp:431
TWeakObjectPtr< UClass > ReplaceAreaClassOb
Definition NavigationModifier.h:148
bool ShouldIncludeAgentHeight() const
Definition NavigationModifier.h:125
ENGINE_API FAreaNavModifier()
Definition NavigationModifier.cpp:325
ENGINE_API void InitializeConvex(const TNavStatArray< FVector > &Points, const int32 FirstIndex, const int32 LastIndex, const FTransform &LocalToWorld, const TSubclassOf< UNavAreaBase > AreaClass)
Definition NavigationModifier.cpp:394
ENGINE_API void SetPerInstanceConvex(const FVector *InPoints, const int32 InFirstIndex, const int32 InLastIndex)
Definition NavigationModifier.cpp:623
uint8 bExpandTopByCellHeight
Definition NavigationModifier.h:156
ENGINE_API void SetConvex(const FVector *InPoints, const int32 FirstIndex, const int32 LastIndex, ENavigationCoordSystem::Type CoordType, const FTransform &LocalToWorld)
Definition NavigationModifier.cpp:641
TArray< FVector > Points
Definition NavigationModifier.h:151
const FBox & GetBounds() const
Definition NavigationModifier.h:120
uint8 bIncludeAgentHeight
Definition NavigationModifier.h:159
ENGINE_API void SetBox(const FBox &Box, const FTransform &LocalToWorld)
Definition NavigationModifier.cpp:524
FBox Bounds
Definition NavigationModifier.h:149
FAreaNavModifier & SetIncludeAgentHeight(bool bInclude)
Definition NavigationModifier.h:127
void SetExpandTopByCellHeight(bool bExpand)
Definition NavigationModifier.h:126
float FixedCost
Definition NavigationModifier.h:104
const TSubclassOf< UNavAreaBase > GetAreaClassToReplace() const
Definition NavigationModifier.h:129
ENavigationAreaMode::Type GetApplyMode() const
Definition NavigationModifier.h:122
static ENGINE_API void FillConvexNavAreaData(const FVector *InPoints, const int32 InNumPoints, const FTransform &InLocalToWorld, FConvexNavAreaData &OutConvexData, FBox &OutBounds)
Definition NavigationModifier.cpp:560
TEnumAsByte< ENavigationAreaMode::Type > ApplyMode
Definition NavigationModifier.h:153
TWeakObjectPtr< UClass > AreaClassOb
Definition NavigationModifier.h:147
ENGINE_API void SetApplyMode(ENavigationAreaMode::Type InApplyMode)
Definition NavigationModifier.cpp:512
uint8 bIsLowAreaModifier
Definition NavigationModifier.h:162
ENGINE_API void InitializePerInstanceConvex(const TNavStatArray< FVector > &Points, const int32 FirstIndex, const int32 LastIndex, const TSubclassOf< UNavAreaBase > AreaClass)
Definition NavigationModifier.cpp:402
ENGINE_API void SetAreaClass(const TSubclassOf< UNavAreaBase > AreaClass)
Definition NavigationModifier.cpp:480
const TSubclassOf< UNavAreaBase > GetAreaClass() const
Definition NavigationModifier.h:128
Definition NavigationModifier.h:87
FVector Origin
Definition NavigationModifier.h:88
FVector Extent
Definition NavigationModifier.h:89
Definition CollisionShape.h:21
Definition NavigationModifier.h:279
void Add(const FAreaNavModifier &Area)
Definition NavigationModifier.h:310
ENGINE_API void Reset()
Definition NavigationModifier.cpp:799
const TArray< FCustomLinkNavModifier > & GetCustomLinks() const
Definition NavigationModifier.h:352
void SetNavMeshResolution(ENavigationDataResolution Resolution)
Definition NavigationModifier.h:367
const TArray< FAreaNavModifier > & GetAreas() const
Definition NavigationModifier.h:350
bool HasAreas() const
Definition NavigationModifier.h:357
void Add(const FCompositeNavModifier &Modifiers)
Definition NavigationModifier.h:330
bool GetMaskFillCollisionUnderneathForNavmesh() const
Definition NavigationModifier.h:362
void SetRasterizeAsFilledConvexVolume(bool bValue)
Definition NavigationModifier.h:365
void Add(const FCustomLinkNavModifier &Link)
Definition NavigationModifier.h:324
bool IsPerInstanceModifier() const
Definition NavigationModifier.h:359
bool IsEmpty() const
Definition NavigationModifier.h:295
bool HasLinks() const
Definition NavigationModifier.h:354
TArray< FAreaNavModifier > & GetMutableAreas()
Definition NavigationModifier.h:380
bool GetRasterizeAsFilledConvexVolume() const
Definition NavigationModifier.h:364
ENGINE_API void Shrink()
Definition NavigationModifier.cpp:792
void Add(const FSimpleLinkNavModifier &Link)
Definition NavigationModifier.h:318
FCompositeNavModifier()
Definition NavigationModifier.h:280
void SetFillCollisionUnderneathForNavmesh(bool bValue)
Definition NavigationModifier.h:361
void MarkPotentialLinks()
Definition NavigationModifier.h:370
ENGINE_API void Empty()
Definition NavigationModifier.cpp:813
void MarkAsPerInstanceModifier()
Definition NavigationModifier.h:371
TArray< FCustomLinkNavModifier > & GetCustomLinks()
Definition NavigationModifier.h:382
FNavDataPerInstanceTransformDelegate NavDataPerInstanceTransformDelegate
Definition NavigationModifier.h:388
void SetMaskFillCollisionUnderneathForNavmesh(bool bValue)
Definition NavigationModifier.h:363
bool HasLowAreaModifiers() const
Definition NavigationModifier.h:358
ENavigationDataResolution GetNavMeshResolution() const
Definition NavigationModifier.h:366
TArray< FSimpleLinkNavModifier > & GetSimpleLinks()
Definition NavigationModifier.h:381
void ReserveForAdditionalAreas(int32 AdditionalElementsCount)
Definition NavigationModifier.h:368
ENGINE_API uint32 GetAllocatedSize() const
Definition NavigationModifier.cpp:1053
bool GetFillCollisionUnderneathForNavmesh() const
Definition NavigationModifier.h:360
ENGINE_API FCompositeNavModifier GetInstantiatedMetaModifier(const FNavAgentProperties *NavAgent, const TWeakObjectPtr< const UObject > &WeakOwnerPtr) const
Definition NavigationModifier.cpp:831
const TArray< FSimpleLinkNavModifier > & GetSimpleLinks() const
Definition NavigationModifier.h:351
ENGINE_API void CreateAreaModifiers(const UPrimitiveComponent *PrimComp, const TSubclassOf< UNavAreaBase > AreaClass, const TSubclassOf< UNavAreaBase > AreaClassToReplace={})
Definition NavigationModifier.cpp:956
static ENGINE_API bool bEnableNavMeshResolutions
Definition NavigationModifier.h:390
bool IsDynamic() const
Definition NavigationModifier.h:304
bool HasPotentialLinks() const
Definition NavigationModifier.h:355
bool HasAgentHeightAdjust() const
Definition NavigationModifier.h:356
Definition NavigationModifier.h:93
TArray< FVector > Points
Definition NavigationModifier.h:94
FVector::FReal MinZ
Definition NavigationModifier.h:95
FVector::FReal MaxZ
Definition NavigationModifier.h:96
Definition NavigationModifier.h:266
FTransform LocalToWorld
Definition NavigationModifier.h:267
const TSubclassOf< UNavLinkDefinition > GetNavLinkClass() const
Definition NavigationModifier.h:270
TWeakObjectPtr< UClass > LinkDefinitionClassOb
Definition NavigationModifier.h:273
Definition NavigationModifier.h:79
FVector Origin
Definition NavigationModifier.h:80
float Radius
Definition NavigationModifier.h:81
float Height
Definition NavigationModifier.h:82
Definition NavigationTypes.h:453
Definition NavigationTypes.h:150
Definition NavLinkDefinition.h:204
Definition NavigationModifier.h:21
bool HasMetaAreas() const
Definition NavigationModifier.h:23
FNavigationModifier()
Definition NavigationModifier.h:22
int32 bHasMetaAreas
Definition NavigationModifier.h:27
Definition NavLinkDefinition.h:257
Definition NavigationModifier.h:178
int32 UserId
Definition NavigationModifier.h:185
TArray< FNavigationSegmentLink > SegmentLinks
Definition NavigationModifier.h:181
ENGINE_API void SetSegmentLinks(const TArray< FNavigationSegmentLink > &InLinks)
Definition NavigationModifier.cpp:700
TArray< FNavigationLink > Links
Definition NavigationModifier.h:180
int32 bHasMetaAreasSegment
Definition NavigationModifier.h:262
FNavLinkId NavLinkId
Definition NavigationModifier.h:187
FTransform LocalToWorld
Definition NavigationModifier.h:182
FSimpleLinkNavModifier(const FNavigationSegmentLink &InLink, const FTransform &InLocalToWorld)
Definition NavigationModifier.h:219
FSimpleLinkNavModifier(const TArray< FNavigationSegmentLink > &InSegmentLinks, const FTransform &InLocalToWorld)
Definition NavigationModifier.h:229
ENGINE_API void AppendLinks(const TArray< FNavigationLink > &InLinks)
Definition NavigationModifier.cpp:717
FSimpleLinkNavModifier(FSimpleLinkNavModifier &&Other)=default
PRAGMA_ENABLE_DEPRECATION_WARNINGS bool HasFallDownLinks() const
Definition NavigationModifier.h:249
ENGINE_API void UpdateFlags()
Definition NavigationModifier.cpp:773
ENGINE_API void AppendSegmentLinks(const TArray< FNavigationSegmentLink > &InLinks)
Definition NavigationModifier.cpp:733
int32 bHasMetaAreasPoint
Definition NavigationModifier.h:261
FSimpleLinkNavModifier & operator=(FSimpleLinkNavModifier &&Other)=default
FSimpleLinkNavModifier(const TArray< FNavigationLink > &InLinks, const FTransform &InLocalToWorld)
Definition NavigationModifier.h:206
ENGINE_API void AddSegmentLink(const FNavigationSegmentLink &InLink)
Definition NavigationModifier.cpp:761
ENGINE_API void SetLinks(const TArray< FNavigationLink > &InLinks)
Definition NavigationModifier.cpp:684
ENGINE_API void AddLink(const FNavigationLink &InLink)
Definition NavigationModifier.cpp:750
PRAGMA_DISABLE_DEPRECATION_WARNINGS FSimpleLinkNavModifier(const FSimpleLinkNavModifier &)=default
FSimpleLinkNavModifier & operator=(const FSimpleLinkNavModifier &Other)=default
int32 bHasFallDownLinks
Definition NavigationModifier.h:260
FSimpleLinkNavModifier(const FNavigationLink &InLink, const FTransform &InLocalToWorld)
Definition NavigationModifier.h:196
Definition WeakObjectPtrTemplates.h:25
FORCEINLINE T * Get(bool bEvenIfPendingKill) const
Definition WeakObjectPtrTemplates.h:132
double FReal
Definition Vector.h:55