UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NavQueryFilter.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6
7// For now leave all the real numbers here as floats instead of conversion to FVector::FReal. Its not worth changing the virtual functions and breaking
8// any existing code. Its not required for heuristic scale or area costs to be larger or have greater precision than a float.
10{
11public:
13
14 virtual void Reset() = 0;
15
16 virtual void SetAreaCost(uint8 AreaType, float Cost) = 0;
17 virtual void SetFixedAreaEnteringCost(uint8 AreaType, float Cost) = 0;
18 virtual void SetExcludedArea(uint8 AreaType) = 0;
19 virtual void SetAllAreaCosts(const float* CostArray, const int32 Count) = 0;
20 virtual void GetAllAreaCosts(float* CostArray, float* FixedCostArray, const int32 Count) const = 0;
21 virtual void SetBacktrackingEnabled(const bool bBacktracking) = 0;
22 virtual bool IsBacktrackingEnabled() const = 0;
23 virtual float GetHeuristicScale() const = 0;
24 virtual bool IsEqual(const INavigationQueryFilterInterface* Other) const = 0;
25 virtual void SetIncludeFlags(uint16 Flags) = 0;
26 virtual uint16 GetIncludeFlags() const = 0;
27 virtual void SetExcludeFlags(uint16 Flags) = 0;
28 virtual uint16 GetExcludeFlags() const = 0;
29 virtual FVector GetAdjustedEndLocation(const FVector& EndLocation) const { return EndLocation; }
30
32};
33
37
38struct FNavigationQueryFilter : public TSharedFromThis<FNavigationQueryFilter, ESPMode::ThreadSafe>
39{
41private:
46public:
47
49 ENGINE_API void SetAreaCost(uint8 AreaType, float Cost);
50
53
56
59 ENGINE_API void SetAllAreaCosts(const float* CostArray, const int32 Count);
60
62 ENGINE_API void GetAllAreaCosts(float* CostArray, float* FixedCostArray, const int32 Count) const;
63
66
69
72
75
77 void SetMaxSearchNodes(const uint32 MaxNodes) { MaxSearchNodes = MaxNodes; }
78
80 inline uint32 GetMaxSearchNodes() const { return MaxSearchNodes; }
81
84
88
91
93 FVector GetAdjustedEndLocation(const FVector& EndPoint) const { return QueryFilterImpl->GetAdjustedEndLocation(EndPoint); }
94
95 template<typename FilterType>
97 {
98 QueryFilterImpl = MakeShareable(new FilterType());
99 }
100
105
109
111
112 inline bool operator==(const FNavigationQueryFilter& Other) const
113 {
115 const INavigationQueryFilterInterface* Impl1 = Other.GetImplementation();
116 return Impl0 && Impl1 && Impl0->IsEqual(Impl1);
117 }
118
120
121protected:
122 ENGINE_API void Assign(const FNavigationQueryFilter& Source);
123
126};
127
#define NULL
Definition oodle2base.h:134
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
SharedPointerInternals::TRawPtrProxy< ObjectType > MakeShareable(ObjectType *InObject)
Definition SharedPointer.h:1947
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
TSharedPtr< FNavigationQueryFilter, ESPMode::ThreadSafe > FSharedNavQueryFilter
Definition NavQueryFilter.h:35
TSharedPtr< const FNavigationQueryFilter, ESPMode::ThreadSafe > FSharedConstNavQueryFilter
Definition NavQueryFilter.h:36
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NavQueryFilter.h:10
virtual void SetAreaCost(uint8 AreaType, float Cost)=0
virtual float GetHeuristicScale() const =0
virtual void GetAllAreaCosts(float *CostArray, float *FixedCostArray, const int32 Count) const =0
virtual INavigationQueryFilterInterface * CreateCopy() const =0
virtual bool IsBacktrackingEnabled() const =0
virtual void SetFixedAreaEnteringCost(uint8 AreaType, float Cost)=0
virtual void SetAllAreaCosts(const float *CostArray, const int32 Count)=0
virtual void SetExcludeFlags(uint16 Flags)=0
virtual void SetExcludedArea(uint8 AreaType)=0
virtual void SetIncludeFlags(uint16 Flags)=0
virtual uint16 GetExcludeFlags() const =0
virtual bool IsEqual(const INavigationQueryFilterInterface *Other) const =0
virtual FVector GetAdjustedEndLocation(const FVector &EndLocation) const
Definition NavQueryFilter.h:29
virtual ~INavigationQueryFilterInterface()
Definition NavQueryFilter.h:12
virtual void SetBacktrackingEnabled(const bool bBacktracking)=0
virtual uint16 GetIncludeFlags() const =0
Definition Array.h:670
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT ObjectType * Get() const
Definition SharedPointer.h:1065
Definition NavQueryFilter.h:39
void SetBacktrackingEnabled(const bool bBacktracking)
Definition NavQueryFilter.h:87
TSharedPtr< INavigationQueryFilterInterface, ESPMode::ThreadSafe > QueryFilterImpl
Definition NavQueryFilter.h:124
FVector GetAdjustedEndLocation(const FVector &EndPoint) const
Definition NavQueryFilter.h:93
ENGINE_API void SetExcludeFlags(uint16 Flags)
Definition NavigationTypes.cpp:368
bool operator==(const FNavigationQueryFilter &Other) const
Definition NavQueryFilter.h:112
ENGINE_API void SetIncludeFlags(uint16 Flags)
Definition NavigationTypes.cpp:358
ENGINE_API void SetFixedAreaEnteringCost(uint8 AreaType, float Cost)
Definition NavigationTypes.cpp:332
ENGINE_API void SetAreaCost(uint8 AreaType, float Cost)
Definition NavigationTypes.cpp:326
ENGINE_API uint16 GetExcludeFlags() const
Definition NavigationTypes.cpp:373
float GetHeuristicScale() const
Definition NavQueryFilter.h:83
void SetMaxSearchNodes(const uint32 MaxNodes)
Definition NavQueryFilter.h:77
static ENGINE_API const uint32 DefaultMaxSearchNodes
Definition NavQueryFilter.h:119
ENGINE_API void Assign(const FNavigationQueryFilter &Source)
Definition NavigationTypes.cpp:308
void Reset()
Definition NavQueryFilter.h:108
const INavigationQueryFilterInterface * GetImplementation() const
Definition NavQueryFilter.h:106
ENGINE_API void GetAllAreaCosts(float *CostArray, float *FixedCostArray, const int32 Count) const
Definition NavigationTypes.cpp:353
bool IsBacktrackingEnabled() const
Definition NavQueryFilter.h:90
uint32 GetMaxSearchNodes() const
Definition NavQueryFilter.h:80
ENGINE_API uint16 GetIncludeFlags() const
Definition NavigationTypes.cpp:363
INavigationQueryFilterInterface * GetImplementation()
Definition NavQueryFilter.h:107
void SetFilterImplementation(const INavigationQueryFilterInterface *InQueryFilterImpl)
Definition NavQueryFilter.h:101
uint32 MaxSearchNodes
Definition NavQueryFilter.h:125
FNavigationQueryFilter()
Definition NavQueryFilter.h:40
void SetFilterType()
Definition NavQueryFilter.h:96
ENGINE_API FSharedNavQueryFilter GetCopy() const
Definition NavigationTypes.cpp:317
ENGINE_API void SetExcludedArea(uint8 AreaType)
Definition NavigationTypes.cpp:338
ENGINE_API void SetAllAreaCosts(const TArray< float > &CostArray)
Definition NavigationTypes.cpp:343