You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Notable changes: - Added FNavigationOctreeController that wraps up what used to be NavigationSystemV1's navoctree-related logic - Added FNavigationDirtyAreasController that wraps up what used to be NavigationSystemV1's DirtyAreas-related logic - Added FNavigationDataHandler that is a helper struct that wraps up what used to be NavigationSystemV1's logic related to operation involving both navoctree and dirty areas - Deprecated both FNavDataConfig.NavigationDataClass and FNavDataConfig.NavigationDataClassName and replaced them with a single NavDataClass property - FNavigationOctree is not responsible for hashing element objects and storing their ElementId - NavOctree elements how know about the octree they belong to (via a member property). [at]Yoan.StAmant, [at]Maxime.Mercier, [at]Guillaume.Guay #rb Yoan.StAmant #ROBOMERGE-OWNER: mieszko.zielinski #ROBOMERGE-AUTHOR: mieszko.zielinski #ROBOMERGE-SOURCE: CL 7249089 via CL 7262555 #ROBOMERGE-BOT: (v369-7254125) [CL 7262559 by mieszko zielinski in Main branch]
29 lines
1.6 KiB
C
29 lines
1.6 KiB
C
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
#include "NavigationOctreeController.h"
|
|
#include "NavigationDirtyAreasController.h"
|
|
|
|
|
|
struct NAVIGATIONSYSTEM_API FNavigationDataHandler
|
|
{
|
|
FNavigationOctreeController& OctreeController;
|
|
FNavigationDirtyAreasController& DirtyAreasController;
|
|
|
|
FNavigationDataHandler(FNavigationOctreeController& InOctreeController, FNavigationDirtyAreasController& InDirtyAreasController);
|
|
|
|
void RemoveNavOctreeElementId(const FOctreeElementId& ElementId, int32 UpdateFlags);
|
|
FSetElementId RegisterNavOctreeElement(UObject& ElementOwner, INavRelevantInterface& ElementInterface, int32 UpdateFlags);
|
|
void AddElementToNavOctree(const FNavigationDirtyElement& DirtyElement);
|
|
void UnregisterNavOctreeElement(UObject& ElementOwner, INavRelevantInterface& ElementInterface, int32 UpdateFlags);
|
|
void UpdateNavOctreeElement(UObject& ElementOwner, INavRelevantInterface& ElementInterface, int32 UpdateFlags);
|
|
void UpdateNavOctreeParentChain(UObject& ElementOwner, bool bSkipElementOwnerUpdate = false);
|
|
bool UpdateNavOctreeElementBounds(UActorComponent& Comp, const FBox& NewBounds, const FBox& DirtyArea);
|
|
void FindElementsInNavOctree(const FBox& QueryBox, const FNavigationOctreeFilter& Filter, TArray<FNavigationOctreeElement>& Elements);
|
|
bool ReplaceAreaInOctreeData(const UObject& Object, TSubclassOf<UNavArea> OldArea, TSubclassOf<UNavArea> NewArea, bool bReplaceChildClasses);
|
|
void AddLevelCollisionToOctree(ULevel& Level);
|
|
void RemoveLevelCollisionFromOctree(ULevel& Level);
|
|
void UpdateActorAndComponentsInNavOctree(AActor& Actor);
|
|
void ProcessPendingOctreeUpdates();
|
|
};
|