UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ChaosInterfaceWrapperCore.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Chaos/Declares.h"
8#include "Chaos/Real.h"
9#include "ChaosSQTypes.h"
10#include "Math/Transform.h"
11#include "Math/UnrealMathSSE.h"
12#include "Math/Vector.h"
13#include "PhysXPublicCore.h"
17
19
20namespace Chaos
21{
22 class FCapsule;
23 class FImplicitObject;
24}
25
26namespace ChaosInterface
27{
30
31template<typename DummyT>
33
35
50
65
76
79{
80#if CHAOS_DEBUG_DRAW
82 : bDebugQuery(false)
83 , bExternalQuery(true) { }
84 bool bDebugQuery;
85 bool bExternalQuery;
86 bool IsDebugQuery() const { return bDebugQuery; }
87 bool IsExternalQuery() const { return bExternalQuery; }
88#else
89 // In test or shipping builds, this struct must be left empty
91 constexpr bool IsDebugQuery() const { return false; }
92 constexpr bool IsExternalQuery() const { return true; }
93#endif
94};
95
96UE_DEPRECATED(5.7, "Use GetCombinedShapeFilterData instead") extern PHYSICSCORE_API FCollisionFilterData GetQueryFilterData(const Chaos::FPerShapeData& Shape);
98extern PHYSICSCORE_API Chaos::Filter::FShapeFilterData GetShapeFilterData(const Chaos::FPerShapeData& Shape);
100extern PHYSICSCORE_API Chaos::Filter::FCombinedShapeFilterData GetCombinedShapeFilterData(const Chaos::FPerShapeData& Shape);
101
102
104
106{
108}
109
111
113
114
115inline bool HadInitialOverlap(const FLocationHit& Hit)
116{
117 return Hit.Distance <= 0.f;
118}
119
120inline bool HadInitialOverlap(const FPTLocationHit& Hit)
121{
122 return Hit.Distance <= 0.f;
123}
124
126{
127 return Hit.Shape;
128}
129
131{
132 return Hit.Shape;
133}
134
136{
137 return Hit.Actor;
138}
139
141{
142 return Hit.Actor;
143}
144
146{
147 return Hit.Distance;
148}
149
151{
152 return Hit.Distance;
153}
154
156{
157 return Hit.WorldPosition;
158}
159
161{
162 return Hit.WorldPosition;
163}
164
166{
167 return Hit.WorldNormal;
168}
169
171{
172 return Hit.WorldNormal;
173}
174
176{
177 return Hit.Flags;
178}
179
181{
182 return Hit.Flags;
183}
184
185
187{
188 Hit.Flags = Flags;
189}
190
195
197{
198 return Hit.FaceIndex;
199}
200
202{
203 return Hit.FaceIndex;
204}
205
207{
208 Hit.FaceIndex = FaceIndex;
209}
210
212{
213 Hit.FaceIndex = FaceIndex;
214}
215
216
218{
219 return 0xffffffff;
220}
221
226
231
233{
234 return 0;
235}
236
241
243{
244
245}
246
248{
249
250}
251
252template <typename HitType>
254{
255 return Callback.GetBlock();
256}
257
258template <typename HitType>
260{
261 return Callback.HasBlockingHit();
262}
263
264} // namespace ChaosInterface
#define FORCEINLINE
Definition AndroidPlatform.h:140
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EHitFlags
Definition PhysicsInterfaceWrapperShared.h:65
ECollisionShapeType
Definition PhysicsInterfaceTypesCore.h:49
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition SQTypes.h:220
HitType * GetBlock()
Definition SQTypes.h:252
bool HasBlockingHit() const
Definition SQTypes.h:255
Definition Capsule.h:23
Definition ImplicitObject.h:111
Definition ShapeInstance.h:36
Definition ParticleHandle.h:436
Definition ParticleHandle.h:2739
Definition UnrealType.h:3087
Definition PhysicalMaterial.h:104
Definition ChaosInterfaceUtils.cpp:28
ECollisionShapeType GetType(const Chaos::FImplicitObject &InGeometry)
Definition ChaosInterfaceWrapperCore.h:105
FORCEINLINE void SetFlags(FLocationHit &Hit, FHitFlags Flags)
Definition ChaosInterfaceWrapperCore.h:186
bool GetHasBlock(const FSQHitBuffer< HitType > &Callback)
Definition ChaosInterfaceWrapperCore.h:259
uint32 GetInternalFaceIndex(const FQueryHit &Hit)
Definition ChaosInterfaceWrapperCore.h:196
uint32 GetInvalidPhysicsFaceIndex()
Definition ChaosInterfaceWrapperCore.h:217
void SetShape(FDummyPhysType &Hit, Chaos::FImplicitObject *Shape)
Definition ChaosInterfaceWrapperCore.h:247
Chaos::Filter::FShapeFilterData GetShapeFilterData(const Chaos::FPerShapeData &Shape)
Definition ChaosInterfaceWrapperCore.cpp:65
FTransform GetGlobalPose(const FDummyPhysActor &RigidActor)
Definition ChaosInterfaceWrapperCore.h:227
bool HadInitialOverlap(const FLocationHit &Hit)
Definition ChaosInterfaceWrapperCore.h:115
uint32 GetNumShapes(const FDummyPhysActor &RigidActor)
Definition ChaosInterfaceWrapperCore.h:232
FHitFlags GetFlags(const FLocationHit &Hit)
Definition ChaosInterfaceWrapperCore.h:175
HitType * GetBlock(FSQHitBuffer< HitType > &Callback)
Definition ChaosInterfaceWrapperCore.h:253
uint32 GetTriangleMeshExternalFaceIndex(const FDummyPhysType &Shape, uint32 InternalFaceIndex)
Definition ChaosInterfaceWrapperCore.h:222
Chaos::FGeometryParticle * GetActor(const FActorShape &Hit)
Definition ChaosInterfaceWrapperCore.h:135
Chaos::Filter::FCombinedShapeFilterData GetCombinedShapeFilterData(const Chaos::FPerShapeData &Shape)
Definition ChaosInterfaceWrapperCore.cpp:75
void SetInternalFaceIndex(FQueryHit &Hit, uint32 FaceIndex)
Definition ChaosInterfaceWrapperCore.h:206
FCollisionFilterData GetQueryFilterData(const Chaos::FPerShapeData &Shape)
Definition ChaosInterfaceWrapperCore.cpp:55
ECollisionShapeType GetImplicitType(const Chaos::FImplicitObject &InGeometry)
Definition ChaosInterfaceWrapperCore.cpp:30
Chaos::FReal GetDistance(const FLocationHit &Hit)
Definition ChaosInterfaceWrapperCore.h:145
void GetShapes(const FDummyPhysActor &RigidActor, Chaos::FImplicitObject **ShapesBuffer, uint32 NumShapes)
Definition ChaosInterfaceWrapperCore.h:237
const Chaos::FPerShapeData * GetShape(const FActorShape &Hit)
Definition ChaosInterfaceWrapperCore.h:125
FCollisionFilterData GetSimulationFilterData(const Chaos::FPerShapeData &Shape)
Definition ChaosInterfaceWrapperCore.cpp:60
Chaos::FReal GetRadius(const Chaos::FCapsule &InCapsule)
Definition ChaosInterfaceWrapperCore.cpp:45
void SetActor(FDummyPhysType &Hit, FDummyPhysActor *Actor)
Definition ChaosInterfaceWrapperCore.h:242
Chaos::Filter::FInstanceData GetFilterInstanceData(const Chaos::FPerShapeData &Shape)
Definition ChaosInterfaceWrapperCore.cpp:70
FVector GetNormal(const FLocationHit &Hit)
Definition ChaosInterfaceWrapperCore.h:165
FVector GetPosition(const FLocationHit &Hit)
Definition ChaosInterfaceWrapperCore.h:155
Chaos::FReal GetHalfHeight(const Chaos::FCapsule &InCapsule)
Definition ChaosInterfaceWrapperCore.cpp:50
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22
Definition SQTypes.h:27
const Chaos::FPerShapeData * Shape
Definition SQTypes.h:29
Chaos::FGeometryParticle * Actor
Definition SQTypes.h:28
Definition ChaosInterfaceWrapperCore.h:32
Definition ChaosInterfaceWrapperCore.h:29
Definition ChaosInterfaceWrapperCore.h:28
Definition SQTypes.h:63
FVector WorldPosition
Definition SQTypes.h:65
FVector WorldNormal
Definition SQTypes.h:66
float Distance
Definition SQTypes.h:67
FHitFlags Flags
Definition SQTypes.h:64
Definition SQTypes.h:116
const Chaos::FPerShapeData * Shape
Definition SQTypes.h:118
Chaos::FGeometryParticleHandle * Actor
Definition SQTypes.h:117
Definition SQTypes.h:134
FHitFlags Flags
Definition SQTypes.h:135
float Distance
Definition SQTypes.h:138
FVector WorldNormal
Definition SQTypes.h:137
FVector WorldPosition
Definition SQTypes.h:136
Definition SQTypes.h:122
int32 FaceIndex
Definition SQTypes.h:127
Definition ChaosInterfaceWrapperCore.h:68
FPhysicsOverlapInputAdapater(const FTransform &InPose)
Definition ChaosInterfaceWrapperCore.h:69
FTransform GeomPose
Definition ChaosInterfaceWrapperCore.h:74
Definition ChaosInterfaceWrapperCore.h:38
FVector Dir
Definition ChaosInterfaceWrapperCore.h:47
FVector Start
Definition ChaosInterfaceWrapperCore.h:46
FPhysicsRaycastInputAdapater(const FVector &InStart, const FVector &InDir, const EHitFlags InFlags)
Definition ChaosInterfaceWrapperCore.h:39
EHitFlags OutputFlags
Definition ChaosInterfaceWrapperCore.h:48
Definition ChaosInterfaceWrapperCore.h:53
FVector Dir
Definition ChaosInterfaceWrapperCore.h:62
FPhysicsSweepInputAdapater(const FTransform &InStartTM, const FVector &InDir, const EHitFlags InFlags)
Definition ChaosInterfaceWrapperCore.h:54
EHitFlags OutputFlags
Definition ChaosInterfaceWrapperCore.h:63
FTransform StartTM
Definition ChaosInterfaceWrapperCore.h:61
Definition ChaosInterfaceWrapperCore.h:79
constexpr bool IsExternalQuery() const
Definition ChaosInterfaceWrapperCore.h:92
constexpr bool IsDebugQuery() const
Definition ChaosInterfaceWrapperCore.h:91
FQueryDebugParams()
Definition ChaosInterfaceWrapperCore.h:90
Definition SQTypes.h:41
int32 FaceIndex
Definition SQTypes.h:48
Definition PhysicsInterfaceTypesCore.h:390
Definition CollisionFilterData.h:46
Definition PhysicsInterfaceWrapperShared.h:86
Definition HairStrandsVoxelization.cpp:1078
static CORE_API const TTransform< double > Identity
Definition TransformNonVectorized.h:58