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

#include <NavigationDataHandler.h>

Public Member Functions

NAVIGATIONSYSTEM_API FNavigationDataHandler (FNavigationOctreeController &InOctreeController, FNavigationDirtyAreasController &InDirtyAreasController)
 
NAVIGATIONSYSTEM_API void ConstructNavOctree (const FVector &Origin, const double Radius, const ENavDataGatheringModeConfig DataGatheringMode, const float GatheringNavModifiersWarningLimitTime)
 
NAVIGATIONSYSTEM_API void RemoveNavOctreeElementId (const FOctreeElementId2 &ElementId, int32 UpdateFlags)
 
NAVIGATIONSYSTEM_API void RemoveFromNavOctree (const FOctreeElementId2 &ElementId, int32 UpdateFlags)
 
NAVIGATIONSYSTEM_API FSetElementId RegisterElementWithNavOctree (const TSharedRef< const FNavigationElement > &ElementRef, int32 UpdateFlags)
 
NAVIGATIONSYSTEM_API FSetElementId RegisterNavOctreeElement (UObject &ElementOwner, INavRelevantInterface &ElementInterface, int32 UpdateFlags)
 
NAVIGATIONSYSTEM_API void AddElementToNavOctree (const FNavigationDirtyElement &DirtyElement)
 
NAVIGATIONSYSTEM_API bool UnregisterElementWithNavOctree (const TSharedRef< const FNavigationElement > &ElementRef, int32 UpdateFlags)
 
NAVIGATIONSYSTEM_API bool UnregisterNavOctreeElement (UObject &ElementOwner, INavRelevantInterface &ElementInterface, int32 UpdateFlags)
 
NAVIGATIONSYSTEM_API void UpdateNavOctreeElement (FNavigationElementHandle ElementHandle, const TSharedRef< const FNavigationElement > &UpdatedElement, int32 UpdateFlags)
 
NAVIGATIONSYSTEM_API void UpdateNavOctreeElement (UObject &ElementOwner, INavRelevantInterface &ElementInterface, int32 UpdateFlags)
 
NAVIGATIONSYSTEM_API void UpdateNavOctreeParentChain (UObject &ElementOwner, bool bSkipElementOwnerUpdate=false)
 
NAVIGATIONSYSTEM_API bool UpdateNavOctreeElementBounds (FNavigationElementHandle Element, const FBox &NewBounds, const TConstArrayView< FBox > DirtyAreas)
 
NAVIGATIONSYSTEM_API bool UpdateNavOctreeElementBounds (UObject &Object, const FBox &NewBounds, const TConstArrayView< FBox > DirtyAreas)
 
NAVIGATIONSYSTEM_API void FindElementsInNavOctree (const FBox &QueryBox, const FNavigationOctreeFilter &Filter, TArray< FNavigationOctreeElement > &Elements)
 
NAVIGATIONSYSTEM_API bool ReplaceAreaInOctreeData (FNavigationElementHandle Element, TSubclassOf< UNavArea > OldArea, TSubclassOf< UNavArea > NewArea, bool bReplaceChildClasses) const
 
NAVIGATIONSYSTEM_API bool ReplaceAreaInOctreeData (const UObject &Object, TSubclassOf< UNavArea > OldArea, TSubclassOf< UNavArea > NewArea, bool bReplaceChildClasses)
 
NAVIGATIONSYSTEM_API void AddLevelCollisionToOctree (ULevel &Level)
 
NAVIGATIONSYSTEM_API void RemoveLevelCollisionFromOctree (ULevel &Level)
 
NAVIGATIONSYSTEM_API void UpdateActorAndComponentsInNavOctree (AActor &Actor)
 
NAVIGATIONSYSTEM_API void ProcessPendingOctreeUpdates ()
 
NAVIGATIONSYSTEM_API void DemandLazyDataGathering (FNavigationRelevantData &ElementData)
 

Public Attributes

FNavigationOctreeControllerOctreeController
 
FNavigationDirtyAreasControllerDirtyAreasController
 

Constructor & Destructor Documentation

◆ FNavigationDataHandler()

FNavigationDataHandler::FNavigationDataHandler ( FNavigationOctreeController InOctreeController,
FNavigationDirtyAreasController InDirtyAreasController 
)

Member Function Documentation

◆ AddElementToNavOctree()

void FNavigationDataHandler::AddElementToNavOctree ( const FNavigationDirtyElement DirtyElement)

◆ AddLevelCollisionToOctree()

void FNavigationDataHandler::AddLevelCollisionToOctree ( ULevel Level)

◆ ConstructNavOctree()

void FNavigationDataHandler::ConstructNavOctree ( const FVector Origin,
const double  Radius,
const ENavDataGatheringModeConfig  DataGatheringMode,
const float  GatheringNavModifiersWarningLimitTime 
)

◆ DemandLazyDataGathering()

void FNavigationDataHandler::DemandLazyDataGathering ( FNavigationRelevantData ElementData)

◆ FindElementsInNavOctree()

void FNavigationDataHandler::FindElementsInNavOctree ( const FBox QueryBox,
const FNavigationOctreeFilter Filter,
TArray< FNavigationOctreeElement > &  Elements 
)

◆ ProcessPendingOctreeUpdates()

void FNavigationDataHandler::ProcessPendingOctreeUpdates ( )

◆ RegisterElementWithNavOctree()

FSetElementId FNavigationDataHandler::RegisterElementWithNavOctree ( const TSharedRef< const FNavigationElement > &  ElementRef,
int32  UpdateFlags 
)

◆ RegisterNavOctreeElement()

FSetElementId FNavigationDataHandler::RegisterNavOctreeElement ( UObject ElementOwner,
INavRelevantInterface ElementInterface,
int32  UpdateFlags 
)

◆ RemoveFromNavOctree()

void FNavigationDataHandler::RemoveFromNavOctree ( const FOctreeElementId2 ElementId,
int32  UpdateFlags 
)

Removes the octree node and the NavigationElementHandle-OctreeElementId pair associated to the specified OctreeElementId. It will also dirty the area base of the NavigationElement values and the specified update flags.

◆ RemoveLevelCollisionFromOctree()

void FNavigationDataHandler::RemoveLevelCollisionFromOctree ( ULevel Level)

◆ RemoveNavOctreeElementId()

void FNavigationDataHandler::RemoveNavOctreeElementId ( const FOctreeElementId2 ElementId,
int32  UpdateFlags 
)

◆ ReplaceAreaInOctreeData() [1/2]

bool FNavigationDataHandler::ReplaceAreaInOctreeData ( const UObject Object,
TSubclassOf< UNavArea OldArea,
TSubclassOf< UNavArea NewArea,
bool  bReplaceChildClasses 
)

◆ ReplaceAreaInOctreeData() [2/2]

bool FNavigationDataHandler::ReplaceAreaInOctreeData ( FNavigationElementHandle  Element,
TSubclassOf< UNavArea OldArea,
TSubclassOf< UNavArea NewArea,
bool  bReplaceChildClasses 
) const

◆ UnregisterElementWithNavOctree()

bool FNavigationDataHandler::UnregisterElementWithNavOctree ( const TSharedRef< const FNavigationElement > &  ElementRef,
int32  UpdateFlags 
)

Removes associated NavOctreeElement and invalidates associated pending updates. Also removes element from the list of children of the NavigationParent, if any.

Parameters
ElementRefNavigation element for which we must remove the associated NavOctreeElement
UpdateFlagsFlags indicating in which context the method is called to allow/forbid certain operations
Returns
True if associated NavOctreeElement has been removed or pending update has been invalidated; false otherwise.

◆ UnregisterNavOctreeElement()

bool FNavigationDataHandler::UnregisterNavOctreeElement ( UObject ElementOwner,
INavRelevantInterface ElementInterface,
int32  UpdateFlags 
)

◆ UpdateActorAndComponentsInNavOctree()

NAVIGATIONSYSTEM_API void FNavigationDataHandler::UpdateActorAndComponentsInNavOctree ( AActor Actor)

◆ UpdateNavOctreeElement() [1/2]

void FNavigationDataHandler::UpdateNavOctreeElement ( FNavigationElementHandle  ElementHandle,
const TSharedRef< const FNavigationElement > &  UpdatedElement,
int32  UpdateFlags 
)

Unregister element associated with the provided handle and register the new element. Also update any pending update associated to that element.

◆ UpdateNavOctreeElement() [2/2]

void FNavigationDataHandler::UpdateNavOctreeElement ( UObject ElementOwner,
INavRelevantInterface ElementInterface,
int32  UpdateFlags 
)

◆ UpdateNavOctreeElementBounds() [1/2]

bool FNavigationDataHandler::UpdateNavOctreeElementBounds ( FNavigationElementHandle  Element,
const FBox NewBounds,
const TConstArrayView< FBox DirtyAreas 
)

◆ UpdateNavOctreeElementBounds() [2/2]

bool FNavigationDataHandler::UpdateNavOctreeElementBounds ( UObject Object,
const FBox NewBounds,
const TConstArrayView< FBox DirtyAreas 
)

◆ UpdateNavOctreeParentChain()

void FNavigationDataHandler::UpdateNavOctreeParentChain ( UObject ElementOwner,
bool  bSkipElementOwnerUpdate = false 
)

Member Data Documentation

◆ DirtyAreasController

FNavigationDirtyAreasController& FNavigationDataHandler::DirtyAreasController

◆ OctreeController

FNavigationOctreeController& FNavigationDataHandler::OctreeController

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