UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ChaosInterface Namespace Reference

Classes

struct  FActorShape
 
struct  FDummyCallback
 
struct  FDummyPhysActor
 
struct  FDummyPhysType
 
struct  FLocationHit
 
struct  FOverlapHit
 
struct  FPhysicsOverlapInputAdapater
 
struct  FPhysicsRaycastInputAdapater
 
struct  FPhysicsSweepInputAdapater
 
struct  FPTActorShape
 
struct  FPTLocationHit
 
struct  FPTOverlapHit
 
struct  FPTQueryHit
 
struct  FPTRaycastHit
 
struct  FPTSweepHit
 
struct  FQueryDebugParams
 
struct  FQueryHit
 
struct  FRaycastHit
 
struct  FScopedSceneReadLock
 
class  FSQHitBuffer
 
class  FSQSingleHitBuffer
 
struct  FSweepHit
 

Typedefs

template<Chaos::EThreadContext Id>
using TThreadQueryHit = std::conditional_t< Id==Chaos::EThreadContext::External, FQueryHit, FPTQueryHit >
 
template<Chaos::EThreadContext Id>
using TThreadRaycastHit = std::conditional_t< Id==Chaos::EThreadContext::External, FRaycastHit, FPTRaycastHit >
 
template<Chaos::EThreadContext Id>
using TThreadOverlapHit = std::conditional_t< Id==Chaos::EThreadContext::External, FOverlapHit, FPTOverlapHit >
 
template<Chaos::EThreadContext Id>
using TThreadSweepHit = std::conditional_t< Id==Chaos::EThreadContext::External, FSweepHit, FPTSweepHit >
 
using FQueryFilterData = FChaosQueryFilterData
 

Functions

template<class PHYSX_MESH >
TArray< Chaos::TVec3< int32 > > GetMeshElements (const PHYSX_MESH *PhysXMesh)
 
Chaos::EChaosCollisionTraceFlag ConvertCollisionTraceFlag (ECollisionTraceFlag Flag)
 
void CreateGeometry (const FGeometryAddParams &InParams, TArray< TUniquePtr< Chaos::FImplicitObject > > &OutGeoms, Chaos::FShapesArray &OutShapes)
 
void CreateGeometry (const FGeometryAddParams &InParams, TArray< Chaos::FImplicitObjectPtr > &OutGeoms, Chaos::FShapesArray &OutShapes)
 
void CalculateMassPropertiesFromShapeCollection (Chaos::FMassProperties &OutProperties, const TArray< FPhysicsShapeHandle > &InShapes, float InDensityKGPerCM)
 
void CalculateMassPropertiesFromShapeCollection (Chaos::FMassProperties &OutProperties, const Chaos::FShapesArray &InShapes, const TArray< bool > &bContributesToMass, float InDensityKGPerCM)
 
FBodyInstanceGetUserData (const Chaos::FGeometryParticle &Actor)
 
UPhysicalMaterialGetUserData (const Chaos::FChaosPhysicsMaterial &Material)
 
UPrimitiveComponent * GetPrimitiveComponentFromUserData (const Chaos::FGeometryParticle &Actor)
 
bool HasValidUserData (const Chaos::FGeometryParticle &Actor)
 
FQueryFilterData MakeQueryFilterData (const FCollisionFilterData &FilterData, EQueryFlags QueryFlags, const FCollisionQueryParams &Params)
 
Chaos::FChaosArchiveoperator<< (Chaos::FChaosArchive &Ar, FActorShape &ActorShape)
 
Chaos::FChaosArchiveoperator<< (Chaos::FChaosArchive &Ar, FQueryHit &QueryHit)
 
Chaos::FChaosArchiveoperator<< (Chaos::FChaosArchive &Ar, FLocationHit &LocationHit)
 
Chaos::FChaosArchiveoperator<< (Chaos::FChaosArchive &Ar, FRaycastHit &RaycastHit)
 
Chaos::FChaosArchiveoperator<< (Chaos::FChaosArchive &Ar, FOverlapHit &OverlapHit)
 
Chaos::FChaosArchiveoperator<< (Chaos::FChaosArchive &Ar, FSweepHit &SweepHit)
 
void FinishQueryHelper (TArray< FOverlapHit, TInlineAllocator< CHAOS_HIT_BUFFER_SIZE > > &Hits, const FOverlapHit &BlockingHit, bool bHasBlockingHit)
 
void FinishQueryHelper (TArray< FPTOverlapHit, TInlineAllocator< CHAOS_HIT_BUFFER_SIZE > > &Hits, const FPTOverlapHit &BlockingHit, bool bHasBlockingHit)
 
template<typename HitType >
void FinishQueryHelper (TArray< HitType, TInlineAllocator< CHAOS_HIT_BUFFER_SIZE > > &Hits, const HitType &BlockingHit, bool bHasBlockingHit)
 
FORCEINLINE ECollisionShapeType ImplicitTypeToCollisionType (int32 ImplicitObjectType)
 
ECollisionShapeType GetImplicitType (const Chaos::FImplicitObject &InGeometry)
 
Chaos::FReal GetRadius (const Chaos::FCapsule &InCapsule)
 
Chaos::FReal GetHalfHeight (const Chaos::FCapsule &InCapsule)
 
FCollisionFilterData GetQueryFilterData (const Chaos::FPerShapeData &Shape)
 
FCollisionFilterData GetSimulationFilterData (const Chaos::FPerShapeData &Shape)
 
Chaos::Filter::FShapeFilterData GetShapeFilterData (const Chaos::FPerShapeData &Shape)
 
Chaos::Filter::FInstanceData GetFilterInstanceData (const Chaos::FPerShapeData &Shape)
 
Chaos::Filter::FCombinedShapeFilterData GetCombinedShapeFilterData (const Chaos::FPerShapeData &Shape)
 
ECollisionShapeType GetType (const Chaos::FImplicitObject &InGeometry)
 
bool HadInitialOverlap (const FLocationHit &Hit)
 
bool HadInitialOverlap (const FPTLocationHit &Hit)
 
const Chaos::FPerShapeDataGetShape (const FActorShape &Hit)
 
const Chaos::FPerShapeDataGetShape (const FPTActorShape &Hit)
 
Chaos::FGeometryParticleGetActor (const FActorShape &Hit)
 
Chaos::FGeometryParticleHandleGetActor (const FPTActorShape &Hit)
 
Chaos::FReal GetDistance (const FLocationHit &Hit)
 
Chaos::FReal GetDistance (const FPTLocationHit &Hit)
 
FVector GetPosition (const FLocationHit &Hit)
 
FVector GetPosition (const FPTLocationHit &Hit)
 
FVector GetNormal (const FLocationHit &Hit)
 
FVector GetNormal (const FPTLocationHit &Hit)
 
FHitFlags GetFlags (const FLocationHit &Hit)
 
FHitFlags GetFlags (const FPTLocationHit &Hit)
 
FORCEINLINE void SetFlags (FLocationHit &Hit, FHitFlags Flags)
 
FORCEINLINE void SetFlags (FPTLocationHit &Hit, FHitFlags Flags)
 
uint32 GetInternalFaceIndex (const FQueryHit &Hit)
 
uint32 GetInternalFaceIndex (const FPTQueryHit &Hit)
 
void SetInternalFaceIndex (FQueryHit &Hit, uint32 FaceIndex)
 
void SetInternalFaceIndex (FPTQueryHit &Hit, uint32 FaceIndex)
 
uint32 GetInvalidPhysicsFaceIndex ()
 
uint32 GetTriangleMeshExternalFaceIndex (const FDummyPhysType &Shape, uint32 InternalFaceIndex)
 
FTransform GetGlobalPose (const FDummyPhysActor &RigidActor)
 
uint32 GetNumShapes (const FDummyPhysActor &RigidActor)
 
void GetShapes (const FDummyPhysActor &RigidActor, Chaos::FImplicitObject **ShapesBuffer, uint32 NumShapes)
 
void SetActor (FDummyPhysType &Hit, FDummyPhysActor *Actor)
 
void SetShape (FDummyPhysType &Hit, Chaos::FImplicitObject *Shape)
 
template<typename HitType >
HitType * GetBlock (FSQHitBuffer< HitType > &Callback)
 
template<typename HitType >
bool GetHasBlock (const FSQHitBuffer< HitType > &Callback)
 

Variables

float Chaos_Collision_MarginFraction = -1.0f
 
FAutoConsoleVariableRef CVarChaosCollisionMarginFraction (TEXT("p.Chaos.Collision.MarginFraction"), Chaos_Collision_MarginFraction, TEXT("Override the collision margin fraction set in Physics Settings (if >= 0)"))
 
float Chaos_Collision_MarginMax = -1.0f
 
FAutoConsoleVariableRef CVarChaosCollisionMarginMax (TEXT("p.Chaos.Collision.MarginMax"), Chaos_Collision_MarginMax, TEXT("Override the max collision margin set in Physics Settings (if >= 0)"))
 

Typedef Documentation

◆ FQueryFilterData

◆ TThreadOverlapHit

◆ TThreadQueryHit

◆ TThreadRaycastHit

◆ TThreadSweepHit

Function Documentation

◆ CalculateMassPropertiesFromShapeCollection() [1/2]

void ENGINE_API ChaosInterface::CalculateMassPropertiesFromShapeCollection ( Chaos::FMassProperties OutProperties,
const Chaos::FShapesArray InShapes,
const TArray< bool > &  bContributesToMass,
float  InDensityKGPerCM 
)

◆ CalculateMassPropertiesFromShapeCollection() [2/2]

void ENGINE_API ChaosInterface::CalculateMassPropertiesFromShapeCollection ( Chaos::FMassProperties OutProperties,
const TArray< FPhysicsShapeHandle > &  InShapes,
float  InDensityKGPerCM 
)

Generate the mass properties for a set of shapes in the space of the shapes' owner. Rotation will be built into the inertia matrix (it may not be diagonal) and RotationOfMass will be identity.

◆ ConvertCollisionTraceFlag()

Chaos::EChaosCollisionTraceFlag ChaosInterface::ConvertCollisionTraceFlag ( ECollisionTraceFlag  Flag)

◆ CreateGeometry() [1/2]

void ENGINE_API ChaosInterface::CreateGeometry ( const FGeometryAddParams InParams,
TArray< Chaos::FImplicitObjectPtr > &  OutGeoms,
Chaos::FShapesArray OutShapes 
)

Create the Chaos Geometry based on the geometry parameters.

◆ CreateGeometry() [2/2]

void ENGINE_API ChaosInterface::CreateGeometry ( const FGeometryAddParams InParams,
TArray< TUniquePtr< Chaos::FImplicitObject > > &  OutGeoms,
Chaos::FShapesArray OutShapes 
)

◆ FinishQueryHelper() [1/3]

void ChaosInterface::FinishQueryHelper ( TArray< FOverlapHit, TInlineAllocator< CHAOS_HIT_BUFFER_SIZE > > &  Hits,
const FOverlapHit BlockingHit,
bool  bHasBlockingHit 
)
inline

◆ FinishQueryHelper() [2/3]

void ChaosInterface::FinishQueryHelper ( TArray< FPTOverlapHit, TInlineAllocator< CHAOS_HIT_BUFFER_SIZE > > &  Hits,
const FPTOverlapHit BlockingHit,
bool  bHasBlockingHit 
)
inline

◆ FinishQueryHelper() [3/3]

template<typename HitType >
void ChaosInterface::FinishQueryHelper ( TArray< HitType, TInlineAllocator< CHAOS_HIT_BUFFER_SIZE > > &  Hits,
const HitType &  BlockingHit,
bool  bHasBlockingHit 
)

◆ GetActor() [1/2]

Chaos::FGeometryParticle * ChaosInterface::GetActor ( const FActorShape Hit)
inline

◆ GetActor() [2/2]

Chaos::FGeometryParticleHandle * ChaosInterface::GetActor ( const FPTActorShape Hit)
inline

◆ GetBlock()

template<typename HitType >
HitType * ChaosInterface::GetBlock ( FSQHitBuffer< HitType > &  Callback)

◆ GetCombinedShapeFilterData()

PHYSICSCORE_API Chaos::Filter::FCombinedShapeFilterData ChaosInterface::GetCombinedShapeFilterData ( const Chaos::FPerShapeData Shape)

◆ GetDistance() [1/2]

Chaos::FReal ChaosInterface::GetDistance ( const FLocationHit Hit)
inline

◆ GetDistance() [2/2]

Chaos::FReal ChaosInterface::GetDistance ( const FPTLocationHit Hit)
inline

◆ GetFilterInstanceData()

PHYSICSCORE_API Chaos::Filter::FInstanceData ChaosInterface::GetFilterInstanceData ( const Chaos::FPerShapeData Shape)

◆ GetFlags() [1/2]

FHitFlags ChaosInterface::GetFlags ( const FLocationHit Hit)
inline

◆ GetFlags() [2/2]

FHitFlags ChaosInterface::GetFlags ( const FPTLocationHit Hit)
inline

◆ GetGlobalPose()

FTransform ChaosInterface::GetGlobalPose ( const FDummyPhysActor RigidActor)
inline

◆ GetHalfHeight()

PHYSICSCORE_API Chaos::FReal ChaosInterface::GetHalfHeight ( const Chaos::FCapsule InCapsule)

◆ GetHasBlock()

template<typename HitType >
bool ChaosInterface::GetHasBlock ( const FSQHitBuffer< HitType > &  Callback)

◆ GetImplicitType()

PHYSICSCORE_API ECollisionShapeType ChaosInterface::GetImplicitType ( const Chaos::FImplicitObject InGeometry)

◆ GetInternalFaceIndex() [1/2]

uint32 ChaosInterface::GetInternalFaceIndex ( const FPTQueryHit Hit)
inline

◆ GetInternalFaceIndex() [2/2]

uint32 ChaosInterface::GetInternalFaceIndex ( const FQueryHit Hit)
inline

◆ GetInvalidPhysicsFaceIndex()

uint32 ChaosInterface::GetInvalidPhysicsFaceIndex ( )
inline

◆ GetMeshElements()

template<class PHYSX_MESH >
TArray< Chaos::TVec3< int32 > > ChaosInterface::GetMeshElements ( const PHYSX_MESH PhysXMesh)

◆ GetNormal() [1/2]

FVector ChaosInterface::GetNormal ( const FLocationHit Hit)
inline

◆ GetNormal() [2/2]

FVector ChaosInterface::GetNormal ( const FPTLocationHit Hit)
inline

◆ GetNumShapes()

uint32 ChaosInterface::GetNumShapes ( const FDummyPhysActor RigidActor)
inline

◆ GetPosition() [1/2]

FVector ChaosInterface::GetPosition ( const FLocationHit Hit)
inline

◆ GetPosition() [2/2]

FVector ChaosInterface::GetPosition ( const FPTLocationHit Hit)
inline

◆ GetPrimitiveComponentFromUserData()

UPrimitiveComponent * ChaosInterface::GetPrimitiveComponentFromUserData ( const Chaos::FGeometryParticle Actor)

◆ GetQueryFilterData()

FCollisionFilterData ChaosInterface::GetQueryFilterData ( const Chaos::FPerShapeData Shape)

◆ GetRadius()

PHYSICSCORE_API Chaos::FReal ChaosInterface::GetRadius ( const Chaos::FCapsule InCapsule)

◆ GetShape() [1/2]

const Chaos::FPerShapeData * ChaosInterface::GetShape ( const FActorShape Hit)
inline

◆ GetShape() [2/2]

const Chaos::FPerShapeData * ChaosInterface::GetShape ( const FPTActorShape Hit)
inline

◆ GetShapeFilterData()

Chaos::Filter::FShapeFilterData ChaosInterface::GetShapeFilterData ( const Chaos::FPerShapeData Shape)

◆ GetShapes()

void ChaosInterface::GetShapes ( const FDummyPhysActor RigidActor,
Chaos::FImplicitObject **  ShapesBuffer,
uint32  NumShapes 
)
inline

◆ GetSimulationFilterData()

FCollisionFilterData ChaosInterface::GetSimulationFilterData ( const Chaos::FPerShapeData Shape)

◆ GetTriangleMeshExternalFaceIndex()

uint32 ChaosInterface::GetTriangleMeshExternalFaceIndex ( const FDummyPhysType Shape,
uint32  InternalFaceIndex 
)
inline

◆ GetType()

ECollisionShapeType ChaosInterface::GetType ( const Chaos::FImplicitObject InGeometry)
inline

◆ GetUserData() [1/2]

UPhysicalMaterial * ChaosInterface::GetUserData ( const Chaos::FChaosPhysicsMaterial Material)

◆ GetUserData() [2/2]

FBodyInstance * ChaosInterface::GetUserData ( const Chaos::FGeometryParticle Actor)

◆ HadInitialOverlap() [1/2]

bool ChaosInterface::HadInitialOverlap ( const FLocationHit Hit)
inline

◆ HadInitialOverlap() [2/2]

bool ChaosInterface::HadInitialOverlap ( const FPTLocationHit Hit)
inline

◆ HasValidUserData()

bool ChaosInterface::HasValidUserData ( const Chaos::FGeometryParticle Actor)

◆ ImplicitTypeToCollisionType()

FORCEINLINE ECollisionShapeType ChaosInterface::ImplicitTypeToCollisionType ( int32  ImplicitObjectType)

◆ MakeQueryFilterData()

FQueryFilterData ChaosInterface::MakeQueryFilterData ( const FCollisionFilterData FilterData,
EQueryFlags  QueryFlags,
const FCollisionQueryParams Params 
)
inline

◆ operator<<() [1/6]

Chaos::FChaosArchive & ChaosInterface::operator<< ( Chaos::FChaosArchive Ar,
FActorShape ActorShape 
)
inline

◆ operator<<() [2/6]

Chaos::FChaosArchive & ChaosInterface::operator<< ( Chaos::FChaosArchive Ar,
FLocationHit LocationHit 
)
inline

◆ operator<<() [3/6]

Chaos::FChaosArchive & ChaosInterface::operator<< ( Chaos::FChaosArchive Ar,
FOverlapHit OverlapHit 
)
inline

◆ operator<<() [4/6]

Chaos::FChaosArchive & ChaosInterface::operator<< ( Chaos::FChaosArchive Ar,
FQueryHit QueryHit 
)
inline

◆ operator<<() [5/6]

Chaos::FChaosArchive & ChaosInterface::operator<< ( Chaos::FChaosArchive Ar,
FRaycastHit RaycastHit 
)
inline

◆ operator<<() [6/6]

Chaos::FChaosArchive & ChaosInterface::operator<< ( Chaos::FChaosArchive Ar,
FSweepHit SweepHit 
)
inline

◆ SetActor()

void ChaosInterface::SetActor ( FDummyPhysType Hit,
FDummyPhysActor Actor 
)
inline

◆ SetFlags() [1/2]

FORCEINLINE void ChaosInterface::SetFlags ( FLocationHit Hit,
FHitFlags  Flags 
)

◆ SetFlags() [2/2]

FORCEINLINE void ChaosInterface::SetFlags ( FPTLocationHit Hit,
FHitFlags  Flags 
)

◆ SetInternalFaceIndex() [1/2]

void ChaosInterface::SetInternalFaceIndex ( FPTQueryHit Hit,
uint32  FaceIndex 
)
inline

◆ SetInternalFaceIndex() [2/2]

void ChaosInterface::SetInternalFaceIndex ( FQueryHit Hit,
uint32  FaceIndex 
)
inline

◆ SetShape()

void ChaosInterface::SetShape ( FDummyPhysType Hit,
Chaos::FImplicitObject Shape 
)
inline

Variable Documentation

◆ Chaos_Collision_MarginFraction

float ChaosInterface::Chaos_Collision_MarginFraction = -1.0f

◆ Chaos_Collision_MarginMax

float ChaosInterface::Chaos_Collision_MarginMax = -1.0f

◆ CVarChaosCollisionMarginFraction

FAutoConsoleVariableRef ChaosInterface::CVarChaosCollisionMarginFraction(TEXT("p.Chaos.Collision.MarginFraction"), Chaos_Collision_MarginFraction, TEXT("Override the collision margin fraction set in Physics Settings (if >= 0)")) ( TEXT("p.Chaos.Collision.MarginFraction")  ,
Chaos_Collision_MarginFraction  ,
TEXT("Override the collision margin fraction set in Physics Settings (if >= 0)")   
)

◆ CVarChaosCollisionMarginMax

FAutoConsoleVariableRef ChaosInterface::CVarChaosCollisionMarginMax(TEXT("p.Chaos.Collision.MarginMax"), Chaos_Collision_MarginMax, TEXT("Override the max collision margin set in Physics Settings (if >= 0)")) ( TEXT("p.Chaos.Collision.MarginMax")  ,
Chaos_Collision_MarginMax  ,
TEXT("Override the max collision margin set in Physics Settings (if >= 0)")   
)