UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FNavigationDirtyAreasController Struct Reference

#include <NavigationDirtyAreasController.h>

Public Member Functions

NAVIGATIONSYSTEM_API FNavigationDirtyAreasController ()
 
NAVIGATIONSYSTEM_API void Reset ()
 
NAVIGATIONSYSTEM_API void ForceRebuildOnNextTick ()
 
NAVIGATIONSYSTEM_API void Tick (float DeltaSeconds, const TArray< ANavigationData * > &NavDataSet, bool bForceRebuilding=false)
 
NAVIGATIONSYSTEM_API void AddArea (const FBox &NewArea, const ENavigationDirtyFlag Flags, const TFunction< const TSharedPtr< const FNavigationElement >()> &ElementProviderFunc=nullptr, const FNavigationDirtyElement *DirtyElement=nullptr, const FName &DebugReason=NAME_None)
 
NAVIGATIONSYSTEM_API void AddArea (const FBox &NewArea, const int32 Flags, const TFunction< UObject *()> &ObjectProviderFunc=nullptr, const FNavigationDirtyElement *DirtyElement=nullptr, const FName &DebugReason=NAME_None)
 
NAVIGATIONSYSTEM_API void AddAreas (const TConstArrayView< FBox > NewAreas, const ENavigationDirtyFlag Flags, const TFunction< const TSharedPtr< const FNavigationElement >()> &ElementProviderFunc=nullptr, const FNavigationDirtyElement *DirtyElement=nullptr, const FName &DebugReason=NAME_None)
 
NAVIGATIONSYSTEM_API void AddAreas (const TConstArrayView< FBox > NewAreas, const int32 Flags, const TFunction< UObject *()> &ObjectProviderFunc=nullptr, const FNavigationDirtyElement *DirtyElement=nullptr, const FName &DebugReason=NAME_None)
 
bool IsDirty () const
 
int32 GetNumDirtyAreas () const
 
NAVIGATIONSYSTEM_API void OnNavigationBuildLocked ()
 
NAVIGATIONSYSTEM_API void OnNavigationBuildUnlocked ()
 
NAVIGATIONSYSTEM_API void SetUseWorldPartitionedDynamicMode (bool bIsWPDynamic)
 
NAVIGATIONSYSTEM_API void SetCanReportOversizedDirtyArea (const bool bCanReport)
 
NAVIGATIONSYSTEM_API void SetDirtyAreaWarningSizeThreshold (const float Threshold)
 
bool HadDirtyAreasReportedWhileAccumulationLocked () const
 
 DECLARE_DELEGATE_RetVal_OneParam (bool, FSkipObjectSignature, const UObject &)
 

Public Attributes

float DirtyAreasUpdateFreq = 60.f
 
float DirtyAreasUpdateTime = 0.f
 
TArray< FNavigationDirtyAreaDirtyAreas
 
uint8 bCanAccumulateDirtyAreas: 1
 
uint8 bUseWorldPartitionedDynamicMode: 1
 
uint8 bDirtyAreasReportedWhileAccumulationLocked: 1
 
FSkipObjectSignature ShouldSkipObjectPredicate
 

Constructor & Destructor Documentation

◆ FNavigationDirtyAreasController()

FNavigationDirtyAreasController::FNavigationDirtyAreasController ( )

Member Function Documentation

◆ AddArea() [1/2]

void FNavigationDirtyAreasController::AddArea ( const FBox NewArea,
const ENavigationDirtyFlag  Flags,
const TFunction< const TSharedPtr< const FNavigationElement >()> &  ElementProviderFunc = nullptr,
const FNavigationDirtyElement DirtyElement = nullptr,
const FName DebugReason = NAME_None 
)

Add a dirty area to the queue based on the provided bounds and flags. Bounds must be valid and non-empty otherwise the request will be ignored and a warning reported. Accumulation must be allowed and flags valid otherwise the add is ignored.

Parameters
NewAreaBounding box of the affected area
FlagsIndicates the type of modification applied to the area
ElementProviderFuncOptional function to retrieve source element that can be used for error reporting and navmesh exclusion
DirtyElementOptional dirty element
DebugReasonSource of the new area

◆ AddArea() [2/2]

void FNavigationDirtyAreasController::AddArea ( const FBox NewArea,
const int32  Flags,
const TFunction< UObject *()> &  ObjectProviderFunc = nullptr,
const FNavigationDirtyElement DirtyElement = nullptr,
const FName DebugReason = NAME_None 
)

◆ AddAreas() [1/2]

void FNavigationDirtyAreasController::AddAreas ( const TConstArrayView< FBox NewAreas,
const ENavigationDirtyFlag  Flags,
const TFunction< const TSharedPtr< const FNavigationElement >()> &  ElementProviderFunc = nullptr,
const FNavigationDirtyElement DirtyElement = nullptr,
const FName DebugReason = NAME_None 
)

Add non-empty list of dirty areas to the queue based on the provided bounds and flags. Bounds must be valid and non-empty otherwise the request will be ignored and a warning reported. Accumulation must be allowed and flags valid otherwise the add is ignored. A check will be triggered if an empty array is provided.

Parameters
NewAreasArray of bounding boxes of the affected areas
FlagsIndicates the type of modification applied to the area
ElementProviderFuncOptional function to retrieve source element that can be used for error reporting and navmesh exclusion
DirtyElementOptional dirty element
DebugReasonSource of the new area

◆ AddAreas() [2/2]

void FNavigationDirtyAreasController::AddAreas ( const TConstArrayView< FBox NewAreas,
const int32  Flags,
const TFunction< UObject *()> &  ObjectProviderFunc = nullptr,
const FNavigationDirtyElement DirtyElement = nullptr,
const FName DebugReason = NAME_None 
)

◆ DECLARE_DELEGATE_RetVal_OneParam()

FNavigationDirtyAreasController::DECLARE_DELEGATE_RetVal_OneParam ( bool  ,
FSkipObjectSignature  ,
const UObject  
)

◆ ForceRebuildOnNextTick()

void FNavigationDirtyAreasController::ForceRebuildOnNextTick ( )

sets cumulative time to at least one cycle so next tick will rebuild dirty areas

◆ GetNumDirtyAreas()

int32 FNavigationDirtyAreasController::GetNumDirtyAreas ( ) const
inline

◆ HadDirtyAreasReportedWhileAccumulationLocked()

bool FNavigationDirtyAreasController::HadDirtyAreasReportedWhileAccumulationLocked ( ) const
inline

◆ IsDirty()

bool FNavigationDirtyAreasController::IsDirty ( ) const
inline

◆ OnNavigationBuildLocked()

void FNavigationDirtyAreasController::OnNavigationBuildLocked ( )

◆ OnNavigationBuildUnlocked()

void FNavigationDirtyAreasController::OnNavigationBuildUnlocked ( )

◆ Reset()

void FNavigationDirtyAreasController::Reset ( )

◆ SetCanReportOversizedDirtyArea()

void FNavigationDirtyAreasController::SetCanReportOversizedDirtyArea ( const bool  bCanReport)

◆ SetDirtyAreaWarningSizeThreshold()

void FNavigationDirtyAreasController::SetDirtyAreaWarningSizeThreshold ( const float  Threshold)

◆ SetUseWorldPartitionedDynamicMode()

void FNavigationDirtyAreasController::SetUseWorldPartitionedDynamicMode ( bool  bIsWPDynamic)

◆ Tick()

void FNavigationDirtyAreasController::Tick ( float  DeltaSeconds,
const TArray< ANavigationData * > &  NavDataSet,
bool  bForceRebuilding = false 
)

Member Data Documentation

◆ bCanAccumulateDirtyAreas

uint8 FNavigationDirtyAreasController::bCanAccumulateDirtyAreas

◆ bDirtyAreasReportedWhileAccumulationLocked

uint8 FNavigationDirtyAreasController::bDirtyAreasReportedWhileAccumulationLocked

◆ bUseWorldPartitionedDynamicMode

uint8 FNavigationDirtyAreasController::bUseWorldPartitionedDynamicMode

◆ DirtyAreas

TArray<FNavigationDirtyArea> FNavigationDirtyAreasController::DirtyAreas

stores areas marked as dirty throughout the frame, processes them once a frame in Tick function

◆ DirtyAreasUpdateFreq

float FNavigationDirtyAreasController::DirtyAreasUpdateFreq = 60.f

update frequency for dirty areas on navmesh

◆ DirtyAreasUpdateTime

float FNavigationDirtyAreasController::DirtyAreasUpdateTime = 0.f

temporary cumulative time to calculate when we need to update dirty areas

◆ ShouldSkipObjectPredicate

FSkipObjectSignature FNavigationDirtyAreasController::ShouldSkipObjectPredicate

The documentation for this struct was generated from the following files: