UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NavigationQueryFilter.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
6#include "CoreMinimal.h"
7#endif
9#include "UObject/Object.h"
11#include "NavAreas/NavArea.h"
13#include "NavigationQueryFilter.generated.h"
14
15class ANavigationData;
16
17USTRUCT()
19{
21
22
23 UPROPERTY(EditAnywhere, Category=Area)
25
27 UPROPERTY(EditAnywhere, Category=Area, meta=(EditCondition="bOverrideTravelCost",ClampMin=0.001))
28 float TravelCostOverride;
29
31 UPROPERTY(EditAnywhere, Category=Area, meta=(EditCondition="bOverrideEnteringCost",ClampMin=0))
32 float EnteringCostOverride;
33
35 UPROPERTY(EditAnywhere, Category=Area)
36 uint32 bIsExcluded : 1;
37
38 UPROPERTY(EditAnywhere, Category=Area, meta=(InlineEditConditionToggle))
39 uint32 bOverrideTravelCost : 1;
40
41 UPROPERTY(EditAnywhere, Category=Area, meta=(InlineEditConditionToggle))
42 uint32 bOverrideEnteringCost : 1;
43
45 {
46 FMemory::Memzero(*this);
47 TravelCostOverride = 1.f;
48 }
49};
50
51//
52// Use UNavigationSystemV1.DescribeFilterFlags() to setup user friendly names of flags
53//
54USTRUCT()
56{
58
59#if CPP
60 union
61 {
62 struct
63 {
64#endif
65 UPROPERTY(EditAnywhere, Category=Flags)
66 uint32 bNavFlag0 : 1;
67 UPROPERTY(EditAnywhere, Category=Flags)
68 uint32 bNavFlag1 : 1;
69 UPROPERTY(EditAnywhere, Category=Flags)
70 uint32 bNavFlag2 : 1;
71 UPROPERTY(EditAnywhere, Category=Flags)
72 uint32 bNavFlag3 : 1;
73 UPROPERTY(EditAnywhere, Category=Flags)
74 uint32 bNavFlag4 : 1;
75 UPROPERTY(EditAnywhere, Category=Flags)
76 uint32 bNavFlag5 : 1;
77 UPROPERTY(EditAnywhere, Category=Flags)
78 uint32 bNavFlag6 : 1;
79 UPROPERTY(EditAnywhere, Category=Flags)
80 uint32 bNavFlag7 : 1;
81 UPROPERTY(EditAnywhere, Category=Flags)
82 uint32 bNavFlag8 : 1;
83 UPROPERTY(EditAnywhere, Category=Flags)
84 uint32 bNavFlag9 : 1;
85 UPROPERTY(EditAnywhere, Category=Flags)
86 uint32 bNavFlag10 : 1;
87 UPROPERTY(EditAnywhere, Category=Flags)
88 uint32 bNavFlag11 : 1;
89 UPROPERTY(EditAnywhere, Category=Flags)
90 uint32 bNavFlag12 : 1;
91 UPROPERTY(EditAnywhere, Category=Flags)
92 uint32 bNavFlag13 : 1;
93 UPROPERTY(EditAnywhere, Category=Flags)
94 uint32 bNavFlag14 : 1;
95 UPROPERTY(EditAnywhere, Category=Flags)
96 uint32 bNavFlag15 : 1;
97#if CPP
98 };
99 uint16 Packed = 0;
100 };
101#endif
102};
103
105UCLASS(Abstract, Blueprintable, MinimalAPI)
107{
109
110
111 UPROPERTY(EditAnywhere, Category=Filter, meta = (TitleProperty = "AreaClass"))
113
115 UPROPERTY(EditAnywhere, Category=Filter)
116 FNavigationFilterFlags IncludeFlags;
117
119 UPROPERTY(EditAnywhere, Category=Filter)
120 FNavigationFilterFlags ExcludeFlags;
121
124
128
129 template<class T>
130 static FSharedConstNavQueryFilter GetQueryFilter(const ANavigationData& NavData, TSubclassOf<UNavigationQueryFilter> FilterClass = T::StaticClass())
131 {
132 return GetQueryFilter(NavData, FilterClass);
133 }
134
135#if WITH_EDITOR
136 NAVIGATIONSYSTEM_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
137#endif
138
139protected:
140
143
146
148 NAVIGATIONSYSTEM_API void AddTravelCostOverride(TSubclassOf<UNavArea> AreaClass, float TravelCost);
149 NAVIGATIONSYSTEM_API void AddEnteringCostOverride(TSubclassOf<UNavArea> AreaClass, float EnteringCost);
150 NAVIGATIONSYSTEM_API void AddExcludedArea(TSubclassOf<UNavArea> AreaClass);
151
153 NAVIGATIONSYSTEM_API int32 FindAreaOverride(TSubclassOf<UNavArea> AreaClass) const;
154
156 NAVIGATIONSYSTEM_API virtual void InitializeFilter(const ANavigationData& NavData, const UObject* Querier, FNavigationQueryFilter& Filter) const;
157
159};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NavigationData.h:547
NAVIGATIONSYSTEM_API FSharedConstNavQueryFilter GetQueryFilter(TSubclassOf< UNavigationQueryFilter > FilterClass) const
Definition NavigationData.cpp:913
Definition Array.h:670
Definition SubclassOf.h:30
Definition NavArea.h:18
Definition NavigationQueryFilter.h:107
virtual TSubclassOf< UNavigationQueryFilter > GetSimpleFilterForAgent(const UObject &Querier) const
Definition NavigationQueryFilter.h:158
uint32 bIsMetaFilter
Definition NavigationQueryFilter.h:145
uint32 bInstantiateForQuerier
Definition NavigationQueryFilter.h:142
Definition Object.h:95
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
Definition NavigationQueryFilter.h:19
Definition NavigationQueryFilter.h:56
Definition NavQueryFilter.h:39
Definition UnrealType.h:6865