UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest > Struct Template Reference

Public Types

using HitType = InHitType
 
using OutHitsType = std::conditional_t< InSingleMultiOrTest==ESingleMultiOrTest::Multi, TArray< FHitResult >, FHitResult >
 
using HitBufferType = std::conditional_t< InSingleMultiOrTest==ESingleMultiOrTest::Multi, FDynamicHitBuffer< InHitType >, FSingleHitBuffer< InHitType > >
 

Public Member Functions

 CA_SUPPRESS (6326)
 
 CA_SUPPRESS (6326)
 
 CA_SUPPRESS (6326)
 
 CA_SUPPRESS (6326)
 
 CA_SUPPRESS (6326)
 

Static Public Member Functions

template<ESingleMultiOrTest T = SingleMultiOrTest>
static TEnableIf< T==ESingleMultiOrTest::Multi, int32 >::Type GetNumHits (const HitBufferType &HitBuffer)
 
template<ESingleMultiOrTest T = SingleMultiOrTest>
static TEnableIf< T!=ESingleMultiOrTest::Multi, int32 >::Type GetNumHits (const HitBufferType &HitBuffer)
 
template<ESingleMultiOrTest T = SingleMultiOrTest>
static TEnableIf< T==ESingleMultiOrTest::Multi, HitType * >::Type GetHits (HitBufferType &HitBuffer)
 
template<ESingleMultiOrTest T = SingleMultiOrTest>
static TEnableIf< T!=ESingleMultiOrTest::Multi, HitType * >::Type GetHits (HitBufferType &HitBuffer)
 
template<typename AccelContainerType , typename GeomInputsType , ESweepOrRay T = GeometryQuery>
static TEnableIf< T==ESweepOrRay::Raycast, void >::Type SceneTrace (const AccelContainerType &Container, const GeomInputsType &GeomInputs, const FVector &Dir, float DeltaMag, const FTransform &StartTM, HitBufferType &HitBuffer, EHitFlags OutputFlags, EQueryFlags QueryFlags, const FCollisionFilterData &FilterData, const FCollisionQueryParams &Params, ICollisionQueryFilterCallbackBase *QueryCallback)
 
template<typename AccelContainerType , typename GeomInputsType , ESweepOrRay T = GeometryQuery>
static TEnableIf< T==ESweepOrRay::Sweep, void >::Type SceneTrace (const AccelContainerType &Container, const GeomInputsType &GeomInputs, const FVector &Dir, float DeltaMag, const FTransform &StartTM, HitBufferType &HitBuffer, EHitFlags OutputFlags, EQueryFlags QueryFlags, const FCollisionFilterData &FilterData, const FCollisionQueryParams &Params, ICollisionQueryFilterCallbackBase *QueryCallback)
 
static void ResetOutHits (TArray< FHitResult > &OutHits, const FVector &Start, const FVector &End)
 
static void ResetOutHits (FHitResult &OutHit, const FVector &Start, const FVector &End)
 
static void DrawTraces (const UWorld *World, const FVector &Start, const FVector &End, const FPhysicsGeometry *PGeom, const FQuat *PGeomRot, const TArray< FHitResult > &Hits)
 
static void DrawTraces (const UWorld *World, const FVector &Start, const FVector &End, const FPhysicsGeometry *PGeom, const FQuat *GeomRotation, const FHitResult &Hit)
 
template<typename GeomInputsType >
static void CaptureTraces (const UWorld *World, const FVector &Start, const FVector &End, const GeomInputsType &GeomInputs, ECollisionChannel TraceChannel, const FCollisionQueryParams &Params, const FCollisionResponseParams &ResponseParams, const FCollisionObjectQueryParams &ObjectParams, const TArray< FHitResult > &Hits, bool bHaveBlockingHit, double StartTime)
 
template<typename GeomInputsType >
static void CaptureTraces (const UWorld *World, const FVector &Start, const FVector &End, const GeomInputsType &GeomInputs, ECollisionChannel TraceChannel, const FCollisionQueryParams &Params, const FCollisionResponseParams &ResponseParams, const FCollisionObjectQueryParams &ObjectParams, const FHitResult &Hit, bool bHaveBlockingHit, double StartTime)
 
static EHitFlags GetHitFlags ()
 
static EQueryFlags GetQueryFlags ()
 
static constexpr bool IsSingle ()
 
static constexpr bool IsTest ()
 
static constexpr bool IsMulti ()
 
static constexpr bool IsRay ()
 
static constexpr bool IsSweep ()
 
static constexpr bool IsExternalData ()
 

Static Public Attributes

static const ESingleMultiOrTest SingleMultiOrTest = InSingleMultiOrTest
 
static const ESweepOrRay GeometryQuery = InGeometryQuery
 

Member Typedef Documentation

◆ HitBufferType

◆ HitType

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
using TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::HitType = InHitType

◆ OutHitsType

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
using TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::OutHitsType = std::conditional_t<InSingleMultiOrTest == ESingleMultiOrTest::Multi, TArray<FHitResult>, FHitResult>

Member Function Documentation

◆ CA_SUPPRESS() [1/5]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::CA_SUPPRESS ( 6326  )

◆ CA_SUPPRESS() [2/5]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::CA_SUPPRESS ( 6326  )

◆ CA_SUPPRESS() [3/5]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::CA_SUPPRESS ( 6326  )

◆ CA_SUPPRESS() [4/5]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::CA_SUPPRESS ( 6326  )

◆ CA_SUPPRESS() [5/5]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::CA_SUPPRESS ( 6326  )

◆ CaptureTraces() [1/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static void TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::CaptureTraces ( const UWorld World,
const FVector Start,
const FVector End,
const GeomInputsType GeomInputs,
ECollisionChannel  TraceChannel,
const FCollisionQueryParams Params,
const FCollisionResponseParams ResponseParams,
const FCollisionObjectQueryParams ObjectParams,
const FHitResult Hit,
bool  bHaveBlockingHit,
double  StartTime 
)
inlinestatic

◆ CaptureTraces() [2/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static void TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::CaptureTraces ( const UWorld World,
const FVector Start,
const FVector End,
const GeomInputsType GeomInputs,
ECollisionChannel  TraceChannel,
const FCollisionQueryParams Params,
const FCollisionResponseParams ResponseParams,
const FCollisionObjectQueryParams ObjectParams,
const TArray< FHitResult > &  Hits,
bool  bHaveBlockingHit,
double  StartTime 
)
inlinestatic

◆ DrawTraces() [1/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static void TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::DrawTraces ( const UWorld World,
const FVector Start,
const FVector End,
const FPhysicsGeometry PGeom,
const FQuat GeomRotation,
const FHitResult Hit 
)
inlinestatic

◆ DrawTraces() [2/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static void TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::DrawTraces ( const UWorld World,
const FVector Start,
const FVector End,
const FPhysicsGeometry PGeom,
const FQuat PGeomRot,
const TArray< FHitResult > &  Hits 
)
inlinestatic

◆ GetHitFlags()

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static EHitFlags TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::GetHitFlags ( )
inlinestatic

◆ GetHits() [1/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
template<ESingleMultiOrTest T = SingleMultiOrTest>
static TEnableIf< T==ESingleMultiOrTest::Multi, HitType * >::Type TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::GetHits ( HitBufferType HitBuffer)
inlinestatic

◆ GetHits() [2/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
template<ESingleMultiOrTest T = SingleMultiOrTest>
static TEnableIf< T!=ESingleMultiOrTest::Multi, HitType * >::Type TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::GetHits ( HitBufferType HitBuffer)
inlinestatic

◆ GetNumHits() [1/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
template<ESingleMultiOrTest T = SingleMultiOrTest>
static TEnableIf< T==ESingleMultiOrTest::Multi, int32 >::Type TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::GetNumHits ( const HitBufferType HitBuffer)
inlinestatic

◆ GetNumHits() [2/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
template<ESingleMultiOrTest T = SingleMultiOrTest>
static TEnableIf< T!=ESingleMultiOrTest::Multi, int32 >::Type TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::GetNumHits ( const HitBufferType HitBuffer)
inlinestatic

◆ GetQueryFlags()

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static EQueryFlags TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::GetQueryFlags ( )
inlinestatic

◆ IsExternalData()

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static constexpr bool TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::IsExternalData ( )
inlinestaticconstexpr

Easy way to query whether this SQ trait is for the GT or the PT based on the based in hit type.

◆ IsMulti()

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static constexpr bool TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::IsMulti ( )
inlinestaticconstexpr

◆ IsRay()

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static constexpr bool TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::IsRay ( )
inlinestaticconstexpr

◆ IsSingle()

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static constexpr bool TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::IsSingle ( )
inlinestaticconstexpr

◆ IsSweep()

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static constexpr bool TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::IsSweep ( )
inlinestaticconstexpr

◆ IsTest()

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static constexpr bool TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::IsTest ( )
inlinestaticconstexpr

◆ ResetOutHits() [1/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static void TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::ResetOutHits ( FHitResult OutHit,
const FVector Start,
const FVector End 
)
inlinestatic

◆ ResetOutHits() [2/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static void TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::ResetOutHits ( TArray< FHitResult > &  OutHits,
const FVector Start,
const FVector End 
)
inlinestatic

◆ SceneTrace() [1/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static TEnableIf< T==ESweepOrRay::Raycast, void >::Type TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::SceneTrace ( const AccelContainerType Container,
const GeomInputsType GeomInputs,
const FVector Dir,
float  DeltaMag,
const FTransform StartTM,
HitBufferType HitBuffer,
EHitFlags  OutputFlags,
EQueryFlags  QueryFlags,
const FCollisionFilterData FilterData,
const FCollisionQueryParams Params,
ICollisionQueryFilterCallbackBase QueryCallback 
)
inlinestatic

◆ SceneTrace() [2/2]

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
static TEnableIf< T==ESweepOrRay::Sweep, void >::Type TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::SceneTrace ( const AccelContainerType Container,
const GeomInputsType GeomInputs,
const FVector Dir,
float  DeltaMag,
const FTransform StartTM,
HitBufferType HitBuffer,
EHitFlags  OutputFlags,
EQueryFlags  QueryFlags,
const FCollisionFilterData FilterData,
const FCollisionQueryParams Params,
ICollisionQueryFilterCallbackBase QueryCallback 
)
inlinestatic

Member Data Documentation

◆ GeometryQuery

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
const ESweepOrRay TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::GeometryQuery = InGeometryQuery
static

◆ SingleMultiOrTest

template<typename InHitType , ESweepOrRay InGeometryQuery, ESingleMultiOrTest InSingleMultiOrTest>
const ESingleMultiOrTest TSQTraits< InHitType, InGeometryQuery, InSingleMultiOrTest >::SingleMultiOrTest = InSingleMultiOrTest
static

The documentation for this struct was generated from the following file: