You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#rb Daniel.Broder #rnx #ROBOMERGE-AUTHOR: stephan.delmer #ROBOMERGE-SOURCE: CL 19028451 via CL 19028460 via CL 19028968 via CL 19029041 via CL 19029156 via CL 19031956 #ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v917-18934589) [CL 19032180 by stephan delmer in ue5-main branch]
82 lines
3.8 KiB
C++
82 lines
3.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/ObjectMacros.h"
|
|
#include "Templates/SubclassOf.h"
|
|
#include "NavFilters/NavigationQueryFilter.h"
|
|
#include "AI/Navigation/NavigationTypes.h"
|
|
#include "NavigationSystemTypes.h"
|
|
#include "EnvironmentQuery/EnvQueryContext.h"
|
|
#include "DataProviders/AIDataProvider.h"
|
|
#include "EnvironmentQuery/EnvQueryTest.h"
|
|
#include "EnvQueryTest_Pathfinding.generated.h"
|
|
|
|
class ANavigationData;
|
|
class UNavigationSystemV1;
|
|
|
|
UENUM()
|
|
namespace EEnvTestPathfinding
|
|
{
|
|
enum Type
|
|
{
|
|
PathExist,
|
|
PathCost,
|
|
PathLength,
|
|
};
|
|
}
|
|
|
|
UCLASS()
|
|
class AIMODULE_API UEnvQueryTest_Pathfinding : public UEnvQueryTest
|
|
{
|
|
GENERATED_UCLASS_BODY()
|
|
|
|
/** testing mode */
|
|
UPROPERTY(EditDefaultsOnly, Category=Pathfinding)
|
|
TEnumAsByte<EEnvTestPathfinding::Type> TestMode;
|
|
|
|
/** context: other end of pathfinding test */
|
|
UPROPERTY(EditDefaultsOnly, Category=Pathfinding)
|
|
TSubclassOf<UEnvQueryContext> Context;
|
|
|
|
/** pathfinding direction */
|
|
UPROPERTY(EditDefaultsOnly, Category=Pathfinding)
|
|
FAIDataProviderBoolValue PathFromContext;
|
|
|
|
/** if set, items with failed path will be invalidated (PathCost, PathLength) */
|
|
UPROPERTY(EditDefaultsOnly, Category=Pathfinding, AdvancedDisplay)
|
|
FAIDataProviderBoolValue SkipUnreachable;
|
|
|
|
/** navigation filter to use in pathfinding */
|
|
UPROPERTY(EditDefaultsOnly, Category=Pathfinding)
|
|
TSubclassOf<UNavigationQueryFilter> FilterClass;
|
|
|
|
virtual void RunTest(FEnvQueryInstance& QueryInstance) const override;
|
|
|
|
virtual FText GetDescriptionTitle() const override;
|
|
virtual FText GetDescriptionDetails() const override;
|
|
|
|
#if WITH_EDITOR
|
|
/** update test properties after changing mode */
|
|
virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
|
|
#endif
|
|
virtual void PostLoad() override;
|
|
|
|
protected:
|
|
|
|
DECLARE_DELEGATE_RetVal_SevenParams(bool, FTestPathSignature, const FVector&, const FVector&, EPathFindingMode::Type, const ANavigationData&, UNavigationSystemV1&, FSharedConstNavQueryFilter, const UObject*);
|
|
DECLARE_DELEGATE_RetVal_SevenParams(float, FFindPathSignature, const FVector&, const FVector&, EPathFindingMode::Type, const ANavigationData&, UNavigationSystemV1&, FSharedConstNavQueryFilter, const UObject*);
|
|
|
|
bool TestPathFrom(const FVector& ItemPos, const FVector& ContextPos, EPathFindingMode::Type Mode, const ANavigationData& NavData, UNavigationSystemV1& NavSys, FSharedConstNavQueryFilter NavFilter, const UObject* PathOwner) const;
|
|
bool TestPathTo(const FVector& ItemPos, const FVector& ContextPos, EPathFindingMode::Type Mode, const ANavigationData& NavData, UNavigationSystemV1& NavSys, FSharedConstNavQueryFilter NavFilter, const UObject* PathOwner) const;
|
|
float FindPathCostFrom(const FVector& ItemPos, const FVector& ContextPos, EPathFindingMode::Type Mode, const ANavigationData& NavData, UNavigationSystemV1& NavSys, FSharedConstNavQueryFilter NavFilter, const UObject* PathOwner) const;
|
|
float FindPathCostTo(const FVector& ItemPos, const FVector& ContextPos, EPathFindingMode::Type Mode, const ANavigationData& NavData, UNavigationSystemV1& NavSys, FSharedConstNavQueryFilter NavFilter, const UObject* PathOwner) const;
|
|
float FindPathLengthFrom(const FVector& ItemPos, const FVector& ContextPos, EPathFindingMode::Type Mode, const ANavigationData& NavData, UNavigationSystemV1& NavSys, FSharedConstNavQueryFilter NavFilter, const UObject* PathOwner) const;
|
|
float FindPathLengthTo(const FVector& ItemPos, const FVector& ContextPos, EPathFindingMode::Type Mode, const ANavigationData& NavData, UNavigationSystemV1& NavSys, FSharedConstNavQueryFilter NavFilter, const UObject* PathOwner) const;
|
|
|
|
ANavigationData* FindNavigationData(UNavigationSystemV1& NavSys, UObject* Owner) const;
|
|
|
|
virtual TSubclassOf<UNavigationQueryFilter> GetNavFilterClass(FEnvQueryInstance& QueryInstance) const;
|
|
};
|