UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PhysicsInterfaceTypesCore.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4#include "CoreMinimal.h"
8
10struct FChaosQueryFlag;
11class FChaosScene;
12
36
43{
44 ObjectQuery = 0,
45 TraceQuery = 1
46};
47
49{
50 Sphere,
51 Plane,
52 Box,
53 Capsule,
54 Convex,
55 Trimesh,
57 None
58};
59
67
83
84
91
93{
94 // if almost zero, set min scale
95 // @todo fixme
96 if (InScale3D.IsNearlyZero())
97 {
98 // set min scale
99 InScale3D = FVector(0.1f);
100 }
101
102 OutScale3DAbs = InScale3D.GetAbs();
103 OutMinScaleAbs = OutScale3DAbs.GetMin();
104
105 OutMinScale = FMath::Max3(InScale3D.X, InScale3D.Y, InScale3D.Z) < 0.f ? -OutMinScaleAbs : OutMinScaleAbs; //if all three values are negative make minScale negative
106
108 {
109 // only one of them can be 0, we make sure they have mini set up correctly
110 OutMinScale = 0.1f;
111 OutMinScaleAbs = 0.1f;
112 }
113}
114
116{
119 OutMinScale = static_cast<float>(OutMinScaleD); // LWC_TODO: Precision loss?
120 OutMinScaleAbs = static_cast<float>(OutMinScaleAbsD);
121}
122
123
126{
127 OutTransform = FTransform::Identity;
128
129 if (InScale3D.Y > 0.f)
130 {
131 if (InScale3D.Z > 0.f)
132 {
133 // no rotation needed
134 }
135 else
136 {
137 // y pos, z neg
138 OutTransform.SetRotation(FQuat(FVector(0.0f, 1.0f, 0.0f), UE_PI));
139 //OutTransform.q = PxQuat(PxPi, PxVec3(0,1,0));
140 }
141 }
142 else
143 {
144 if (InScale3D.Z > 0.f)
145 {
146 // y neg, z pos
147 //OutTransform.q = PxQuat(PxPi, PxVec3(0,0,1));
148 OutTransform.SetRotation(FQuat(FVector(0.0f, 0.0f, 1.0f), UE_PI));
149 }
150 else
151 {
152 // y neg, z neg
153 //OutTransform.q = PxQuat(PxPi, PxVec3(1,0,0));
154 OutTransform.SetRotation(FQuat(FVector(1.0f, 0.0f, 0.0f), UE_PI));
155 }
156 }
157
158 // Use inverted mesh if determinant is negative
159 return (InScale3D.X * InScale3D.Y * InScale3D.Z) < 0.f;
160}
161
162
163// TODO: Fixup types, these are more or less the PhysX types renamed as a temporary solution.
164// Probably should move to different header as well.
165
166inline constexpr uint32 AggregateMaxSize = 128;
167
169class UPrimitiveComponent;
170struct FBodyInstance;
172struct FKShapeElem;
173
175struct FKShapeElem;
177struct FPhysicsObject;
179
181{
182 enum Type
183 {
191 PhysicsObject, // This will replace BodyInstances in the future
192 ChaosUserEntity, // This is used for adding custom user entities (unknown to UE)
193 CustomPayload, //This is intended for plugins
194 };
195};
196
197
199{
200protected:
202 void* Payload;
203
204public:
210 FChaosUserData(UPrimitiveComponent* InPayload) :Type(EChaosUserDataType::PrimitiveComponent), Payload(InPayload) {}
212 FChaosUserData(FPhysicsObject* InPayload) :Type(EChaosUserDataType::PhysicsObject), Payload(InPayload) {}
215
216 template <class T> static T* Get(void* UserData);
217 template <class T> static void Set(void* UserData, T* Payload);
218
219 //helper function to determine if userData is garbage (maybe dangling pointer)
220 static bool IsGarbage(void* UserData){ return ((FChaosUserData*)UserData)->Type < EChaosUserDataType::Invalid || ((FChaosUserData*)UserData)->Type > EChaosUserDataType::CustomPayload; }
221
222 template <EChaosUserDataType::Type UserDataType>
223 bool Is() const { return Type == UserDataType; }
224};
225
228
229template <> FORCEINLINE FBodyInstance* FChaosUserData::Get(void* UserData) { if (!UserData || ((FChaosUserData*)UserData)->Type != EChaosUserDataType::BodyInstance) { return nullptr; } return (FBodyInstance*)((FChaosUserData*)UserData)->Payload; }
230template <> FORCEINLINE UPhysicalMaterial* FChaosUserData::Get(void* UserData) { if (!UserData || ((FChaosUserData*)UserData)->Type != EChaosUserDataType::PhysicalMaterial) { return nullptr; } return (UPhysicalMaterial*)((FChaosUserData*)UserData)->Payload; }
231template <> FORCEINLINE FPhysScene* FChaosUserData::Get(void* UserData) { if (!UserData || ((FChaosUserData*)UserData)->Type != EChaosUserDataType::PhysScene) { return nullptr; }return (FPhysScene*)((FChaosUserData*)UserData)->Payload; }
232template <> FORCEINLINE FConstraintInstance* FChaosUserData::Get(void* UserData) { if (!UserData || ((FChaosUserData*)UserData)->Type != EChaosUserDataType::ConstraintInstance) { return nullptr; } return (FConstraintInstance*)((FChaosUserData*)UserData)->Payload; }
233template <> FORCEINLINE UPrimitiveComponent* FChaosUserData::Get(void* UserData) { if (!UserData || ((FChaosUserData*)UserData)->Type != EChaosUserDataType::PrimitiveComponent) { return nullptr; } return (UPrimitiveComponent*)((FChaosUserData*)UserData)->Payload; }
234template <> FORCEINLINE FKShapeElem* FChaosUserData::Get(void* UserData) { if (!UserData || ((FChaosUserData*)UserData)->Type != EChaosUserDataType::AggShape) { return nullptr; } return (FKShapeElem*)((FChaosUserData*)UserData)->Payload; }
235template <> FORCEINLINE FPhysicsObject* FChaosUserData::Get(void* UserData) { if (!UserData || ((FChaosUserData*)UserData)->Type != EChaosUserDataType::PhysicsObject) { return nullptr; } return (FPhysicsObject*)((FChaosUserData*)UserData)->Payload; }
236template <> FORCEINLINE FChaosUserEntityAppend* FChaosUserData::Get(void* UserData) { if (!UserData || ((FChaosUserData*)UserData)->Type != EChaosUserDataType::ChaosUserEntity) { return nullptr; } return (FChaosUserEntityAppend*)((FChaosUserData*)UserData)->Payload; }
237template <> FORCEINLINE FCustomChaosPayload* FChaosUserData::Get(void* UserData) { if (!UserData || ((FChaosUserData*)UserData)->Type != EChaosUserDataType::CustomPayload) { return nullptr; } return (FCustomChaosPayload*)((FChaosUserData*)UserData)->Payload; }
238
239template <> FORCEINLINE void FChaosUserData::Set(void* UserData, FBodyInstance* Payload) { check(UserData); ((FChaosUserData*)UserData)->Type = EChaosUserDataType::BodyInstance; ((FChaosUserData*)UserData)->Payload = Payload; }
240template <> FORCEINLINE void FChaosUserData::Set(void* UserData, UPhysicalMaterial* Payload) { check(UserData); ((FChaosUserData*)UserData)->Type = EChaosUserDataType::PhysicalMaterial; ((FChaosUserData*)UserData)->Payload = Payload; }
241template <> FORCEINLINE void FChaosUserData::Set(void* UserData, FPhysScene* Payload) { check(UserData); ((FChaosUserData*)UserData)->Type = EChaosUserDataType::PhysScene; ((FChaosUserData*)UserData)->Payload = Payload; }
242template <> FORCEINLINE void FChaosUserData::Set(void* UserData, FConstraintInstance* Payload) { check(UserData); ((FChaosUserData*)UserData)->Type = EChaosUserDataType::ConstraintInstance; ((FChaosUserData*)UserData)->Payload = Payload; }
243template <> FORCEINLINE void FChaosUserData::Set(void* UserData, UPrimitiveComponent* Payload) { check(UserData); ((FChaosUserData*)UserData)->Type = EChaosUserDataType::PrimitiveComponent; ((FChaosUserData*)UserData)->Payload = Payload; }
244template <> FORCEINLINE void FChaosUserData::Set(void* UserData, FKShapeElem* Payload) { check(UserData); ((FChaosUserData*)UserData)->Type = EChaosUserDataType::AggShape; ((FChaosUserData*)UserData)->Payload = Payload; }
245template <> FORCEINLINE void FChaosUserData::Set(void* UserData, FPhysicsObject* Payload) { check(UserData); ((FChaosUserData*)UserData)->Type = EChaosUserDataType::PhysicsObject; ((FChaosUserData*)UserData)->Payload = Payload; }
246template <> FORCEINLINE void FChaosUserData::Set(void* UserData, FChaosUserEntityAppend* Payload) { check(UserData); ((FChaosUserData*)UserData)->Type = EChaosUserDataType::ChaosUserEntity; ((FChaosUserData*)UserData)->Payload = Payload; }
247template <> FORCEINLINE void FChaosUserData::Set(void* UserData, FCustomChaosPayload* Payload) { check(UserData); ((FChaosUserData*)UserData)->Type = EChaosUserDataType::CustomPayload; ((FChaosUserData*)UserData)->Payload = Payload; }
248
250{
252 {
253 word0 = word1 = word2 = word3 = 0;
254 }
255
257
259 {
260 *this = FChaosFilterData();
261 }
262
264 {
265 return Other.word0 == word0 && Other.word1 == word1 && Other.word2 == word2 && Other.word3 == word3;
266 }
267
269 {
270 return !(Other == *this);
271 }
272
277};
278
280{
281 enum Enum
282 {
283 eSTATIC = (1 << 0),
284
285 eDYNAMIC = (1 << 1),
286
287 ePREFILTER = (1 << 2),
288
289 ePOSTFILTER = (1 << 3),
290
291 eANY_HIT = (1 << 4),
293
294 eNO_BLOCK = (1 << 5),
296
297 eSKIPNARROWPHASE = (1 << 6),
298
299 eRESERVED = (1 << 15)
300 };
301};
302
303template <typename enumtype, typename storagetype = uint32_t>
305{
306public:
308
313
318 FORCEINLINE bool operator==(bool b) const;
321
324
329
334
339
341
342 FORCEINLINE operator bool(void) const;
343 FORCEINLINE operator uint8_t(void) const;
344 FORCEINLINE operator uint16_t(void) const;
345 FORCEINLINE operator uint32_t(void) const;
346
348
349public:
356
357private:
358 storagetype mBits;
359};
360
362
364{
365 uint16 Result = 0;
367 {
369 }
370
372 {
374 }
375
377 {
379 }
380
382 {
384 }
385
386 return (FChaosQueryFlags)Result;
387}
388
401
402template <typename enumtype, typename storagetype>
407
408template <typename enumtype, typename storagetype>
413
414template <typename enumtype, typename storagetype>
419
420template <typename enumtype, typename storagetype>
425
426template <typename enumtype, typename storagetype>
428{
429 return (mBits & static_cast<storagetype>(e)) == static_cast<storagetype>(e);
430}
431
432template <typename enumtype, typename storagetype>
438
439template <typename enumtype, typename storagetype>
441{
442 return mBits == static_cast<storagetype>(e);
443}
444
445template <typename enumtype, typename storagetype>
447{
448 return mBits == f.mBits;
449}
450
451template <typename enumtype, typename storagetype>
453{
454 return bool(*this) == b;
455}
456
457template <typename enumtype, typename storagetype>
459{
460 return mBits != static_cast<storagetype>(e);
461}
462
463template <typename enumtype, typename storagetype>
465{
466 return mBits != f.mBits;
467}
468
469template <typename enumtype, typename storagetype>
475
476template <typename enumtype, typename storagetype>
482
483template <typename enumtype, typename storagetype>
489
490template <typename enumtype, typename storagetype>
497
498template <typename enumtype, typename storagetype>
505
506template <typename enumtype, typename storagetype>
514
515template <typename enumtype, typename storagetype>
521
522template <typename enumtype, typename storagetype>
529
530template <typename enumtype, typename storagetype>
537
538template <typename enumtype, typename storagetype>
546
547template <typename enumtype, typename storagetype>
553
554template <typename enumtype, typename storagetype>
561
562template <typename enumtype, typename storagetype>
569
570template <typename enumtype, typename storagetype>
578
579template <typename enumtype, typename storagetype>
586
587template <typename enumtype, typename storagetype>
589{
590 return mBits ? true : false;
591}
592
593template <typename enumtype, typename storagetype>
595{
596 return static_cast<uint8_t>(mBits);
597}
598
599template <typename enumtype, typename storagetype>
601{
602 return static_cast<uint16_t>(mBits);
603}
604
605template <typename enumtype, typename storagetype>
607{
608 return static_cast<uint32_t>(mBits);
609}
610
611template <typename enumtype, typename storagetype>
#define FORCEINLINE
Definition AndroidPlatform.h:140
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
#define FVector
Definition IOSSystemIncludes.h:8
UE::Math::TQuat< double > FQuat
Definition MathFwd.h:50
const bool
Definition NetworkReplayStreaming.h:178
ChaosFlags< FChaosQueryFlag::Enum, uint16 > FChaosQueryFlags
Definition PhysicsInterfaceTypesCore.h:361
ECollisionQuery
Definition PhysicsInterfaceTypesCore.h:43
constexpr uint32 AggregateMaxSize
Definition PhysicsInterfaceTypesCore.h:166
ECollisionShapeType
Definition PhysicsInterfaceTypesCore.h:49
void SetupNonUniformHelper(FVector InScale3D, double &OutMinScale, double &OutMinScaleAbs, FVector &OutScale3DAbs)
Definition PhysicsInterfaceTypesCore.h:92
FChaosQueryFlags U2CQueryFlags(FQueryFlags Flags)
Definition PhysicsInterfaceTypesCore.h:363
bool CalcMeshNegScaleCompensation(const FVector &InScale3D, FTransform &OutTransform)
Definition PhysicsInterfaceTypesCore.h:125
#define UE_PI
Definition UnrealMathUtility.h:129
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition PhysicsInterfaceTypesCore.h:305
FORCEINLINE bool operator!=(const ChaosFlags< enumtype, storagetype > &f) const
Definition PhysicsInterfaceTypesCore.h:464
FORCEINLINE bool operator==(const ChaosFlags< enumtype, storagetype > &f) const
Definition PhysicsInterfaceTypesCore.h:446
FORCEINLINE bool operator!=(enumtype e) const
Definition PhysicsInterfaceTypesCore.h:458
FORCEINLINE bool operator==(bool b) const
Definition PhysicsInterfaceTypesCore.h:452
FORCEINLINE ChaosFlags< enumtype, storagetype > operator&(enumtype e) const
Definition PhysicsInterfaceTypesCore.h:531
FORCEINLINE ChaosFlags< enumtype, storagetype > & operator^=(const ChaosFlags< enumtype, storagetype > &f)
Definition PhysicsInterfaceTypesCore.h:556
FORCEINLINE ChaosFlags< enumtype, storagetype > operator&(const ChaosFlags< enumtype, storagetype > &f) const
Definition PhysicsInterfaceTypesCore.h:540
FORCEINLINE ChaosFlags< enumtype, storagetype > operator|(enumtype e) const
Definition PhysicsInterfaceTypesCore.h:499
FORCEINLINE ChaosFlags< enumtype, storagetype > & operator=(const ChaosFlags< enumtype, storagetype > &f)
Definition PhysicsInterfaceTypesCore.h:477
FORCEINLINE ChaosFlags< enumtype, storagetype > operator|(const ChaosFlags< enumtype, storagetype > &f) const
Definition PhysicsInterfaceTypesCore.h:508
FORCEINLINE bool isSet(enumtype e) const
Definition PhysicsInterfaceTypesCore.h:427
FORCEINLINE ChaosFlags(storagetype b)
Definition PhysicsInterfaceTypesCore.h:421
storagetype InternalType
Definition PhysicsInterfaceTypesCore.h:307
FORCEINLINE ChaosFlags< enumtype, storagetype > operator^(enumtype e) const
Definition PhysicsInterfaceTypesCore.h:563
FORCEINLINE ChaosFlags(enumtype e)
Definition PhysicsInterfaceTypesCore.h:409
FORCEINLINE bool operator==(enumtype e) const
Definition PhysicsInterfaceTypesCore.h:440
FORCEINLINE ChaosFlags< enumtype, storagetype > & operator|=(enumtype e)
Definition PhysicsInterfaceTypesCore.h:484
FORCEINLINE ChaosFlags< enumtype, storagetype > & operator^=(enumtype e)
Definition PhysicsInterfaceTypesCore.h:548
FORCEINLINE ChaosFlags< enumtype, storagetype > & operator=(enumtype e)
Definition PhysicsInterfaceTypesCore.h:470
FORCEINLINE ChaosFlags< enumtype, storagetype > & operator&=(const ChaosFlags< enumtype, storagetype > &f)
Definition PhysicsInterfaceTypesCore.h:524
FORCEINLINE void clear(enumtype e)
Definition PhysicsInterfaceTypesCore.h:612
FORCEINLINE ChaosFlags(void)
Definition PhysicsInterfaceTypesCore.h:403
FORCEINLINE ChaosFlags< enumtype, storagetype > & operator&=(enumtype e)
Definition PhysicsInterfaceTypesCore.h:516
FORCEINLINE ChaosFlags< enumtype, storagetype > operator~(void) const
Definition PhysicsInterfaceTypesCore.h:580
FORCEINLINE ChaosFlags< enumtype, storagetype > & operator|=(const ChaosFlags< enumtype, storagetype > &f)
Definition PhysicsInterfaceTypesCore.h:492
friend FORCEINLINE ChaosFlags< enumtype, storagetype > operator&(enumtype a, ChaosFlags< enumtype, storagetype > &b)
Definition PhysicsInterfaceTypesCore.h:350
FORCEINLINE ChaosFlags< enumtype, storagetype > operator^(const ChaosFlags< enumtype, storagetype > &f) const
Definition PhysicsInterfaceTypesCore.h:572
FORCEINLINE ChaosFlags< enumtype, storagetype > & set(enumtype e)
Definition PhysicsInterfaceTypesCore.h:433
FORCEINLINE ChaosFlags(const ChaosFlags< enumtype, storagetype > &f)
Definition PhysicsInterfaceTypesCore.h:415
Definition ChaosScene.h:88
Definition PhysScene_Chaos.h:116
Definition PhysicalMaterial.h:104
Definition PhysicsInterfaceTypesCore.h:181
Type
Definition PhysicsInterfaceTypesCore.h:183
@ PhysicalMaterial
Definition PhysicsInterfaceTypesCore.h:186
@ PhysScene
Definition PhysicsInterfaceTypesCore.h:187
@ AggShape
Definition PhysicsInterfaceTypesCore.h:190
@ ChaosUserEntity
Definition PhysicsInterfaceTypesCore.h:192
@ BodyInstance
Definition PhysicsInterfaceTypesCore.h:185
@ PhysicsObject
Definition PhysicsInterfaceTypesCore.h:191
@ PrimitiveComponent
Definition PhysicsInterfaceTypesCore.h:189
@ Invalid
Definition PhysicsInterfaceTypesCore.h:184
@ ConstraintInstance
Definition PhysicsInterfaceTypesCore.h:188
@ CustomPayload
Definition PhysicsInterfaceTypesCore.h:193
@ false
Definition radaudio_common.h:23
Definition PhysicsInterfaceTypesCore.h:14
FActorCreationParams()
Definition PhysicsInterfaceTypesCore.h:15
FChaosScene * Scene
Definition PhysicsInterfaceTypesCore.h:26
bool bStatic
Definition PhysicsInterfaceTypesCore.h:28
bool bQueryOnly
Definition PhysicsInterfaceTypesCore.h:29
bool bUpdateKinematicFromSimulation
Definition PhysicsInterfaceTypesCore.h:31
bool bSimulatePhysics
Definition PhysicsInterfaceTypesCore.h:32
FTransform InitialTM
Definition PhysicsInterfaceTypesCore.h:27
bool bEnableGravity
Definition PhysicsInterfaceTypesCore.h:30
char * DebugName
Definition PhysicsInterfaceTypesCore.h:34
bool bStartAwake
Definition PhysicsInterfaceTypesCore.h:33
Definition PhysicsInterfaceTypesCore.h:87
FBodyCollisionFlags CollisionFlags
Definition PhysicsInterfaceTypesCore.h:89
FBodyCollisionFilterData CollisionFilterData
Definition PhysicsInterfaceTypesCore.h:88
Definition PhysicsInterfaceTypesCore.h:62
FCollisionFilterData SimFilter
Definition PhysicsInterfaceTypesCore.h:63
FCollisionFilterData QueryComplexFilter
Definition PhysicsInterfaceTypesCore.h:65
FCollisionFilterData QuerySimpleFilter
Definition PhysicsInterfaceTypesCore.h:64
Definition PhysicsInterfaceTypesCore.h:69
bool bEnableSimCollisionComplex
Definition PhysicsInterfaceTypesCore.h:79
bool bEnableQueryCollision
Definition PhysicsInterfaceTypesCore.h:80
bool bEnableSimCollisionSimple
Definition PhysicsInterfaceTypesCore.h:78
bool bEnableProbeCollision
Definition PhysicsInterfaceTypesCore.h:81
FBodyCollisionFlags()
Definition PhysicsInterfaceTypesCore.h:70
Definition BodyInstanceCore.h:16
Definition BodyInstance.h:320
Definition PhysicsInterfaceTypesCore.h:250
FORCEINLINE bool operator==(const FChaosFilterData &Other) const
Definition PhysicsInterfaceTypesCore.h:263
uint32 word0
Definition PhysicsInterfaceTypesCore.h:273
uint32 word2
Definition PhysicsInterfaceTypesCore.h:275
FORCEINLINE bool operator!=(const FChaosFilterData &Other) const
Definition PhysicsInterfaceTypesCore.h:268
uint32 word1
Definition PhysicsInterfaceTypesCore.h:274
FORCEINLINE void Reset()
Definition PhysicsInterfaceTypesCore.h:258
FORCEINLINE FChaosFilterData()
Definition PhysicsInterfaceTypesCore.h:251
FORCEINLINE FChaosFilterData(uint32 w0, uint32 w1, uint32 w2, uint32 w3)
Definition PhysicsInterfaceTypesCore.h:256
uint32 word3
Definition PhysicsInterfaceTypesCore.h:276
Definition PhysicsInterfaceTypesCore.h:390
FORCEINLINE FChaosQueryFilterData(const FChaosFilterData &fd, FChaosQueryFlags f)
Definition PhysicsInterfaceTypesCore.h:393
FChaosFilterData data
Definition PhysicsInterfaceTypesCore.h:397
FORCEINLINE FChaosQueryFilterData(FChaosQueryFlags f)
Definition PhysicsInterfaceTypesCore.h:395
uint8 clientId
Definition PhysicsInterfaceTypesCore.h:399
FChaosQueryFlags flags
Definition PhysicsInterfaceTypesCore.h:398
FORCEINLINE FChaosQueryFilterData()
Definition PhysicsInterfaceTypesCore.h:391
Definition PhysicsInterfaceTypesCore.h:280
Enum
Definition PhysicsInterfaceTypesCore.h:282
@ ePOSTFILTER
Run the post-intersection-test filter.
Definition PhysicsInterfaceTypesCore.h:289
@ ePREFILTER
Run the pre-intersection-test filter.
Definition PhysicsInterfaceTypesCore.h:287
@ eSTATIC
Traverse static shapes.
Definition PhysicsInterfaceTypesCore.h:283
@ eANY_HIT
Definition PhysicsInterfaceTypesCore.h:291
@ eNO_BLOCK
Definition PhysicsInterfaceTypesCore.h:294
@ eRESERVED
Reserved for internal use.
Definition PhysicsInterfaceTypesCore.h:299
@ eSKIPNARROWPHASE
Skip narrow phase check for the query.
Definition PhysicsInterfaceTypesCore.h:297
@ eDYNAMIC
Traverse dynamic shapes.
Definition PhysicsInterfaceTypesCore.h:285
Definition PhysicsInterfaceTypesCore.h:199
FChaosUserData(FBodyInstance *InPayload)
Definition PhysicsInterfaceTypesCore.h:206
void * Payload
Definition PhysicsInterfaceTypesCore.h:202
FChaosUserData()
Definition PhysicsInterfaceTypesCore.h:205
FChaosUserData(FPhysScene *InPayload)
Definition PhysicsInterfaceTypesCore.h:208
FChaosUserData(FKShapeElem *InPayload)
Definition PhysicsInterfaceTypesCore.h:211
FChaosUserData(FChaosUserEntityAppend *InPayload)
Definition PhysicsInterfaceTypesCore.h:213
static bool IsGarbage(void *UserData)
Definition PhysicsInterfaceTypesCore.h:220
FChaosUserData(FPhysicsObject *InPayload)
Definition PhysicsInterfaceTypesCore.h:212
FChaosUserData(UPrimitiveComponent *InPayload)
Definition PhysicsInterfaceTypesCore.h:210
bool Is() const
Definition PhysicsInterfaceTypesCore.h:223
FChaosUserData(FConstraintInstance *InPayload)
Definition PhysicsInterfaceTypesCore.h:209
FChaosUserData(FCustomChaosPayload *InPayload)
Definition PhysicsInterfaceTypesCore.h:214
FChaosUserData(UPhysicalMaterial *InPayload)
Definition PhysicsInterfaceTypesCore.h:207
static void Set(void *UserData, T *Payload)
static T * Get(void *UserData)
EChaosUserDataType::Type Type
Definition PhysicsInterfaceTypesCore.h:201
Definition ChaosUserEntity.h:28
Definition CollisionFilterData.h:46
Definition ConstraintInstance.h:255
Definition ShapeElem.h:35
static UE_FORCEINLINE_HINT bool IsNearlyZero(float Value, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:407
static constexpr UE_FORCEINLINE_HINT T Max3(const T A, const T B, const T C)
Definition UnrealMathUtility.h:551
Definition PhysicsInterfaceWrapperShared.h:28
static CORE_API const TTransform< double > Identity
Definition TransformNonVectorized.h:58
void SetRotation(const TQuat< T > &NewRotation)
Definition TransformNonVectorized.h:858