UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ChaosInterfaceWrapper.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
10
13struct FBodyInstance;
18
19namespace Chaos
20{
21 class FPerShapeData;
22}
23
24namespace ChaosInterface
25{
26 struct FPTOverlapHit;
27
28// Needed by low level SQ calls.
36
43
48
49}
50
51namespace Chaos::Private
52{
53 template<typename TContainer, typename THit>
54 void LowLevelRaycast(const TContainer& Container, const FVector& Start, const FVector& Dir, float DeltaMag, FPhysicsHitCallback<THit>& HitBuffer, EHitFlags OutputFlags, FQueryFlags QueryFlags, const FCollisionFilterData& Filter, const ChaosInterface::FQueryFilterData& QueryFilterData, ICollisionQueryFilterCallbackBase* QueryCallback, const ChaosInterface::FQueryDebugParams& DebugParams = {});
55
56 template<typename TContainer, typename THit>
57 void LowLevelSweep(const TContainer& Container, const FPhysicsGeometry& Geom, const FTransform& StartTM, const FVector& Dir, float DeltaMag, FPhysicsHitCallback<THit>& HitBuffer, EHitFlags OutputFlags, FQueryFlags QueryFlags, const FCollisionFilterData& Filter, const ChaosInterface::FQueryFilterData& QueryFilterData, ICollisionQueryFilterCallbackBase* QueryCallback, const ChaosInterface::FQueryDebugParams& DebugParams = {});
58
59 template<typename TContainer, typename THit>
60 void LowLevelOverlap(const TContainer& Container, const FPhysicsGeometry& Geom, const FTransform& GeomPose, FPhysicsHitCallback<THit>& HitBuffer, FQueryFlags QueryFlags, const FCollisionFilterData& Filter, const ChaosInterface::FQueryFilterData& QueryFilterData, ICollisionQueryFilterCallbackBase* QueryCallback, const ChaosInterface::FQueryDebugParams& DebugParams = {});
61}
62
63// Export raycast functions
64#define DECLARE_LOW_LEVEL_RAYCAST_ACCEL_HIT(TACCEL, THIT) template<> UE_INTERNAL ENGINE_API void Chaos::Private::LowLevelRaycast(const TACCEL& Container, const FVector& Start, const FVector& Dir, float DeltaMag, FPhysicsHitCallback<THIT>& HitBuffer, EHitFlags OutputFlags, FQueryFlags QueryFlags, const FCollisionFilterData& Filter, const ChaosInterface::FQueryFilterData& QueryFilterData, ICollisionQueryFilterCallbackBase* QueryCallback, const ChaosInterface::FQueryDebugParams& DebugParams);
65#define DECLARE_LOW_LEVEL_RAYCAST_ACCEL(TACCEL) \
66DECLARE_LOW_LEVEL_RAYCAST_ACCEL_HIT(TACCEL, FHitRaycast); \
67DECLARE_LOW_LEVEL_RAYCAST_ACCEL_HIT(TACCEL, ChaosInterface::FPTRaycastHit);
71
72// Export sweep functions
73#define DECLARE_LOW_LEVEL_SWEEP_ACCEL_HIT(TACCEL, THIT) template<> UE_INTERNAL ENGINE_API void Chaos::Private::LowLevelSweep(const TACCEL& Container, const FPhysicsGeometry& QueryGeom, const FTransform& StartTM, const FVector& Dir, float DeltaMag, FPhysicsHitCallback<THIT>& HitBuffer, EHitFlags OutputFlags, FQueryFlags QueryFlags, const FCollisionFilterData& Filter, const ChaosInterface::FQueryFilterData& QueryFilterData, ICollisionQueryFilterCallbackBase* QueryCallback, const ChaosInterface::FQueryDebugParams& DebugParams);
74#define DECLARE_LOW_LEVEL_SWEEP_ACCEL(TACCEL) \
75DECLARE_LOW_LEVEL_SWEEP_ACCEL_HIT(TACCEL, FHitSweep); \
76DECLARE_LOW_LEVEL_SWEEP_ACCEL_HIT(TACCEL, ChaosInterface::FPTSweepHit);
80
81// Export overlap functions
82#define DECLARE_LOW_LEVEL_OVERLAP_ACCEL_HIT(TACCEL, THIT) template<> UE_INTERNAL ENGINE_API void Chaos::Private::LowLevelOverlap(const TACCEL& Container, const FPhysicsGeometry& QueryGeom, const FTransform& GeomPose, FPhysicsHitCallback<THIT>& HitBuffer, FQueryFlags QueryFlags, const FCollisionFilterData& Filter, const ChaosInterface::FQueryFilterData& QueryFilterData, ICollisionQueryFilterCallbackBase* QueryCallback, const ChaosInterface::FQueryDebugParams& DebugParams)
83#define DECLARE_LOW_LEVEL_OVERLAP_ACCEL(TACCEL) \
84DECLARE_LOW_LEVEL_OVERLAP_ACCEL_HIT(TACCEL, FHitOverlap); \
85DECLARE_LOW_LEVEL_OVERLAP_ACCEL_HIT(TACCEL, ChaosInterface::FPTOverlapHit);
#define DECLARE_LOW_LEVEL_OVERLAP_ACCEL(TACCEL)
Definition ChaosInterfaceWrapper.h:83
#define DECLARE_LOW_LEVEL_SWEEP_ACCEL(TACCEL)
Definition ChaosInterfaceWrapper.h:74
#define DECLARE_LOW_LEVEL_RAYCAST_ACCEL(TACCEL)
Definition ChaosInterfaceWrapper.h:65
#define PRAGMA_DISABLE_INTERNAL_WARNINGS
Definition CoreMiscDefines.h:346
#define PRAGMA_ENABLE_INTERNAL_WARNINGS
Definition CoreMiscDefines.h:347
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EHitFlags
Definition PhysicsInterfaceWrapperShared.h:65
EQueryFlags
Definition PhysicsInterfaceWrapperShared.h:9
FChaosQueryFlags U2CQueryFlags(FQueryFlags Flags)
Definition PhysicsInterfaceTypesCore.h:363
FChaosFilterData U2CFilterData(const FCollisionFilterData &FilterData)
Definition PhysicsInterfaceUtilsCore.cpp:19
Definition SQTypes.h:220
Definition Defines.h:85
Definition ImplicitObject.h:111
Definition PBDRigidsSolver.h:84
Definition ISpatialAcceleration.h:267
Definition ParticleHandle.h:2739
Definition PhysScene_Chaos.h:116
Definition CollisionQueryFilterCallbackCore.h:25
Definition PhysicalMaterial.h:104
Definition ChaosInterfaceUtils.cpp:28
UPrimitiveComponent * GetPrimitiveComponentFromUserData(const Chaos::FGeometryParticle &Actor)
Definition ChaosInterfaceWrapper.cpp:36
FQueryFilterData MakeQueryFilterData(const FCollisionFilterData &FilterData, EQueryFlags QueryFlags, const FCollisionQueryParams &Params)
Definition ChaosInterfaceWrapper.h:37
bool HasValidUserData(const Chaos::FGeometryParticle &Actor)
Definition ChaosInterfaceWrapper.cpp:56
FBodyInstance * GetUserData(const Chaos::FGeometryParticle &Actor)
Definition ChaosInterfaceWrapper.cpp:10
Definition BodyInstance.h:90
void LowLevelSweep(const TContainer &Container, const FPhysicsGeometry &Geom, const FTransform &StartTM, const FVector &Dir, float DeltaMag, FPhysicsHitCallback< THit > &HitBuffer, EHitFlags OutputFlags, FQueryFlags QueryFlags, const FCollisionFilterData &Filter, const ChaosInterface::FQueryFilterData &QueryFilterData, ICollisionQueryFilterCallbackBase *QueryCallback, const ChaosInterface::FQueryDebugParams &DebugParams={})
void LowLevelOverlap(const TContainer &Container, const FPhysicsGeometry &Geom, const FTransform &GeomPose, FPhysicsHitCallback< THit > &HitBuffer, FQueryFlags QueryFlags, const FCollisionFilterData &Filter, const ChaosInterface::FQueryFilterData &QueryFilterData, ICollisionQueryFilterCallbackBase *QueryCallback, const ChaosInterface::FQueryDebugParams &DebugParams={})
void LowLevelRaycast(const TContainer &Container, const FVector &Start, const FVector &Dir, float DeltaMag, FPhysicsHitCallback< THit > &HitBuffer, EHitFlags OutputFlags, FQueryFlags QueryFlags, const FCollisionFilterData &Filter, const ChaosInterface::FQueryFilterData &QueryFilterData, ICollisionQueryFilterCallbackBase *QueryCallback, const ChaosInterface::FQueryDebugParams &DebugParams={})
Definition SkeletalMeshComponent.h:307
Definition ChaosInterfaceWrapperCore.h:79
Definition ChaosInterfaceWrapper.h:30
~FScopedSceneReadLock()
Definition ChaosInterfaceWrapper.cpp:75
Chaos::FPBDRigidsSolver * Solver
Definition ChaosInterfaceWrapper.h:34
Definition BodyInstance.h:320
Definition PhysicsInterfaceTypesCore.h:390
Definition CollisionFilterData.h:46
Definition CollisionQueryParams.h:43
Definition ExternalSpatialAccelerationPayload.h:24
Definition PhysicsInterfaceWrapperShared.h:28