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

#include <NavigationOctreeController.h>

Public Types

enum  EOctreeUpdateMode {
  OctreeUpdate_Default = 0 , OctreeUpdate_Geometry = 1 , OctreeUpdate_Modifiers = 2 , OctreeUpdate_Refresh = 4 ,
  OctreeUpdate_ParentChain = 8
}
 

Public Member Functions

void SetNavigationOctreeLock (bool bLock)
 
NAVIGATIONSYSTEM_API bool HasPendingUpdateForElement (FNavigationElementHandle Element) const
 
NAVIGATIONSYSTEM_API bool HasPendingObjectNavOctreeId (UObject &Object) const
 
void RemoveNode (FOctreeElementId2 ElementId, FNavigationElementHandle GetHandle)
 
NAVIGATIONSYSTEM_API void RemoveObjectsNavOctreeId (const UObject &Object)
 
NAVIGATIONSYSTEM_API void SetNavigableGeometryStoringMode (FNavigationOctree::ENavGeometryStoringMode NavGeometryMode)
 
NAVIGATIONSYSTEM_API void Reset ()
 
const FNavigationOctreeGetOctree () const
 
FNavigationOctreeGetMutableOctree ()
 
const FOctreeElementId2GetNavOctreeIdForElement (FNavigationElementHandle Element) const
 
NAVIGATIONSYSTEM_API const FOctreeElementId2GetObjectsNavOctreeId (const UObject &Object) const
 
NAVIGATIONSYSTEM_API bool GetNavOctreeElementData (FNavigationElementHandle Element, ENavigationDirtyFlag &DirtyFlags, FBox &DirtyBounds)
 
NAVIGATIONSYSTEM_API bool GetNavOctreeElementData (const UObject &NodeOwner, int32 &DirtyFlags, FBox &DirtyBounds)
 
NAVIGATIONSYSTEM_API const FNavigationRelevantDataGetDataForElement (FNavigationElementHandle Element) const
 
NAVIGATIONSYSTEM_API const FNavigationRelevantDataGetDataForObject (const UObject &Object) const
 
NAVIGATIONSYSTEM_API FNavigationRelevantDataGetMutableDataForElement (FNavigationElementHandle Element)
 
NAVIGATIONSYSTEM_API FNavigationRelevantDataGetMutableDataForObject (const UObject &Object)
 
bool HasElementNavOctreeId (const FNavigationElementHandle Element) const
 
NAVIGATIONSYSTEM_API bool HasObjectsNavOctreeId (const UObject &Object) const
 
bool IsNavigationOctreeLocked () const
 
bool IsValid () const
 
bool IsValidElement (const FOctreeElementId2 *ElementId) const
 
bool IsValidElement (const FOctreeElementId2 &ElementId) const
 
bool IsEmpty () const
 
void AddChild (FNavigationElementHandle Parent, const TSharedRef< const FNavigationElement > &Child)
 
void RemoveChild (FNavigationElementHandle Parent, const TSharedRef< const FNavigationElement > &Child)
 
void GetChildren (FNavigationElementHandle Parent, TArray< const TSharedRef< const FNavigationElement > > &OutChildren) const
 

Public Attributes

TSet< FNavigationDirtyElementPendingOctreeUpdates
 
TSet< FNavigationDirtyElement, FNavigationDirtyElementKeyFunctionsPendingUpdates
 
TSharedPtr< FNavigationOctree, ESPMode::ThreadSafeNavOctree
 
TMultiMap< UObject *, FWeakObjectPtrOctreeChildNodesMap
 
uint8 bNavOctreeLock: 1 = false
 

Member Enumeration Documentation

◆ EOctreeUpdateMode

Enumerator
OctreeUpdate_Default 
OctreeUpdate_Geometry 
OctreeUpdate_Modifiers 
OctreeUpdate_Refresh 
OctreeUpdate_ParentChain 

Member Function Documentation

◆ AddChild()

void FNavigationOctreeController::AddChild ( FNavigationElementHandle  Parent,
const TSharedRef< const FNavigationElement > &  Child 
)
inline

◆ GetChildren()

void FNavigationOctreeController::GetChildren ( FNavigationElementHandle  Parent,
TArray< const TSharedRef< const FNavigationElement > > &  OutChildren 
) const
inline

◆ GetDataForElement()

const FNavigationRelevantData * FNavigationOctreeController::GetDataForElement ( FNavigationElementHandle  Element) const

◆ GetDataForObject()

const FNavigationRelevantData * FNavigationOctreeController::GetDataForObject ( const UObject Object) const

◆ GetMutableDataForElement()

FNavigationRelevantData * FNavigationOctreeController::GetMutableDataForElement ( FNavigationElementHandle  Element)

◆ GetMutableDataForObject()

FNavigationRelevantData * FNavigationOctreeController::GetMutableDataForObject ( const UObject Object)

◆ GetMutableOctree()

FNavigationOctree * FNavigationOctreeController::GetMutableOctree ( )
inline

◆ GetNavOctreeElementData() [1/2]

bool FNavigationOctreeController::GetNavOctreeElementData ( const UObject NodeOwner,
int32 DirtyFlags,
FBox DirtyBounds 
)

◆ GetNavOctreeElementData() [2/2]

bool FNavigationOctreeController::GetNavOctreeElementData ( FNavigationElementHandle  Element,
ENavigationDirtyFlag DirtyFlags,
FBox DirtyBounds 
)

◆ GetNavOctreeIdForElement()

const FOctreeElementId2 * FNavigationOctreeController::GetNavOctreeIdForElement ( FNavigationElementHandle  Element) const
inline

◆ GetObjectsNavOctreeId()

const FOctreeElementId2 * FNavigationOctreeController::GetObjectsNavOctreeId ( const UObject Object) const

◆ GetOctree()

const FNavigationOctree * FNavigationOctreeController::GetOctree ( ) const
inline

◆ HasElementNavOctreeId()

bool FNavigationOctreeController::HasElementNavOctreeId ( const FNavigationElementHandle  Element) const
inline

◆ HasObjectsNavOctreeId()

bool FNavigationOctreeController::HasObjectsNavOctreeId ( const UObject Object) const

◆ HasPendingObjectNavOctreeId()

PRAGMA_DISABLE_DEPRECATION_WARNINGS bool FNavigationOctreeController::HasPendingObjectNavOctreeId ( UObject Object) const

◆ HasPendingUpdateForElement()

bool FNavigationOctreeController::HasPendingUpdateForElement ( FNavigationElementHandle  Element) const

◆ IsEmpty()

bool FNavigationOctreeController::IsEmpty ( ) const
inline

◆ IsNavigationOctreeLocked()

bool FNavigationOctreeController::IsNavigationOctreeLocked ( ) const
inline

◆ IsValid()

bool FNavigationOctreeController::IsValid ( ) const
inline

basically says if navoctree has been created already

◆ IsValidElement() [1/2]

bool FNavigationOctreeController::IsValidElement ( const FOctreeElementId2 ElementId) const
inline

◆ IsValidElement() [2/2]

bool FNavigationOctreeController::IsValidElement ( const FOctreeElementId2 ElementId) const
inline

◆ RemoveChild()

void FNavigationOctreeController::RemoveChild ( FNavigationElementHandle  Parent,
const TSharedRef< const FNavigationElement > &  Child 
)
inline

◆ RemoveNode()

void FNavigationOctreeController::RemoveNode ( FOctreeElementId2  ElementId,
FNavigationElementHandle  GetHandle 
)
inline

◆ RemoveObjectsNavOctreeId()

void FNavigationOctreeController::RemoveObjectsNavOctreeId ( const UObject Object)

◆ Reset()

void FNavigationOctreeController::Reset ( )

◆ SetNavigableGeometryStoringMode()

void FNavigationOctreeController::SetNavigableGeometryStoringMode ( FNavigationOctree::ENavGeometryStoringMode  NavGeometryMode)

◆ SetNavigationOctreeLock()

void FNavigationOctreeController::SetNavigationOctreeLock ( bool  bLock)
inline

Member Data Documentation

◆ bNavOctreeLock

uint8 FNavigationOctreeController::bNavOctreeLock

if set, navoctree updates are ignored, use with caution!

◆ NavOctree

TSharedPtr<FNavigationOctree, ESPMode::ThreadSafe> FNavigationOctreeController::NavOctree

◆ OctreeChildNodesMap

TMultiMap<UObject*, FWeakObjectPtr> FNavigationOctreeController::OctreeChildNodesMap

◆ PendingOctreeUpdates

TSet<FNavigationDirtyElement> FNavigationOctreeController::PendingOctreeUpdates

◆ PendingUpdates

TSet<FNavigationDirtyElement, FNavigationDirtyElementKeyFunctions> FNavigationOctreeController::PendingUpdates

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