7#if ENABLE_COLLISION_ANALYZER
9#include "ICollisionAnalyzer.h"
10#include "CollisionAnalyzerModule.h"
70 OutType = ECAQueryShape::Sphere;
76 OutType = ECAQueryShape::Capsule;
77 const float CapsuleRadius =
InShape.GetCapsuleRadius();
96inline void CaptureGeomSweep(
const UWorld*
World,
const FVector& Start,
const FVector&
End,
const FQuat& Rot, ECAQueryMode::Type QueryMode,
const FCollisionShape&
PGeom,
ECollisionChannel TraceChannel,
const struct FCollisionQueryParams& Params,
const struct FCollisionResponseParams& ResponseParams,
const struct FCollisionObjectQueryParams& ObjectParams,
const TArray<FHitResult>& Results,
double CPUTime)
104 ECAQueryShape::Type QueryShape;
116 FCollisionAnalyzerModule::Get()->CaptureQuery(Start,
End, Rot, ECAQueryType::GeomSweep, QueryShape, QueryMode,
Dims, TraceChannel, Params, ResponseParams, ObjectParams, Results,
TouchAllResults,
CPUTime);
120inline void CaptureGeomSweep(
const UWorld*
World,
const FVector& Start,
const FVector&
End,
const FQuat& GeomRot, ECAQueryMode::Type QueryMode,
const FPhysicsGeometryCollection&
GeomCollection,
ECollisionChannel TraceChannel,
const struct FCollisionQueryParams& Params,
const struct FCollisionResponseParams& ResponseParams,
const struct FCollisionObjectQueryParams& ObjectParams,
const TArray<FHitResult>& Results,
double CPUTime)
128 ECAQueryShape::Type QueryShape = ECAQueryShape::Sphere;
141 FCollisionAnalyzerModule::Get()->CaptureQuery(Start,
End,
UseRot, ECAQueryType::GeomSweep, QueryShape, QueryMode,
Dims, TraceChannel, Params, ResponseParams, ObjectParams, Results,
TouchAllResults,
CPUTime);
158 FCollisionAnalyzerModule::Get()->CaptureQuery(Start,
End,
FQuat::Identity, ECAQueryType::Raycast, ECAQueryShape::Sphere, QueryMode,
FVector(0, 0, 0), TraceChannel, Params, ResponseParams, ObjectParams, Results,
TouchAllResults,
CPUTime);
165#define STARTQUERYTIMER() double StartTime = FPlatformTime::Seconds()
166#define CAPTUREGEOMSWEEP(World, Start, End, Rot, QueryMode, PGeom, TraceChannel, Params, ResponseParam, ObjectParam, Results) if (GCollisionAnalyzerIsRecording && IsInGameThread()) { CaptureGeomSweep(World, Start, End, Rot, QueryMode, PGeom, TraceChannel, Params, ResponseParam, ObjectParam, Results, FPlatformTime::Seconds() - StartTime); }
167#define CAPTURERAYCAST(World, Start, End, QueryMode, TraceChannel, Params, ResponseParam, ObjectParam, Results) if (GCollisionAnalyzerIsRecording && IsInGameThread()) { CaptureRaycast(World, Start, End, QueryMode, TraceChannel, Params, ResponseParam, ObjectParam, Results, FPlatformTime::Seconds() - StartTime); }
168#define CAPTUREGEOMOVERLAP(World, PGeom, PGeomPose, QueryMode, TraceChannel, Params, ResponseParams, ObjectParams, Results) if (GCollisionAnalyzerIsRecording && IsInGameThread()) { CaptureOverlap(World, PGeom, PGeomPose, QueryMode, TraceChannel, Params, ResponseParams, ObjectParams, Results, FPlatformTime::Seconds() - StartTime); }
173#define STARTQUERYTIMER()
174#define CAPTUREGEOMSWEEP(...)
175#define CAPTURERAYCAST(...)
176#define CAPTUREGEOMOVERLAP(...)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ECollisionChannel
Definition EngineTypes.h:1088
#define FVector
Definition IOSSystemIncludes.h:8
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
ECollisionChannel DefaultCollisionChannel
Definition WorldCollision.cpp:54
@ Sphere
Definition CollisionShape.h:14
@ Box
Definition CollisionShape.h:13
@ Capsule
Definition CollisionShape.h:15
Definition CollisionQueryParams.h:430
@ AllObjects
Definition CollisionQueryParams.h:433
Definition CollisionQueryParams.h:43
Definition CollisionQueryParams.h:324
Definition CollisionShape.h:21
static bool GeomSweepMulti(const UWorld *World, const GeomWrapper &InGeom, const FQuat &InGeomRot, TArray< FHitResult > &OutHits, FVector Start, FVector End, ECollisionChannel TraceChannel, const FCollisionQueryParams &Params, const FCollisionResponseParams &ResponseParams, const FCollisionObjectQueryParams &ObjectParams=FCollisionObjectQueryParams::DefaultObjectQueryParam)
static ENGINE_API bool RaycastMulti(const UWorld *World, TArray< struct FHitResult > &OutHits, const FVector &Start, const FVector &End, ECollisionChannel TraceChannel, const FCollisionQueryParams &Params, const FCollisionResponseParams &ResponseParams, const FCollisionObjectQueryParams &ObjectParams=FCollisionObjectQueryParams::DefaultObjectQueryParam)
Definition SceneQuery.cpp:975
Definition ChaosEngineInterface.h:304
static CORE_API const TQuat< double > Identity
Definition Quat.h:63