UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FNavigationOctree Class Reference

#include <NavigationOctree.h>

+ Inheritance diagram for FNavigationOctree:

Public Types

enum  ENavGeometryStoringMode { SkipNavGeometry , StoreNavGeometry }
 
- Public Types inherited from TOctree2< FNavigationOctreeElement, FNavigationOctreeSemantics >
using FNodeIndex = uint32
 
using FReal = FVector::FReal
 

Public Member Functions

 DECLARE_DELEGATE_TwoParams (FNavRelevantGeometryExportDelegate, INavRelevantInterface &, FNavigationRelevantData &)
 
PRAGMA_ENABLE_DEPRECATION_WARNINGS DECLARE_DELEGATE_TwoParams (FGeometryExportDelegate, const FNavigationElement &, FNavigationRelevantData &)
 
void AddElement (const FNavigationOctreeElement &Element)
 
void RemoveElement (FOctreeElementId2 ElementId)
 
NAVIGATIONSYSTEM_API FNavigationOctree (const FVector &Origin, FVector::FReal Radius)
 
virtual NAVIGATIONSYSTEM_API ~FNavigationOctree ()
 
NAVIGATIONSYSTEM_API void AddNode (const FBox &Bounds, FNavigationOctreeElement &OctreeElement)
 
NAVIGATIONSYSTEM_API void AddNode (UObject *ElementOb, INavRelevantInterface *NavElement, const FBox &Bounds, FNavigationOctreeElement &Data)
 
NAVIGATIONSYSTEM_API void AppendToNode (const FOctreeElementId2 &Id, const TSharedRef< const FNavigationElement > &ElementRef, const FBox &Bounds, FNavigationOctreeElement &Data)
 
NAVIGATIONSYSTEM_API void AppendToNode (const FOctreeElementId2 &Id, INavRelevantInterface *NavElement, const FBox &Bounds, FNavigationOctreeElement &Data)
 
NAVIGATIONSYSTEM_API void UpdateNode (const FOctreeElementId2 &Id, const FBox &NewBounds)
 
NAVIGATIONSYSTEM_API void RemoveNode (const FOctreeElementId2 &Id)
 
NAVIGATIONSYSTEM_API void SetNavigableGeometryStoringMode (ENavGeometryStoringMode NavGeometryMode)
 
NAVIGATIONSYSTEM_API const FNavigationRelevantDataGetDataForID (const FOctreeElementId2 &Id) const
 
NAVIGATIONSYSTEM_API FNavigationRelevantDataGetMutableDataForID (const FOctreeElementId2 &Id)
 
ENavGeometryStoringMode GetNavGeometryStoringMode () const
 
NAVIGATIONSYSTEM_API void SetDataGatheringMode (ENavDataGatheringModeConfig Mode)
 
NAVIGATIONSYSTEM_API bool IsLazyGathering (const FNavigationElement &NavigationElement) const
 
NAVIGATIONSYSTEM_API bool IsLazyGathering (const INavRelevantInterface &ChildNavInterface) const
 
NAVIGATIONSYSTEM_API void DemandLazyDataGathering (FNavigationRelevantData &ElementData)
 
NAVIGATIONSYSTEM_API void DemandChildLazyDataGathering (FNavigationRelevantData &ElementData, const FNavigationElement &ChildElement) const
 
NAVIGATIONSYSTEM_API void DemandChildLazyDataGathering (FNavigationRelevantData &ElementData, INavRelevantInterface &ChildNavInterface)
 
NAVIGATIONSYSTEM_API void SetGatheringNavModifiersTimeLimitWarning (const float Threshold)
 
- Public Member Functions inherited from TOctree2< FNavigationOctreeElement, FNavigationOctreeSemantics >
int32 GetNumNodes () const
 
void FindAllElements (const IterateAllElementsFunc &Func) const
 
void FindNodesWithPredicate (const PredicateFunc &Predicate, const IterateFunc &Func) const
 
void FindElementsWithPredicate (const PredicateFunc &Predicate, const IterateFunc &Func) const
 
void FindElementsWithBoundsTest (const FBoxCenterAndExtent &BoxBounds, const IterateBoundsFunc &Func) const
 
FOctreeElementId2 FindFirstElementWithBoundsTest (const FBoxCenterAndExtent &BoxBounds, const IterateBoundsFunc &Func) const
 
void FindNearbyElements (const FVector &Position, const IterateBoundsFunc &Func) const
 
void AddElement (typename TCallTraits< FNavigationOctreeElement >::ConstReference Element)
 
void RemoveElement (FOctreeElementId2 ElementId)
 
void Destroy ()
 
FNavigationOctreeElementGetElementById (FOctreeElementId2 ElementId)
 
const FNavigationOctreeElementGetElementById (FOctreeElementId2 ElementId) const
 
bool IsValidElementId (FOctreeElementId2 ElementId) const
 
TArrayView< const FNavigationOctreeElementGetElementsForNode (FNodeIndex NodeIndex) const
 
void DumpStats () const
 
SIZE_T GetSizeBytes () const
 
FReal GetNodeLevelExtent (int32 Level) const
 
FBoxCenterAndExtent GetRootBounds () const
 
void ShrinkElements ()
 
void ApplyOffset (const FVector &InOffset, bool bGlobalOctree=false)
 
 TOctree2 (const FVector &InOrigin, FVector::FReal InExtent)
 
 TOctree2 ()
 
- Public Member Functions inherited from TSharedFromThis< FNavigationOctree, ESPMode::ThreadSafe >
TSharedRef< FNavigationOctree, Mode > AsShared ()
 
TSharedRef< FNavigationOctree const, Mode > AsShared () const
 
TSharedRef< SubobjectType, Mode > AsSharedSubobject (SubobjectType *SubobjectPtr) const
 
TWeakPtr< FNavigationOctree, Mode > AsWeak ()
 
TWeakPtr< FNavigationOctree const, Mode > AsWeak () const
 
TWeakPtr< SubobjectType, Mode > AsWeakSubobject (SubobjectType *SubobjectPtr) const
 
void UpdateWeakReferenceInternal (TSharedPtr< SharedPtrType, SharedPtrMode > const *InSharedPtr, OtherType *InObject) const
 
void UpdateWeakReferenceInternal (TSharedRef< SharedRefType, SharedPtrMode > const *InSharedRef, OtherType *InObject) const
 
UE_FORCEINLINE_HINT bool DoesSharedInstanceExist () const
 

Static Public Member Functions

static FORCEINLINE uint32 HashObject (const UObject &Object)
 

Public Attributes

PRAGMA_DISABLE_DEPRECATION_WARNINGS FNavRelevantGeometryExportDelegate NavRelevantGeometryExportDelegate
 
FGeometryExportDelegate GeometryExportDelegate
 

Protected Member Functions

NAVIGATIONSYSTEM_API void SetElementIdImpl (const uint32 OwnerUniqueId, FOctreeElementId2 Id)
 
NAVIGATIONSYSTEM_API void SetElementIdImpl (FNavigationElementHandle ElementHandle, FOctreeElementId2 Id)
 
- Protected Member Functions inherited from TOctree2< FNavigationOctreeElement, FNavigationOctreeSemantics >
void SetElementId (const FNavigationOctreeElement &Element, FOctreeElementId2 Id)
 
- Protected Member Functions inherited from TSharedFromThis< FNavigationOctree, ESPMode::ThreadSafe >
 TSharedFromThis ()
 
 TSharedFromThis (TSharedFromThis const &)
 
UE_FORCEINLINE_HINT TSharedFromThisoperator= (TSharedFromThis const &)
 
 ~TSharedFromThis ()
 

Protected Attributes

TMap< FNavigationElementHandle, FOctreeElementId2ElementToOctreeId
 
ENavDataGatheringMode DefaultGeometryGatheringMode
 
uint32 bGatherGeometry: 1
 
uint32 NodesMemory
 
float GatheringNavModifiersTimeLimitWarning
 

Friends

struct FNavigationOctreeController
 
struct FNavigationOctreeSemantics
 

Additional Inherited Members

- Static Protected Member Functions inherited from TSharedFromThis< FNavigationOctree, ESPMode::ThreadSafe >
static UE_FORCEINLINE_HINT TSharedRef< OtherType, Mode > SharedThis (OtherType *ThisPtr)
 
static UE_FORCEINLINE_HINT TSharedRef< OtherType const, Mode > SharedThis (const OtherType *ThisPtr)
 

Member Enumeration Documentation

◆ ENavGeometryStoringMode

Enumerator
SkipNavGeometry 
StoreNavGeometry 

Constructor & Destructor Documentation

◆ FNavigationOctree()

FNavigationOctree::FNavigationOctree ( const FVector Origin,
FVector::FReal  Radius 
)

◆ ~FNavigationOctree()

PRAGMA_DISABLE_DEPRECATION_WARNINGS FNavigationOctree::~FNavigationOctree ( )
virtual

Member Function Documentation

◆ AddElement()

void FNavigationOctree::AddElement ( const FNavigationOctreeElement Element)
inline

Adds an element to the octree.

Parameters
Element- The element to add.

◆ AddNode() [1/2]

void FNavigationOctree::AddNode ( const FBox Bounds,
FNavigationOctreeElement OctreeElement 
)

Add new node and fill it with navigation export data

UE_BUILD_SHIPPING

UE_BUILD_SHIPPING

◆ AddNode() [2/2]

void FNavigationOctree::AddNode ( UObject ElementOb,
INavRelevantInterface NavElement,
const FBox Bounds,
FNavigationOctreeElement Data 
)

◆ AppendToNode() [1/2]

void FNavigationOctree::AppendToNode ( const FOctreeElementId2 Id,
const TSharedRef< const FNavigationElement > &  ElementRef,
const FBox Bounds,
FNavigationOctreeElement Data 
)

Append new data to existing node

◆ AppendToNode() [2/2]

void FNavigationOctree::AppendToNode ( const FOctreeElementId2 Id,
INavRelevantInterface NavElement,
const FBox Bounds,
FNavigationOctreeElement Data 
)

◆ DECLARE_DELEGATE_TwoParams() [1/2]

PRAGMA_ENABLE_DEPRECATION_WARNINGS FNavigationOctree::DECLARE_DELEGATE_TwoParams ( FGeometryExportDelegate  ,
const FNavigationElement ,
FNavigationRelevantData  
)

◆ DECLARE_DELEGATE_TwoParams() [2/2]

FNavigationOctree::DECLARE_DELEGATE_TwoParams ( FNavRelevantGeometryExportDelegate  ,
INavRelevantInterface ,
FNavigationRelevantData  
)

◆ DemandChildLazyDataGathering() [1/2]

void FNavigationOctree::DemandChildLazyDataGathering ( FNavigationRelevantData ElementData,
const FNavigationElement ChildElement 
) const

◆ DemandChildLazyDataGathering() [2/2]

void FNavigationOctree::DemandChildLazyDataGathering ( FNavigationRelevantData ElementData,
INavRelevantInterface ChildNavInterface 
)

◆ DemandLazyDataGathering()

void FNavigationOctree::DemandLazyDataGathering ( FNavigationRelevantData ElementData)

UE_BUILD_SHIPPING

UE_BUILD_SHIPPING

◆ GetDataForID()

const FNavigationRelevantData * FNavigationOctree::GetDataForID ( const FOctreeElementId2 Id) const

◆ GetMutableDataForID()

FNavigationRelevantData * FNavigationOctree::GetMutableDataForID ( const FOctreeElementId2 Id)

◆ GetNavGeometryStoringMode()

ENavGeometryStoringMode FNavigationOctree::GetNavGeometryStoringMode ( ) const
inline

◆ HashObject()

static FORCEINLINE uint32 FNavigationOctree::HashObject ( const UObject Object)
inlinestatic

◆ IsLazyGathering() [1/2]

bool FNavigationOctree::IsLazyGathering ( const FNavigationElement NavigationElement) const

◆ IsLazyGathering() [2/2]

bool FNavigationOctree::IsLazyGathering ( const INavRelevantInterface ChildNavInterface) const

◆ RemoveElement()

void FNavigationOctree::RemoveElement ( FOctreeElementId2  ElementId)
inline

Removes an element from the octree.

Parameters
ElementId- The element to remove from the octree.

◆ RemoveNode()

void FNavigationOctree::RemoveNode ( const FOctreeElementId2 Id)

Remove node

◆ SetDataGatheringMode()

PRAGMA_ENABLE_DEPRECATION_WARNINGS void FNavigationOctree::SetDataGatheringMode ( ENavDataGatheringModeConfig  Mode)

◆ SetElementIdImpl() [1/2]

NAVIGATIONSYSTEM_API void FNavigationOctree::SetElementIdImpl ( const uint32  OwnerUniqueId,
FOctreeElementId2  Id 
)
protected

◆ SetElementIdImpl() [2/2]

void FNavigationOctree::SetElementIdImpl ( FNavigationElementHandle  ElementHandle,
FOctreeElementId2  Id 
)
protected

◆ SetGatheringNavModifiersTimeLimitWarning()

void FNavigationOctree::SetGatheringNavModifiersTimeLimitWarning ( const float  Threshold)

◆ SetNavigableGeometryStoringMode()

void FNavigationOctree::SetNavigableGeometryStoringMode ( ENavGeometryStoringMode  NavGeometryMode)

◆ UpdateNode()

void FNavigationOctree::UpdateNode ( const FOctreeElementId2 Id,
const FBox NewBounds 
)

Updates element bounds remove/add operation

Friends And Related Symbol Documentation

◆ FNavigationOctreeController

◆ FNavigationOctreeSemantics

Member Data Documentation

◆ bGatherGeometry

uint32 FNavigationOctree::bGatherGeometry
protected

◆ DefaultGeometryGatheringMode

ENavDataGatheringMode FNavigationOctree::DefaultGeometryGatheringMode
protected

◆ ElementToOctreeId

TMap<FNavigationElementHandle, FOctreeElementId2> FNavigationOctree::ElementToOctreeId
protected

◆ GatheringNavModifiersTimeLimitWarning

float FNavigationOctree::GatheringNavModifiersTimeLimitWarning
protected

◆ GeometryExportDelegate

FGeometryExportDelegate FNavigationOctree::GeometryExportDelegate

◆ NavRelevantGeometryExportDelegate

PRAGMA_DISABLE_DEPRECATION_WARNINGS FNavRelevantGeometryExportDelegate FNavigationOctree::NavRelevantGeometryExportDelegate

◆ NodesMemory

uint32 FNavigationOctree::NodesMemory
protected

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