UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneQuery.cpp File Reference

Classes

struct  FGeomSQAdditionalInputs
 
struct  FGeomCollectionSQAdditionalInputs
 
struct  FPhysicsGeometrySQAdditionalInputs
 
struct  FRaycastSQAdditionalInputs
 
struct  TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >
 
struct  FClusterUnionHit
 
struct  FDefaultAccelContainer
 
struct  FOverrideAccelContainer< AccelType >
 

Namespaces

namespace  Chaos
 
namespace  Chaos::Private
 

Macros

#define DEFINE_GENERIC_GEOM_FOR_ACCEL(TACCEL)
 

Typedefs

template<typename GeomType >
using TGeomSQInputs = std::conditional_t< std::is_same_v< GeomType, FPhysicsGeometryCollection >, FGeomCollectionSQAdditionalInputs, std::conditional_t< std::is_same_v< GeomType, FCollisionShape >, FGeomSQAdditionalInputs, std::conditional_t< std::is_same_v< GeomType, FPhysicsGeometry >, FPhysicsGeometrySQAdditionalInputs, void > > >
 
using EThreadQueryContext = Chaos::EThreadQueryContext
 
using EQueryInfo = Chaos::EQueryInfo
 

Enumerations

enum class  ESingleMultiOrTest : uint8 { Single , Multi , Test }
 
enum class  ESweepOrRay : uint8 { Raycast , Sweep }
 

Functions

 CSV_DEFINE_CATEGORY (SceneQuery, false)
 
bool GetIgnoreQueryHandler ()
 
template<typename GeomType >
TGeomSQInputs< GeomTypeGeomToSQInputs (const GeomType &Geom, const FQuat &Rot)
 
bool BuildQueryShape (const FCollisionShape &CollisionShape, Chaos::FQueryShape &OutQueryShape)
 
bool BuildQueryShape (const FPhysicsGeometryCollection &GeometryCollection, Chaos::FQueryShape &OutQueryShape)
 
void ConvertToConvex (const Chaos::FQueryShape &QueryShape, Chaos::FImplicitObjectPtr &OutConvex)
 
EThreadQueryContext GetThreadQueryContext (const Chaos::FPhysicsSolver &Solver)
 
template<typename Traits , typename GeomInputsType , typename AccelContainerType >
bool TSceneCastCommonImpWithRetryRequest (const UWorld *World, typename Traits::OutHitsType &OutHits, const GeomInputsType &GeomInputs, const FVector Start, const FVector End, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams, const AccelContainerType &AccelContainer, bool &bOutRequestRetry, FCollisionQueryParams &OutRetryParams)
 
template<typename Traits , typename GeomInputsType , typename AccelContainerType >
bool TSceneCastCommonImp (const UWorld *World, typename Traits::OutHitsType &OutHits, const GeomInputsType &GeomInputs, const FVector Start, const FVector End, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams, const AccelContainerType &AccelContainer)
 
template<typename HitType , typename PTHitType , ESweepOrRay SweepOrRay, ESingleMultiOrTest SingleMultiOrTest, typename GeomInputsType , typename OutHitsType , typename AccelContainerType >
bool TraceCommonImp (const EThreadQueryContext ThreadContext, const UWorld *World, OutHitsType &OutHits, const GeomInputsType &GeomInputs, const FVector Start, const FVector End, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams, const AccelContainerType &AccelContainer)
 
template<ESweepOrRay SweepOrRay, ESingleMultiOrTest SingleMultiOrTest, typename GeomInputsType , typename OutHitsType , typename AccelContainerType >
bool TraceCommonImp (const EThreadQueryContext ThreadContext, const UWorld *World, OutHitsType &OutHits, const GeomInputsType &GeomInputs, const FVector Start, const FVector End, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams, const AccelContainerType &AccelContainer)
 
template<ESingleMultiOrTest SingleMultiOrTest, typename GeomInputsType , typename OutHitsType >
bool RaycastWithQueryHandler (UPhysicsQueryHandler &QueryHandler, const EThreadQueryContext ThreadContext, const UWorld *World, OutHitsType &OutHits, const GeomInputsType &GeomInputs, const FVector Start, const FVector End, const Chaos::FCommonQueryData &CommonData)
 
template<ESingleMultiOrTest SingleMultiOrTest, typename OutHitsType >
bool SweepWithQueryHandler (UPhysicsQueryHandler &QueryHandler, const EThreadQueryContext ThreadContext, const UWorld *World, OutHitsType &OutHits, const Chaos::FQueryShape &QueryShape, const FQuat &GeomRot, const FVector Start, const FVector End, const Chaos::FCommonQueryData &CommonData)
 
template<ESingleMultiOrTest SingleMultiOrTest, typename OutHitsType >
bool SweepWithQueryHandler (UPhysicsQueryHandler &QueryHandler, const EThreadQueryContext ThreadContext, const UWorld *World, OutHitsType &OutHits, const FGeomSQAdditionalInputs &GeomInputs, const FVector Start, const FVector End, const Chaos::FCommonQueryData &CommonData)
 
template<ESingleMultiOrTest SingleMultiOrTest, typename OutHitsType >
bool SweepWithQueryHandler (UPhysicsQueryHandler &QueryHandler, const EThreadQueryContext ThreadContext, const UWorld *World, OutHitsType &OutHits, const FGeomCollectionSQAdditionalInputs &GeomInputs, const FVector Start, const FVector End, const Chaos::FCommonQueryData &CommonData)
 
template<ESweepOrRay SweepOrRay, ESingleMultiOrTest SingleMultiOrTest, typename OutHitsType , typename GeomInputsType , typename AccelContainerType = FDefaultAccelContainer>
bool TSceneCastCommon (const UWorld *World, OutHitsType &OutHits, const GeomInputsType &GeomInputs, const FVector Start, const FVector End, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams, const AccelContainerType &AccelContainer=FDefaultAccelContainer{})
 
template<typename OverlapHitType , EQueryInfo InfoType, typename CollisionAnalyzerType , typename AccelContainerType >
bool GeomOverlapMultiImp (const UWorld *World, const FPhysicsGeometry &Geom, const CollisionAnalyzerType &CollisionAnalyzerShape, const FTransform &GeomPose, TArray< FOverlapResult > &OutOverlaps, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams, const AccelContainerType &AccelContainer)
 
template<EQueryInfo InfoType, typename GeomType , typename AccelContainerType = FDefaultAccelContainer>
bool GeomOverlapMultiHelper (const EThreadQueryContext ThreadContext, const UWorld *World, const GeomType &InGeom, const FTransform &GeomPose, TArray< FOverlapResult > &OutOverlaps, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams, const AccelContainerType &AccelContainer=FDefaultAccelContainer{})
 
template<EQueryInfo InfoType>
bool GeomOverlapMultiHelperWithQueryHandler (UPhysicsQueryHandler &QueryHandler, const EThreadQueryContext ThreadContext, const UWorld *World, const Chaos::FQueryShape &QueryShape, const FTransform &GeomPose, TArray< FOverlapResult > &OutOverlaps, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams)
 
template<EQueryInfo InfoType>
bool GeomOverlapMultiHelperWithQueryHandler (UPhysicsQueryHandler &QueryHandler, const EThreadQueryContext ThreadContext, const UWorld *World, const FCollisionShape &CollisionShape, const FTransform &GeomPose, TArray< FOverlapResult > &OutOverlaps, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams)
 
template<EQueryInfo InfoType>
bool GeomOverlapMultiHelperWithQueryHandler (UPhysicsQueryHandler &QueryHandler, const EThreadQueryContext ThreadContext, const UWorld *World, const FPhysicsGeometryCollection &CollisionShape, const FTransform &GeomPose, TArray< FOverlapResult > &OutOverlaps, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams)
 
template<EQueryInfo InfoType, typename GeomType , typename AccelContainerType = FDefaultAccelContainer>
bool GeomOverlapMultiHelper (const UWorld *World, const GeomType &InGeom, const FTransform &GeomPose, TArray< FOverlapResult > &OutOverlaps, ECollisionChannel TraceChannel, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParams, const struct FCollisionObjectQueryParams &ObjectParams, const AccelContainerType &AccelContainer=FDefaultAccelContainer{})
 

Variables

float DebugLineLifetime = 2.f
 

Macro Definition Documentation

◆ DEFINE_GENERIC_GEOM_FOR_ACCEL

Typedef Documentation

◆ EQueryInfo

◆ EThreadQueryContext

◆ TGeomSQInputs

Enumeration Type Documentation

◆ ESingleMultiOrTest

enum class ESingleMultiOrTest : uint8
strong
Enumerator
Single 
Multi 
Test 

◆ ESweepOrRay

enum class ESweepOrRay : uint8
strong
Enumerator
Raycast 
Sweep 

Function Documentation

◆ BuildQueryShape() [1/2]

bool BuildQueryShape ( const FCollisionShape CollisionShape,
Chaos::FQueryShape OutQueryShape 
)

◆ BuildQueryShape() [2/2]

bool BuildQueryShape ( const FPhysicsGeometryCollection GeometryCollection,
Chaos::FQueryShape OutQueryShape 
)

◆ ConvertToConvex()

void ConvertToConvex ( const Chaos::FQueryShape QueryShape,
Chaos::FImplicitObjectPtr OutConvex 
)

◆ CSV_DEFINE_CATEGORY()

CSV_DEFINE_CATEGORY ( SceneQuery  ,
false   
)

◆ GeomOverlapMultiHelper() [1/2]

template<EQueryInfo InfoType, typename GeomType , typename AccelContainerType = FDefaultAccelContainer>
bool GeomOverlapMultiHelper ( const EThreadQueryContext  ThreadContext,
const UWorld World,
const GeomType InGeom,
const FTransform GeomPose,
TArray< FOverlapResult > &  OutOverlaps,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams,
const AccelContainerType AccelContainer = FDefaultAccelContainer{} 
)

◆ GeomOverlapMultiHelper() [2/2]

template<EQueryInfo InfoType, typename GeomType , typename AccelContainerType = FDefaultAccelContainer>
bool GeomOverlapMultiHelper ( const UWorld World,
const GeomType InGeom,
const FTransform GeomPose,
TArray< FOverlapResult > &  OutOverlaps,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams,
const AccelContainerType AccelContainer = FDefaultAccelContainer{} 
)

◆ GeomOverlapMultiHelperWithQueryHandler() [1/3]

template<EQueryInfo InfoType>
bool GeomOverlapMultiHelperWithQueryHandler ( UPhysicsQueryHandler QueryHandler,
const EThreadQueryContext  ThreadContext,
const UWorld World,
const Chaos::FQueryShape QueryShape,
const FTransform GeomPose,
TArray< FOverlapResult > &  OutOverlaps,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams 
)

◆ GeomOverlapMultiHelperWithQueryHandler() [2/3]

template<EQueryInfo InfoType>
bool GeomOverlapMultiHelperWithQueryHandler ( UPhysicsQueryHandler QueryHandler,
const EThreadQueryContext  ThreadContext,
const UWorld World,
const FCollisionShape CollisionShape,
const FTransform GeomPose,
TArray< FOverlapResult > &  OutOverlaps,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams 
)

◆ GeomOverlapMultiHelperWithQueryHandler() [3/3]

template<EQueryInfo InfoType>
bool GeomOverlapMultiHelperWithQueryHandler ( UPhysicsQueryHandler QueryHandler,
const EThreadQueryContext  ThreadContext,
const UWorld World,
const FPhysicsGeometryCollection CollisionShape,
const FTransform GeomPose,
TArray< FOverlapResult > &  OutOverlaps,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams 
)

◆ GeomOverlapMultiImp()

bool GeomOverlapMultiImp ( const UWorld World,
const FPhysicsGeometry Geom,
const CollisionAnalyzerType CollisionAnalyzerShape,
const FTransform GeomPose,
TArray< FOverlapResult > &  OutOverlaps,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams,
const AccelContainerType AccelContainer 
)

◆ GeomToSQInputs()

template<typename GeomType >
TGeomSQInputs< GeomType > GeomToSQInputs ( const GeomType Geom,
const FQuat Rot 
)

◆ GetIgnoreQueryHandler()

bool GetIgnoreQueryHandler ( )

◆ GetThreadQueryContext()

EThreadQueryContext GetThreadQueryContext ( const Chaos::FPhysicsSolver Solver)

◆ RaycastWithQueryHandler()

template<ESingleMultiOrTest SingleMultiOrTest, typename GeomInputsType , typename OutHitsType >
bool RaycastWithQueryHandler ( UPhysicsQueryHandler QueryHandler,
const EThreadQueryContext  ThreadContext,
const UWorld World,
OutHitsType &  OutHits,
const GeomInputsType GeomInputs,
const FVector  Start,
const FVector  End,
const Chaos::FCommonQueryData CommonData 
)

◆ SweepWithQueryHandler() [1/3]

template<ESingleMultiOrTest SingleMultiOrTest, typename OutHitsType >
bool SweepWithQueryHandler ( UPhysicsQueryHandler QueryHandler,
const EThreadQueryContext  ThreadContext,
const UWorld World,
OutHitsType &  OutHits,
const Chaos::FQueryShape QueryShape,
const FQuat GeomRot,
const FVector  Start,
const FVector  End,
const Chaos::FCommonQueryData CommonData 
)

◆ SweepWithQueryHandler() [2/3]

template<ESingleMultiOrTest SingleMultiOrTest, typename OutHitsType >
bool SweepWithQueryHandler ( UPhysicsQueryHandler QueryHandler,
const EThreadQueryContext  ThreadContext,
const UWorld World,
OutHitsType &  OutHits,
const FGeomCollectionSQAdditionalInputs GeomInputs,
const FVector  Start,
const FVector  End,
const Chaos::FCommonQueryData CommonData 
)

◆ SweepWithQueryHandler() [3/3]

template<ESingleMultiOrTest SingleMultiOrTest, typename OutHitsType >
bool SweepWithQueryHandler ( UPhysicsQueryHandler QueryHandler,
const EThreadQueryContext  ThreadContext,
const UWorld World,
OutHitsType &  OutHits,
const FGeomSQAdditionalInputs GeomInputs,
const FVector  Start,
const FVector  End,
const Chaos::FCommonQueryData CommonData 
)

◆ TraceCommonImp() [1/2]

template<typename HitType , typename PTHitType , ESweepOrRay SweepOrRay, ESingleMultiOrTest SingleMultiOrTest, typename GeomInputsType , typename OutHitsType , typename AccelContainerType >
bool TraceCommonImp ( const EThreadQueryContext  ThreadContext,
const UWorld World,
OutHitsType &  OutHits,
const GeomInputsType GeomInputs,
const FVector  Start,
const FVector  End,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams,
const AccelContainerType AccelContainer 
)

◆ TraceCommonImp() [2/2]

template<ESweepOrRay SweepOrRay, ESingleMultiOrTest SingleMultiOrTest, typename GeomInputsType , typename OutHitsType , typename AccelContainerType >
bool TraceCommonImp ( const EThreadQueryContext  ThreadContext,
const UWorld World,
OutHitsType &  OutHits,
const GeomInputsType GeomInputs,
const FVector  Start,
const FVector  End,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams,
const AccelContainerType AccelContainer 
)

◆ TSceneCastCommon()

template<ESweepOrRay SweepOrRay, ESingleMultiOrTest SingleMultiOrTest, typename OutHitsType , typename GeomInputsType , typename AccelContainerType = FDefaultAccelContainer>
bool TSceneCastCommon ( const UWorld World,
OutHitsType &  OutHits,
const GeomInputsType GeomInputs,
const FVector  Start,
const FVector  End,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams,
const AccelContainerType AccelContainer = FDefaultAccelContainer{} 
)

◆ TSceneCastCommonImp()

bool TSceneCastCommonImp ( const UWorld World,
typename Traits::OutHitsType &  OutHits,
const GeomInputsType GeomInputs,
const FVector  Start,
const FVector  End,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams,
const AccelContainerType AccelContainer 
)

◆ TSceneCastCommonImpWithRetryRequest()

bool TSceneCastCommonImpWithRetryRequest ( const UWorld World,
typename Traits::OutHitsType &  OutHits,
const GeomInputsType GeomInputs,
const FVector  Start,
const FVector  End,
ECollisionChannel  TraceChannel,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParams,
const struct FCollisionObjectQueryParams ObjectParams,
const AccelContainerType AccelContainer,
bool bOutRequestRetry,
FCollisionQueryParams OutRetryParams 
)

(UE_BUILD_SHIPPING || UE_BUILD_TEST)

Variable Documentation

◆ DebugLineLifetime

float DebugLineLifetime = 2.f