11#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
17#include "EnvQueryTypes.generated.h"
22class UBlackboardComponent;
35#ifndef USE_EQS_DEBUGGER
36#define USE_EQS_DEBUGGER (1 && !(UE_BUILD_SHIPPING || UE_BUILD_TEST))
40#define USE_EQS_TICKLOADDATA (1 && USE_EQS_DEBUGGER && WITH_EDITOR)
66 Score
UMETA(DisplayName=
"Score Only"),
122 Skip UMETA(DisplayName =
"Do not weight"),
145 AllPass
UMETA(Tooltip =
"All contexts must pass condition"),
146 AnyPass UMETA(Tooltip =
"At least one context must pass condition"),
156 MinScore UMETA(Tooltip =
"Use minimum score from all contexts"),
157 MaxScore UMETA(Tooltip =
"Use maximum score from all contexts"),
158 Multiply UMETA(Tooltip =
"Multiply scores from all contexts"),
190 SingleResult UMETA(Tooltip=
"Pick first item with the best score", DisplayName=
"Single Best Item"),
191 RandomBest5Pct UMETA(Tooltip=
"Pick random item with score 95% .. 100% of max", DisplayName=
"Single Random Item from Best 5%"),
192 RandomBest25Pct UMETA(Tooltip=
"Pick random item with score 75% .. 100% of max", DisplayName=
"Single Random Item from Best 25%"),
261UENUM(meta=(ScriptName=
"EnvDirectionType"))
289 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Param)
292 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Param)
295 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Param)
309 UPROPERTY(EditDefaultsOnly, Category=Direction)
313 UPROPERTY(EditDefaultsOnly, Category=Direction)
317 UPROPERTY(EditDefaultsOnly, Category=Direction)
321 UPROPERTY(EditDefaultsOnly, Category=Direction, meta=(DisplayName="Mode"))
345 UPROPERTY(EditDefaultsOnly, Category=Trace)
349 UPROPERTY(EditDefaultsOnly, Category=Trace, meta=(UIMin=0, ClampMin=0))
353 UPROPERTY(EditDefaultsOnly, Category=Trace, meta=(UIMin=0, ClampMin=0))
357 UPROPERTY(EditDefaultsOnly, Category=Trace, meta=(UIMin=0, ClampMin=0))
361 UPROPERTY(EditDefaultsOnly, Category=Trace, meta=(UIMin=0, ClampMin=0))
365 UPROPERTY(EditDefaultsOnly, Category=Trace, meta=(UIMin=0, ClampMin=0))
372 UPROPERTY(EditDefaultsOnly, Category=Trace)
373 float PostProjectionVerticalOffset;
376 UPROPERTY(EditDefaultsOnly, Category=Trace)
380 UPROPERTY(EditDefaultsOnly, Category=Trace)
384 UPROPERTY(EditDefaultsOnly, Category = Trace)
388 UPROPERTY(EditDefaultsOnly, Category=Trace)
392 UPROPERTY(EditDefaultsOnly, Category=Trace)
396 UPROPERTY(EditDefaultsOnly, Category=Trace, AdvancedDisplay)
400 UPROPERTY(EditDefaultsOnly, Category=Trace, AdvancedDisplay)
404 UPROPERTY(EditDefaultsOnly, Category=Trace)
408 UPROPERTY(EditDefaultsOnly, Category=Trace)
412 UPROPERTY(EditDefaultsOnly, Category=Trace)
416 UPROPERTY(EditDefaultsOnly, Category=Trace)
439 bOnlyBlockingHits(
true),
440 bOverlapComplex(
false),
441 bSkipOverlapQuerier(
false)
446 UPROPERTY(EditDefaultsOnly, Category = Trace, meta = (UIMin = 0, ClampMin = 0))
450 UPROPERTY(EditDefaultsOnly, Category = Trace, meta = (UIMin = 0, ClampMin = 0))
454 UPROPERTY(EditDefaultsOnly, Category = Trace, meta = (UIMin = 0, ClampMin = 0))
457 UPROPERTY(EditDefaultsOnly, Category = Trace, AdvancedDisplay, Meta =
496 inline bool IsValid()
const {
return DataOffset >= 0 && !bIsDiscarded; }
497 inline void Discard() { bIsDiscarded =
true; }
509 return Score !=
Other.Score ? Score <
Other.Score : DataOffset <
Other.DataOffset;
526 UPROPERTY(BlueprintReadOnly, Category = "EQS")
538 UPROPERTY(BlueprintReadOnly, Category = "EQS")
542 UPROPERTY(BlueprintReadOnly, Category = "EQS")
554 template<
typename TItemType>
559 && ItemType->IsChildOf(TItemType::StaticClass()));
588 UE_DEPRECATED(5.0,
"FEnvQueryResult::IsSuccsessful is deprecated. Use FEnvQueryResult::IsSuccessful instead.")
632 return sizeof(*this) +
687 return sizeof(*this) + Tests.GetAllocatedSize();
692#define EQSHEADERLOG(...)
694#define EQSHEADERLOG(msg) Log(msg)
763UCLASS(Abstract, MinimalAPI)
867#if !UE_BUILD_SHIPPING
869 double GenerationTimeWarningSeconds = 0.01f;
900 bool IsInSingleItemFinalSearch()
const {
return !!bPassOnSingleResult; }
909 template<
typename TypeItem>
927 template<
typename TypeItem>
944 TypeItem::SetValue(
RawData.GetData() + DataOffset, Item);
946 DataOffset += ValueSize;
953 template<
typename TypeItem,
typename TypeValue>
959 template<
typename TypeItem,
typename TypeValue>
997 inline void IncStats()
1003 inline void DecStats()
1023# define UE_EQS_DBGMSG(Condition, Format, ...) \
1026 Instance.ItemDetails[CurrentItem].FailedDescription = FString::Printf(Format, ##__VA_ARGS__); \
1029# define UE_EQS_LOG(CategoryName, Verbosity, Format, ...) \
1030 UE_LOG(CategoryName, Verbosity, Format, ##__VA_ARGS__); \
1031 UE_EQS_DBGMSG(true, Format, ##__VA_ARGS__);
1033# define UE_EQS_DBGMSG(Condition, Format, ...)
1034# define UE_EQS_LOG(CategoryName, Verbosity, Format, ...) UE_LOG(CategoryName, Verbosity, Format, ##__VA_ARGS__);
1038 AIMODULE_API FString GetExecutionTimeDescription()
const;
1040#if CPP || UE_BUILD_DOCS
1068 int32 GetIndex()
const
1073 inline explicit operator bool()
const
1114 if (TestPurpose != EEnvTestPurpose::Score)
1134 UE_EQS_LOG(
LogEQS,
Error,
TEXT(
"Filtering Type set to 'Match' for floating point test. Will consider test as failed in all cases."));
1139 UE_EQS_LOG(
LogEQS,
Error,
TEXT(
"Filtering Type set to invalid value for floating point test. Will consider test as failed in all cases."));
1173 UE_EQS_LOG(
LogEQS,
Error,
TEXT(
"Filtering Type set to 'Maximum' for boolean test. Will consider test as failed in all cases."));
1178 UE_EQS_LOG(
LogEQS,
Error,
TEXT(
"Filtering Type set to 'Minimum' for boolean test. Will consider test as failed in all cases."));
1183 UE_EQS_LOG(
LogEQS,
Error,
TEXT(
"Filtering Type set to 'Range' for boolean test. Will consider test as failed in all cases."));
1188 UE_EQS_LOG(
LogEQS,
Error,
TEXT(
"Filtering Type set to invalid value for boolean test. Will consider test as failed in all cases."));
1222 inline explicit operator bool()
const
1233 FConstItemIterator::operator++();
1265 case EEnvTestScoreOperator::AverageScore:
1269 case EEnvTestScoreOperator::MinScore:
1276 case EEnvTestScoreOperator::MaxScore:
1282 case EEnvTestScoreOperator::Multiply:
1340 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = EQS)
1343 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = EQS)
1346 UPROPERTY(BlueprintReadWrite, Category = EQS)
1349 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = EQS)
1352 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = EQS, meta=(EditCondition="bAllowBBKey", EditConditionHides))
1376 UPROPERTY(Category = Node, EditAnywhere, meta = (EditCondition =
"!bUseBBKeyForQueryTemplate"))
1379 UPROPERTY(Category = Node, EditAnywhere)
1383 UPROPERTY(EditAnywhere, Category = Blackboard, meta = (EditCondition = "bUseBBKeyForQueryTemplate"))
1387 UPROPERTY(Category = Node, EditAnywhere)
1390 UPROPERTY(Category = Node, EditAnywhere, meta=(InlineEditConditionToggle))
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define INC_MEMORY_STAT_BY(StatId, Amount)
Definition Stats.h:700
#define DEC_DWORD_STAT_BY(StatId, Amount)
Definition Stats.h:703
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
#define INC_DWORD_STAT_BY(StatId, Amount)
Definition Stats.h:698
#define DECLARE_DWORD_COUNTER_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:682
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
#define DECLARE_FLOAT_COUNTER_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:681
#define DEC_MEMORY_STAT_BY(StatId, Amount)
Definition Stats.h:705
#define DECLARE_MEMORY_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:687
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
DIRECTLINK_API Display
Definition DirectLinkLog.h:8
ETraceTypeQuery
Definition EngineTypes.h:1200
ECollisionChannel
Definition EngineTypes.h:1088
#define UE_EQS_DBGMSG(Condition, Format,...)
Definition EnvQueryTypes.h:1023
#define UE_EQS_LOG(CategoryName, Verbosity, Format,...)
Definition EnvQueryTypes.h:1029
EEnvQueryResultNormalizationOption
Definition EnvQueryTypes.h:199
EAIParamType
Definition EnvQueryTypes.h:218
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
return true
Definition ExternalRpcRegistry.cpp:601
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
bool IsSuccessful(ESavePackageResult Result)
Definition Package.h:101
const bool bTraceComplex
Definition PhysicsInterfaceUtils.h:19
#define Square(a, x, y)
Definition Predicates.inl:251
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint32 Offset
Definition VulkanMemory.cpp:4033
bool Failed
Definition binka_ue_decode_test.cpp:18
Definition NavigationData.h:547
Definition Archive.h:1208
Definition NameTypes.h:617
SizeType AddZeroed()
Definition Array.h:2755
UE_NODEBUG UE_FORCEINLINE_HINT SIZE_T GetAllocatedSize(void) const
Definition Array.h:1059
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SubclassOf.h:30
Definition BlackboardData.h:46
Definition EnvQueryContext.h:15
Definition EnvQueryGenerator.h:23
Definition EnvQueryItemType_ActorBase.h:16
Definition EnvQueryItemType_VectorBase.h:15
Definition EnvQueryItemType.h:16
Definition EnvQueryTest.h:62
Definition EnvQueryTypes.h:765
static AIMODULE_API const float SkippedItemValue
Definition EnvQueryTypes.h:770
static AIMODULE_API float UnlimitedStepTime
Definition EnvQueryTypes.h:773
Definition NavigationQueryFilter.h:107
Definition EnvQueryTypes.h:263
Type
Definition EnvQueryTypes.h:265
Definition EnvQueryTypes.h:163
Type
Definition EnvQueryTypes.h:165
@ Failed
Definition EnvQueryTypes.h:167
@ Passed
Definition EnvQueryTypes.h:166
Definition EnvQueryTypes.h:252
Type
Definition EnvQueryTypes.h:254
Definition EnvQueryTypes.h:207
Type
Definition EnvQueryTypes.h:209
Definition EnvQueryTypes.h:187
Type
Definition EnvQueryTypes.h:189
Definition EnvQueryTypes.h:173
Type
Definition EnvQueryTypes.h:175
@ Processing
Definition EnvQueryTypes.h:176
@ OwnerLost
Definition EnvQueryTypes.h:180
@ Failed
Definition EnvQueryTypes.h:178
@ Aborted
Definition EnvQueryTypes.h:179
@ MissingParam
Definition EnvQueryTypes.h:181
@ Success
Definition EnvQueryTypes.h:177
Definition EnvQueryTypes.h:273
Type
Definition EnvQueryTypes.h:275
@ SpecifiedValue
Definition EnvQueryTypes.h:278
@ FilterThreshold
Definition EnvQueryTypes.h:280
Definition EnvQueryTypes.h:227
Type
Definition EnvQueryTypes.h:229
@ NavigationOverLedges
Definition EnvQueryTypes.h:234
@ GeometryByProfile
Definition EnvQueryTypes.h:233
@ GeometryByChannel
Definition EnvQueryTypes.h:232
Definition EnvQueryTypes.h:128
Type
Definition EnvQueryTypes.h:130
Definition EnvQueryTypes.h:142
Type
Definition EnvQueryTypes.h:144
Definition EnvQueryTypes.h:73
Type
Definition EnvQueryTypes.h:75
@ Minimum
Definition EnvQueryTypes.h:77
@ Maximum
Definition EnvQueryTypes.h:79
@ Match
Definition EnvQueryTypes.h:83
@ Range
Definition EnvQueryTypes.h:81
Definition EnvQueryTypes.h:62
Type
Definition EnvQueryTypes.h:64
Definition EnvQueryTypes.h:89
Type
Definition EnvQueryTypes.h:91
@ InverseLinear
Definition EnvQueryTypes.h:94
@ SquareRoot
Definition EnvQueryTypes.h:95
Definition EnvQueryTypes.h:152
Type
Definition EnvQueryTypes.h:154
Definition EnvQueryTypes.h:114
Type
Definition EnvQueryTypes.h:116
Definition EnvQueryTypes.h:240
Type
Definition EnvQueryTypes.h:242
Definition EnvQueryTypes.h:1331
AIMODULE_API const ANavigationData * FindNavigationDataForQuery(FEnvQueryInstance &QueryInstance)
Definition EnvQueryTypes.cpp:291
SIZE_T GetAllocatedSize(const T &Value)
Definition ManagedArray.h:93
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition EnvQueryTypes.h:1337
static double Seconds()
Definition AndroidPlatformTime.h:20
Definition BehaviorTreeTypes.h:624
void AllowNoneAsValue(bool bAllow)
Definition BehaviorTreeTypes.h:659
Definition EnvQueryTypes.h:1371
Definition EnvQueryTypes.h:760
Definition EnvQueryTypes.h:305
Definition EnvQueryTypes.h:286
Definition EnvQueryTypes.h:429
Definition EnvQueryTypes.h:642
uint32 GetAllocatedSize() const
Definition EnvQueryTypes.h:659
Definition EnvQueryTypes.h:740
void Store(const FEnvQueryInstance &QueryInstance, const float ExecutionTime, const bool bStepDone)
Definition EnvQueryInstance.cpp:29
FEnvQueryDebugData()
Definition EnvQueryTypes.h:752
TArray< FEnvQueryItem > DebugItems
Definition EnvQueryTypes.h:741
TArray< uint8 > RawData
Definition EnvQueryTypes.h:743
int32 CurrentOptionGeneratorIdx
Definition EnvQueryTypes.h:750
void PrepareOption(const FEnvQueryInstance &QueryInstance, const TArray< UEnvQueryGenerator * > &Generators, const int32 NumTests)
Definition EnvQueryInstance.cpp:45
TArray< FString > PerformedTestNames
Definition EnvQueryTypes.h:744
TArray< FEnvQueryItemDetails > DebugItemDetails
Definition EnvQueryTypes.h:742
uint32 bSingleItemResult
Definition EnvQueryTypes.h:747
Definition EnvQueryTypes.h:718
int32 NumGenerators
Definition EnvQueryTypes.h:719
TArray< FName > GeneratorNames
Definition EnvQueryTypes.h:720
FOptionData()
Definition EnvQueryTypes.h:725
TArray< int32 > TestIndices
Definition EnvQueryTypes.h:723
int32 OptionIdx
Definition EnvQueryTypes.h:722
Definition EnvQueryTypes.h:709
FOptionStat()
Definition EnvQueryTypes.h:713
TArray< FStep > StepData
Definition EnvQueryTypes.h:710
int32 NumRuns
Definition EnvQueryTypes.h:711
Definition EnvQueryTypes.h:700
int32 NumProcessedItems
Definition EnvQueryTypes.h:702
float ExecutionTime
Definition EnvQueryTypes.h:701
FStep()
Definition EnvQueryTypes.h:704
Definition EnvQueryTypes.h:698
TArray< FOptionStat > OptionStats
Definition EnvQueryTypes.h:728
TArray< FOptionData > OptionData
Definition EnvQueryTypes.h:729
Definition EnvQueryTypes.h:781
Definition EnvQueryTypes.h:793
void IncStats()
Definition EnvQueryTypes.h:1014
uint32 GetContextAllocatedSize() const
Definition EnvQueryTypes.h:1013
void DecStats()
Definition EnvQueryTypes.h:1015
uint8 bPassOnSingleResult
Definition EnvQueryTypes.h:850
bool IsCurrentlyRunningAsync() const
Definition EnvQueryTypes.h:904
void AddItemData(typename TypeItem::FValueType ItemValue)
Definition EnvQueryTypes.h:910
double StartTime
Definition EnvQueryTypes.h:859
uint8 bFoundSingleResult
Definition EnvQueryTypes.h:847
FEnvQueryDebugData DebugData
Definition EnvQueryTypes.h:1319
void AddItemData(TArray< TypeValue > &ItemCollection)
Definition EnvQueryTypes.h:960
void AddItemData(TypeValue ItemValue)
Definition EnvQueryTypes.h:954
int32 CurrentTestStartingItem
Definition EnvQueryTypes.h:827
bool CanBatchTest() const
Definition EnvQueryTypes.h:902
uint32 GetAllocatedSize() const
Definition EnvQueryTypes.h:1012
static AIMODULE_API bool bDebuggingInfoEnabled
Definition EnvQueryTypes.h:1320
uint8 bIsCurrentlyRunningAsync
Definition EnvQueryTypes.h:856
uint8 bStoreDebugInfo
Definition EnvQueryTypes.h:843
int32 NumProcessedItems
Definition EnvQueryTypes.h:840
double CurrentStepTimeLimit
Definition EnvQueryTypes.h:865
EEnvQueryRunMode::Type Mode
Definition EnvQueryTypes.h:873
float FNamedParamValueType
Definition EnvQueryTypes.h:796
uint8 bHasLoggedTimeLimitWarning
Definition EnvQueryTypes.h:853
void AddItemData(TArray< typename TypeItem::FValueType > &ItemCollection)
Definition EnvQueryTypes.h:928
double TotalExecutionTime
Definition EnvQueryTypes.h:862
Definition EnvQueryTypes.h:606
FEnvQueryItemDetails()
Definition EnvQueryTypes.h:619
FString FailedDescription
Definition EnvQueryTypes.h:616
FEnvQueryItemDetails(int32 NumTests, int32 InItemIndex)
Definition EnvQueryTypes.h:620
TArray< float > TestWeightedScores
Definition EnvQueryTypes.h:612
uint32 GetAllocatedSize() const
Definition EnvQueryTypes.h:630
int32 FailedTestIndex
Definition EnvQueryTypes.h:614
TArray< float > TestResults
Definition EnvQueryTypes.h:608
int32 ItemIndex
Definition EnvQueryTypes.h:615
Definition EnvQueryTypes.h:486
uint32 bIsDiscarded
Definition EnvQueryTypes.h:494
int32 DataOffset
Definition EnvQueryTypes.h:491
bool IsValid() const
Definition EnvQueryTypes.h:496
FEnvQueryItem()
Definition EnvQueryTypes.h:512
bool operator<(const FEnvQueryItem &Other) const
Definition EnvQueryTypes.h:499
void Discard()
Definition EnvQueryTypes.h:497
float Score
Definition EnvQueryTypes.h:488
FEnvQueryItem(int32 InOffset)
Definition EnvQueryTypes.h:513
Definition EnvQueryTypes.h:664
Definition EnvQueryTypes.h:520
void MarkAsOwnerLost()
Definition EnvQueryTypes.h:584
void MarkAsAborted()
Definition EnvQueryTypes.h:581
void MarkAsMissingParam()
Definition EnvQueryTypes.h:580
const uint8 * GetItemRawMemory(const int32 Index) const
Definition EnvQueryTypes.h:568
void MarkAsFinishedWithoutIssues()
Definition EnvQueryTypes.h:583
FEnvQueryResult(const EEnvQueryStatus::Type &InStatus)
Definition EnvQueryTypes.h:575
bool IsSuccessful() const
Definition EnvQueryTypes.h:579
void MarkAsFailed()
Definition EnvQueryTypes.h:582
FEnvQueryResult()
Definition EnvQueryTypes.h:574
const TItemType::FValueType & GetItemAsTypeChecked(const int32 Index) const
Definition EnvQueryTypes.h:555
bool IsFinished() const
Definition EnvQueryTypes.h:577
EEnvQueryStatus::Type GetRawStatus() const
Definition EnvQueryTypes.h:586
bool IsAborted() const
Definition EnvQueryTypes.h:578
Definition EnvQueryTypes.h:599
FRotator Rotation
Definition EnvQueryTypes.h:601
FVector Location
Definition EnvQueryTypes.h:600
Definition EnvQueryTypes.h:329
EDescriptionMode
Definition EnvQueryTypes.h:333
@ Detailed
Definition EnvQueryTypes.h:335
@ Brief
Definition EnvQueryTypes.h:334
Definition UnrealType.h:6865
Definition UnrealTypeTraits.h:172
Definition ObjectPtr.h:488
Definition LightweightStats.h:416
Definition WeakObjectPtrTemplates.h:25