UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::FSingleShapePairCollisionDetector Class Reference

Handles collision detection for a pair of simple shapes (i.e., not compound shapes) More...

#include <ParticlePairMidPhase.h>

Public Types

using FCollisionsArray = TArray< FPBDCollisionConstraint *, TInlineAllocator< 1 > >
 

Public Member Functions

CHAOS_API FSingleShapePairCollisionDetector (FGeometryParticleHandle *InParticle0, const FPerShapeData *InShape0, FGeometryParticleHandle *InParticle1, const FPerShapeData *InShape1, const Private::FCollisionSortKey &InCollisionSortKey, const EContactShapesType InShapePairType, FParticlePairMidPhase &MidPhase)
 
CHAOS_API FSingleShapePairCollisionDetector (FSingleShapePairCollisionDetector &&R)
 
 FSingleShapePairCollisionDetector (const FSingleShapePairCollisionDetector &R)=delete
 
FSingleShapePairCollisionDetectoroperator= (const FSingleShapePairCollisionDetector &R)=delete
 
CHAOS_API ~FSingleShapePairCollisionDetector ()
 
const FPBDCollisionConstraintGetConstraint () const
 
FPBDCollisionConstraintGetConstraint ()
 
const FGeometryParticleHandleGetParticle0 () const
 
FGeometryParticleHandleGetParticle0 ()
 
const FGeometryParticleHandleGetParticle1 () const
 
FGeometryParticleHandleGetParticle1 ()
 
const FPerShapeDataGetShape0 () const
 
const FPerShapeDataGetShape1 () const
 
bool IsUsedSince (const int32 Epoch) const
 Have we run collision detection since this Epoch (inclusive)
 
int32 GenerateCollision (const FReal CullDistance, const FReal Dt, const FCollisionContext &Context)
 Perform a bounds check and run the narrow phase if necessary.
 
CHAOS_API int32 GenerateCollision (const FRealSingle Dt, const FRealSingle CullDistance, const FVec3f &RelativeMovement, const FCollisionContext &Context)
 
int32 GenerateCollisionCCD (const bool bEnableCCDSweep, const FReal CullDistance, const FReal Dt, const FCollisionContext &Context)
 Generate a SweptConstraint as long as AABBs overlap.
 
CHAOS_API int32 GenerateCollisionCCD (const FRealSingle Dt, const FRealSingle CullDistance, const FVec3f &RelativeMovement, const bool bEnableCCDSweep, const FCollisionContext &Context)
 
CHAOS_API void WakeCollision (const int32 SleepEpoch, const int32 CurrentEpoch)
 Reactivate the constraint @parame SleepEpoch The tick on which the particle went to sleep. Only constraints that were active when the particle went to sleep should be reactivated.
 
CHAOS_API void SetCollision (const FPBDCollisionConstraint &Constraint, const FCollisionContext &Context)
 Set the collision from the parameter and activate it This is used by the Resim restore functionality.
 

Detailed Description

Handles collision detection for a pair of simple shapes (i.e., not compound shapes)

This is used by FShapePairParticlePairMidPhase

Member Typedef Documentation

◆ FCollisionsArray

Constructor & Destructor Documentation

◆ FSingleShapePairCollisionDetector() [1/3]

Chaos::FSingleShapePairCollisionDetector::FSingleShapePairCollisionDetector ( FGeometryParticleHandle InParticle0,
const FPerShapeData InShape0,
FGeometryParticleHandle InParticle1,
const FPerShapeData InShape1,
const Private::FCollisionSortKey InCollisionSortKey,
const EContactShapesType  InShapePairType,
FParticlePairMidPhase MidPhase 
)

◆ FSingleShapePairCollisionDetector() [2/3]

Chaos::FSingleShapePairCollisionDetector::FSingleShapePairCollisionDetector ( FSingleShapePairCollisionDetector &&  R)

◆ FSingleShapePairCollisionDetector() [3/3]

Chaos::FSingleShapePairCollisionDetector::FSingleShapePairCollisionDetector ( const FSingleShapePairCollisionDetector R)
delete

◆ ~FSingleShapePairCollisionDetector()

Chaos::FSingleShapePairCollisionDetector::~FSingleShapePairCollisionDetector ( )

Member Function Documentation

◆ GenerateCollision() [1/2]

int32 Chaos::FSingleShapePairCollisionDetector::GenerateCollision ( const FReal  CullDistance,
const FReal  Dt,
const FCollisionContext Context 
)
inline

Perform a bounds check and run the narrow phase if necessary.

Returns
The number of collisions constraints that were activated

◆ GenerateCollision() [2/2]

int32 Chaos::FSingleShapePairCollisionDetector::GenerateCollision ( const FRealSingle  Dt,
const FRealSingle  CullDistance,
const FVec3f RelativeMovement,
const FCollisionContext Context 
)

◆ GenerateCollisionCCD() [1/2]

int32 Chaos::FSingleShapePairCollisionDetector::GenerateCollisionCCD ( const bool  bEnableCCDSweep,
const FReal  CullDistance,
const FReal  Dt,
const FCollisionContext Context 
)
inline

Generate a SweptConstraint as long as AABBs overlap.

Returns
The number of collisions constraints that were activated

◆ GenerateCollisionCCD() [2/2]

int32 Chaos::FSingleShapePairCollisionDetector::GenerateCollisionCCD ( const FRealSingle  Dt,
const FRealSingle  CullDistance,
const FVec3f RelativeMovement,
const bool  bEnableCCDSweep,
const FCollisionContext Context 
)

◆ GetConstraint() [1/2]

FPBDCollisionConstraint * Chaos::FSingleShapePairCollisionDetector::GetConstraint ( )
inline

◆ GetConstraint() [2/2]

const FPBDCollisionConstraint * Chaos::FSingleShapePairCollisionDetector::GetConstraint ( ) const
inline

◆ GetParticle0() [1/2]

FGeometryParticleHandle * Chaos::FSingleShapePairCollisionDetector::GetParticle0 ( )
inline

◆ GetParticle0() [2/2]

const FGeometryParticleHandle * Chaos::FSingleShapePairCollisionDetector::GetParticle0 ( ) const
inline

◆ GetParticle1() [1/2]

FGeometryParticleHandle * Chaos::FSingleShapePairCollisionDetector::GetParticle1 ( )
inline

◆ GetParticle1() [2/2]

const FGeometryParticleHandle * Chaos::FSingleShapePairCollisionDetector::GetParticle1 ( ) const
inline

◆ GetShape0()

const FPerShapeData * Chaos::FSingleShapePairCollisionDetector::GetShape0 ( ) const
inline

◆ GetShape1()

const FPerShapeData * Chaos::FSingleShapePairCollisionDetector::GetShape1 ( ) const
inline

◆ IsUsedSince()

bool Chaos::FSingleShapePairCollisionDetector::IsUsedSince ( const int32  Epoch) const
inline

Have we run collision detection since this Epoch (inclusive)

◆ operator=()

FSingleShapePairCollisionDetector & Chaos::FSingleShapePairCollisionDetector::operator= ( const FSingleShapePairCollisionDetector R)
delete

◆ SetCollision()

void Chaos::FSingleShapePairCollisionDetector::SetCollision ( const FPBDCollisionConstraint Constraint,
const FCollisionContext Context 
)

Set the collision from the parameter and activate it This is used by the Resim restore functionality.

◆ WakeCollision()

void Chaos::FSingleShapePairCollisionDetector::WakeCollision ( const int32  SleepEpoch,
const int32  CurrentEpoch 
)

Reactivate the constraint @parame SleepEpoch The tick on which the particle went to sleep. Only constraints that were active when the particle went to sleep should be reactivated.


The documentation for this class was generated from the following files: