27#ifndef CHAOS_DEBUG_NAME
28#define CHAOS_DEBUG_NAME 0
79 template <
typename TOther>
86 template <
typename TOther>
97 const FVec3&
X()
const {
return MX; }
139 template <
typename TOther>
146 template <
typename TOther>
186 Ar << MAngularAcceleration;
187 Ar << MLinearImpulseVelocity;
188 Ar << MAngularImpulseVelocity;
207 template <
typename TOther>
210 MAcceleration =
Other.Acceleration();
211 MAngularAcceleration =
Other.AngularAcceleration();
212 MLinearImpulseVelocity =
Other.LinearImpulseVelocity();
213 MAngularImpulseVelocity =
Other.AngularImpulseVelocity();
216 template <
typename TOther>
245 Result.MAcceleration =
FVec3(0);
246 Result.MAngularAcceleration =
FVec3(0);
247 Result.MLinearImpulseVelocity =
FVec3(0);
248 Result.MAngularImpulseVelocity =
FVec3(0);
255 FVec3f MAngularAcceleration;
256 FVec3f MLinearImpulseVelocity;
257 FVec3f MAngularImpulseVelocity;
298 Ar << MRotationOfMass;
305 template <
typename TOther>
308 MCenterOfMass =
Other.CenterOfMass();
309 MRotationOfMass =
Other.RotationOfMass();
311 MInvI =
Other.InvI();
313 MInvM =
Other.InvM();
316 template <
typename TOther>
382 Ar << MLinearEtherDrag;
383 Ar << MAngularEtherDrag;
401 bool bGravityEnabled;
402 Ar << bGravityEnabled;
408 bool bOneWayInteraction =
false;
411 Ar << bOneWayInteraction;
430 Ar << MCollisionConstraintFlag;
446 Ar << MMaxLinearSpeedSq;
447 Ar << MMaxAngularSpeedSq;
466 MInitialOverlapDepenetrationVelocity = 0;
467 MSleepThresholdMultiplier = 1.0f;
468 MIterationSettings = MIterationSettings.
MakeEmpty();
477 template <
typename TOther>
495 template <
typename TOther>
596 FRealSingle MInitialOverlapDepenetrationVelocity = 0;
598 int32 MCollisionGroup;
604 uint32 MCollisionConstraintFlag = 0;
631 template <
typename TOther>
643 SetDebugName(
Other.DebugName());
647 template <
typename TOther>
673 UE_DEPRECATED(5.4,
"Use SetGeometry with FImplicitObjectPtr instead")
705 FUniqueIdx MUniqueIdx;
706 FSpatialAccelerationIdx MSpatialIdx;
708 bool MEnabledDuringResim;
709 FParticleID MParticleID;
723 UE_DEPRECATED(5.7,
"Use Get/SetCombinedShapeFilterData instead")
857#define CHAOS_PROPERTY(PropName, Type, ProxyType) PropName,
866#define CHAOS_PROPERTY(PropName, Type, ProxyType) PropName = (uint32)1 << (uint32)EChaosProperty::PropName,
879#define CHAOS_PROPERTY(PropName, Type, ProxyType) case EChaosProperty::PropName: return EChaosPropertyFlags::PropName;
887#define SHAPE_PROPERTY(PropName, Type) PropName,
896#define SHAPE_PROPERTY(PropName, Type) PropName = (uint32)1 << (uint32)EShapeProperty::PropName,
909#define SHAPE_PROPERTY(PropName, Type) case EShapeProperty::PropName: return EShapeFlags::PropName;
916 template <
typename FlagsType>
975 template <
typename T>
994 return Elements.
Num();
1018 int32 Remaining = Idx;
1023 InnerIdx = Remaining;
1044#define CHAOS_PROPERTY(PropName, Type, ProxyType) PropName##Pool.SetNum(DirtyProxiesBucketInfo.Num[(uint32)ProxyType]);
1046#undef CHAOS_PROPERTY
1051#define SHAPE_PROPERTY(PropName, Type) PropName##ShapePool.SetNum(NumShapes);
1053#undef SHAPE_PROPERTY
1056 template <
typename T, EChaosProperty PropName>
1061#define CHAOS_PROPERTY(PropName, Type, ProxyType) case EChaosProperty::PropName: return (TDirtyElementPool<T>&)PropName##Pool;
1063#undef CHAOS_PROPERTY
1064 default:
check(
false);
1071 template <
typename T,EChaosProperty PropName>
1076#define CHAOS_PROPERTY(PropName, Type, ProxyType) case EChaosProperty::PropName: return (TDirtyElementPool<T>&)PropName##Pool;
1078#undef CHAOS_PROPERTY
1079 default:
check(
false);
1086 template <
typename T,EShapeProperty PropName>
1091#define SHAPE_PROPERTY(PropName, Type) case EShapeProperty::PropName: return (TDirtyElementPool<T>&)PropName##ShapePool;
1093#undef SHAPE_PROPERTY
1094 default:
check(
false);
1101 template <
typename T,EShapeProperty PropName>
1106#define SHAPE_PROPERTY(PropName, Type) case EShapeProperty::PropName: return (TDirtyElementPool<T>&)PropName##ShapePool;
1108#undef SHAPE_PROPERTY
1109 default:
check(
false);
1118#define CHAOS_PROPERTY(PropName, Type, ProxyType) TDirtyElementPool<Type> PropName##Pool;
1120#undef CHAOS_PROPERTY
1122#define SHAPE_PROPERTY(PropName, Type) TDirtyElementPool<Type> PropName##ShapePool;
1124#undef SHAPE_PROPERTY
1134 ParticleBufferType = Type;
1141 return ParticleBufferType;
1159 template <
typename T, EChaosProperty PropName>
1170#define CHAOS_PROPERTY(PropName, Type, ProxyType) ClearHelper<Type, EChaosProperty::PropName>(Manager, Idx);
1172#undef CHAOS_PROPERTY
1183#define CHAOS_PROPERTY(PropName, Type, ProxyType) MoveDataHelper<Type, EChaosProperty::PropName>(Manager, FromIdx, ToIdx);
1185#undef CHAOS_PROPERTY
1188#define CHAOS_PROPERTY(PropName, Type, ProxyType)\
1189Type const & Get##PropName(const FDirtyPropertiesManager& Manager, int32 Idx) const { return ReadImp<Type, EChaosProperty::PropName>(Manager, Idx); }\
1190bool Has##PropName() const { return Flags.IsDirty(ChaosPropertyToFlag(EChaosProperty::PropName)); }\
1191Type const * Find##PropName(const FDirtyPropertiesManager& Manager, int32 Idx) const { return Has##PropName() ? &Get##PropName(Manager, Idx) : nullptr; }
1194#undef CHAOS_PROPERTY
1200 template <
typename T,EChaosProperty PropName>
1207 template <
typename T, EChaosProperty PropName>
1208 void ClearHelper(FDirtyPropertiesManager& Manager,
int32 Idx)
1216 template <
typename T, EChaosProperty PropName>
1244 template <
typename T,EShapeProperty PropName>
1253 template <EShapeProperty PropName>
1261#define SHAPE_PROPERTY(PropName, Type) ClearHelper<Type, EShapeProperty::PropName>(Manager, Idx);
1263#undef SHAPE_PROPERTY
1267#define SHAPE_PROPERTY(PropName, Type)\
1268Type const & Get##PropName(const FDirtyPropertiesManager& Manager, int32 Idx) const { return ReadImp<Type, EShapeProperty::PropName>(Manager, Idx); }\
1269bool Has##PropName() const { return Flags.IsDirty(ShapePropToFlag(EShapeProperty::PropName)); }\
1270Type const * Find##PropName(const FDirtyPropertiesManager& Manager, int32 Idx) const { return Has##PropName() ? &Get##PropName(Manager, Idx) : nullptr; }
1273#undef CHAOS_PROPERTY
1279 template <
typename T,EShapeProperty PropName>
1286 template <
typename T,EShapeProperty PropName>
1287 void ClearHelper(FDirtyPropertiesManager& Manager,
int32 Idx)
1296template <
typename T>
1301template <
typename T>
1322 Elements[Idx] = T();
1328 return Elements[Idx];
1333 return Elements[Idx];
1352 template <
typename T, EChaosProperty PropName>
1357#define CHAOS_PROPERTY(PropName, Type, ProxyType) case EChaosProperty::PropName: return (TPropertyPool<T>&)PropName##Pool;
1359#undef CHAOS_PROPERTY
1360 default:
check(
false);
1367 template <
typename T, EChaosProperty PropName>
1372#define CHAOS_PROPERTY(PropName, Type, ProxyType) case EChaosProperty::PropName: return (TPropertyPool<T>&)PropName##Pool;
1374#undef CHAOS_PROPERTY
1375 default:
check(
false);
1384#define CHAOS_PROPERTY(PropName, Type, ProxyType) TPropertyPool<Type> PropName##Pool;
1386#undef CHAOS_PROPERTY
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#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
return true
Definition ExternalRpcRegistry.cpp:601
ESPMode
Definition SharedPointerFwd.h:12
float Val(const FString &Value)
Definition UnrealMath.cpp:3163
Definition ChaosArchive.h:167
void SerializePtr(TSerializablePtr< T > &Obj)
Definition ChaosArchive.h:176
Definition ParticleDirtyFlags.h:1129
void SyncRemote(FDirtyPropertiesManager &Manager, int32 Idx, const T &Val) const
Definition ParticleDirtyFlags.h:1160
void DirtyFlag(EChaosPropertyFlags Flag)
Definition ParticleDirtyFlags.h:1154
void Clear(FDirtyPropertiesManager &Manager, int32 Idx)
Definition ParticleDirtyFlags.h:1168
FDirtyChaosPropertyFlags GetFlags() const
Definition ParticleDirtyFlags.h:1149
void SetFlags(FDirtyChaosPropertyFlags InFlags)
Definition ParticleDirtyFlags.h:1144
bool IsDirty(EChaosPropertyFlags InBits) const
Definition ParticleDirtyFlags.h:1176
void MoveData(FDirtyPropertiesManager &Manager, int32 FromIdx, int32 ToIdx)
Definition ParticleDirtyFlags.h:1181
EParticleType GetParticleBufferType() const
Definition ParticleDirtyFlags.h:1139
void SetParticleBufferType(EParticleType Type)
Definition ParticleDirtyFlags.h:1132
Definition ParticleDirtyFlags.h:1039
TDirtyElementPool< T > & GetChaosPropertyPool()
Definition ParticleDirtyFlags.h:1057
const TDirtyElementPool< T > & GetShapePool() const
Definition ParticleDirtyFlags.h:1102
const TDirtyElementPool< T > & GetChaosPropertyPool() const
Definition ParticleDirtyFlags.h:1072
void PrepareBuckets(const FDirtyProxiesBucketInfo &DirtyProxiesBucketInfo)
Definition ParticleDirtyFlags.h:1042
void SetNumShapes(int32 NumShapes)
Definition ParticleDirtyFlags.h:1049
TDirtyElementPool< T > & GetShapePool()
Definition ParticleDirtyFlags.h:1087
Definition ParticleDirtyFlags.h:1350
TPropertyPool< T > & GetPool()
Definition ParticleDirtyFlags.h:1353
const TPropertyPool< T > & GetPool() const
Definition ParticleDirtyFlags.h:1368
Definition ImplicitObject.h:111
Definition ParticleDirtyFlags.h:368
void AddCollisionConstraintFlag(const ECollisionConstraintFlags Flag)
Definition ParticleDirtyFlags.h:576
void SetPartialIslandSleepAllowed(bool bInPartialIslandSleepAllowed)
Definition ParticleDirtyFlags.h:557
void SetInitialOverlapDepenetrationVelocity(FRealSingle InVel)
Definition ParticleDirtyFlags.h:531
void SetMACDEnabled(bool bInMACDEnabled)
Definition ParticleDirtyFlags.h:554
bool IsEqual(const TOther &Other) const
Definition ParticleDirtyFlags.h:496
void SetInertiaConditioningEnabled(bool bInEnabled)
Definition ParticleDirtyFlags.h:583
void SetCCDEnabled(bool bInCCDEnabled)
Definition ParticleDirtyFlags.h:551
void SetMaxLinearSpeedSq(FReal InMaxLinearSpeed)
Definition ParticleDirtyFlags.h:525
void CopyFrom(const TOther &Other)
Definition ParticleDirtyFlags.h:478
FRigidParticleControlFlags ControlFlags() const
Definition ParticleDirtyFlags.h:585
uint32 CollisionConstraintFlags() const
Definition ParticleDirtyFlags.h:574
void RemoveCollisionConstraintFlag(const ECollisionConstraintFlags Flag)
Definition ParticleDirtyFlags.h:577
void SetDisabled(bool bInDisabled)
Definition ParticleDirtyFlags.h:566
FRealSingle SleepThresholdMultiplier() const
Definition ParticleDirtyFlags.h:533
bool MACDEnabled() const
Definition ParticleDirtyFlags.h:553
void SetVelocitySolverIterationCount(const int32 VelocitySolverIterationCountIn)
Definition ParticleDirtyFlags.h:560
void SetControlFlags(const FRigidParticleControlFlags &InFlags)
Definition ParticleDirtyFlags.h:586
void SetOneWayInteraction(bool bInOneWayInteraction)
Definition ParticleDirtyFlags.h:580
FReal AngularEtherDrag() const
Definition ParticleDirtyFlags.h:521
void Serialize(FChaosArchive &Ar)
Definition ParticleDirtyFlags.h:370
ESleepType SleepType() const
Definition ParticleDirtyFlags.h:571
FReal MaxLinearSpeedSq() const
Definition ParticleDirtyFlags.h:524
bool InertiaConditioningEnabled() const
Definition ParticleDirtyFlags.h:582
void SetProjectionSolverIterationCount(const int32 ProjectionSolverIterationCountIn)
Definition ParticleDirtyFlags.h:561
void SetGravityGroupIndex(int32 InIndex)
Definition ParticleDirtyFlags.h:542
void SetIterationSettings(const Private::FIterationSettings &SolverIterationSettings)
Definition ParticleDirtyFlags.h:563
bool PartialIslandSleepAllowed() const
Definition ParticleDirtyFlags.h:556
FReal LinearEtherDrag() const
Definition ParticleDirtyFlags.h:518
void SetGravityEnabled(bool bInGravity)
Definition ParticleDirtyFlags.h:540
Private::FIterationSettings IterationSettings() const
Definition ParticleDirtyFlags.h:562
void SetLinearEtherDrag(FReal InLinearEtherDrag)
Definition ParticleDirtyFlags.h:519
bool UpdateKinematicFromSimulation() const
Definition ParticleDirtyFlags.h:544
void SetPositionSolverIterationCount(const int32 PositionSolverIterationCountIn)
Definition ParticleDirtyFlags.h:559
bool CCDEnabled() const
Definition ParticleDirtyFlags.h:550
FRealSingle InitialOverlapDepenetrationVelocity() const
Definition ParticleDirtyFlags.h:530
void SetObjectState(EObjectStateType InState)
Definition ParticleDirtyFlags.h:537
void SetSleepThresholdMultiplier(FRealSingle InSleepThresholdMultiplier)
Definition ParticleDirtyFlags.h:534
void SetMaxAngularSpeedSq(FReal InMaxAngularSpeed)
Definition ParticleDirtyFlags.h:528
void SetCollisionGroup(int32 InGroup)
Definition ParticleDirtyFlags.h:569
void SetCollisionConstraintFlags(uint32 InCollisionConstraintFlag)
Definition ParticleDirtyFlags.h:575
bool OneWayInteraction() const
Definition ParticleDirtyFlags.h:579
int32 GravityGroupIndex() const
Definition ParticleDirtyFlags.h:541
void SetSleepType(ESleepType Type)
Definition ParticleDirtyFlags.h:572
void SetGyroscopicTorqueEnabled(bool bInGyroscopicTorqueEnabled)
Definition ParticleDirtyFlags.h:548
void SetUpdateKinematicFromSimulation(bool bUpdateKinematicFromSimulation)
Definition ParticleDirtyFlags.h:545
int32 CollisionGroup() const
Definition ParticleDirtyFlags.h:568
bool GravityEnabled() const
Definition ParticleDirtyFlags.h:539
bool operator==(const FParticleDynamicMisc &Other) const
Definition ParticleDirtyFlags.h:513
bool GyroscopicTorqueEnabled() const
Definition ParticleDirtyFlags.h:547
void SetAngularEtherDrag(FReal InAngularEtherDrag)
Definition ParticleDirtyFlags.h:522
EObjectStateType ObjectState() const
Definition ParticleDirtyFlags.h:536
FReal MaxAngularSpeedSq() const
Definition ParticleDirtyFlags.h:527
bool Disabled() const
Definition ParticleDirtyFlags.h:565
Definition ParticleDirtyFlags.h:177
void CopyFrom(const TOther &Other)
Definition ParticleDirtyFlags.h:208
static FParticleDynamics ZeroValue()
Definition ParticleDirtyFlags.h:242
void SetAcceleration(const FVec3 &Acceleration)
Definition ParticleDirtyFlags.h:231
FVec3 LinearImpulseVelocity() const
Definition ParticleDirtyFlags.h:236
bool IsEqual(const TOther &Other) const
Definition ParticleDirtyFlags.h:217
void Serialize(FChaosArchive &Ar)
Definition ParticleDirtyFlags.h:179
FVec3 Acceleration() const
Definition ParticleDirtyFlags.h:230
void SetAngularAcceleration(const FVec3 &AngularAcceleration)
Definition ParticleDirtyFlags.h:234
void SetLinearImpulseVelocity(const FVec3 &LinearImpulseVelocity)
Definition ParticleDirtyFlags.h:237
void SetAngularImpulseVelocity(const FVec3 &AngularImpulseVelocity)
Definition ParticleDirtyFlags.h:240
FVec3 AngularAcceleration() const
Definition ParticleDirtyFlags.h:233
bool operator==(const FParticleDynamics &Other) const
Definition ParticleDirtyFlags.h:225
FVec3 AngularImpulseVelocity() const
Definition ParticleDirtyFlags.h:239
Definition ParticleDirtyFlags.h:293
void SetInvI(const TVec3< FRealSingle > &InInvI)
Definition ParticleDirtyFlags.h:342
const TVec3< FRealSingle > & I() const
Definition ParticleDirtyFlags.h:338
void SetInvM(FReal InInvM)
Definition ParticleDirtyFlags.h:348
void Serialize(FChaosArchive &Ar)
Definition ParticleDirtyFlags.h:295
const FVec3 & CenterOfMass() const
Definition ParticleDirtyFlags.h:332
FReal M() const
Definition ParticleDirtyFlags.h:344
FReal InvM() const
Definition ParticleDirtyFlags.h:347
void SetI(const TVec3< FRealSingle > &InI)
Definition ParticleDirtyFlags.h:339
void CopyFrom(const TOther &Other)
Definition ParticleDirtyFlags.h:306
bool operator==(const FParticleMassProps &Other) const
Definition ParticleDirtyFlags.h:327
void SetCenterOfMass(const FVec3 &InCenterOfMass)
Definition ParticleDirtyFlags.h:333
const FRotation3 & RotationOfMass() const
Definition ParticleDirtyFlags.h:335
bool IsEqual(const TOther &Other) const
Definition ParticleDirtyFlags.h:317
void SetRotationOfMass(const FRotation3 &InRotationOfMass)
Definition ParticleDirtyFlags.h:336
const TVec3< FRealSingle > & InvI() const
Definition ParticleDirtyFlags.h:341
void SetM(FReal InM)
Definition ParticleDirtyFlags.h:345
Definition ParticleDirtyFlags.h:619
const FUniqueIdx & UniqueIdx() const
Definition ParticleDirtyFlags.h:676
void CopyFrom(const TOther &Other)
Definition ParticleDirtyFlags.h:632
void SetUniqueIdx(FUniqueIdx InIdx)
Definition ParticleDirtyFlags.h:677
const FParticleID & ParticleID() const
Definition ParticleDirtyFlags.h:694
void SetParticleID(const FParticleID &ParticleID)
Definition ParticleDirtyFlags.h:689
void SetGeometry(const FImplicitObjectPtr &InGeometry)
Definition ParticleDirtyFlags.h:665
bool IsEqual(const TOther &Other) const
Definition ParticleDirtyFlags.h:648
void SetEnabledDuringResim(bool bEnabledDuringResim)
Definition ParticleDirtyFlags.h:697
FSpatialAccelerationIdx SpatialIdx() const
Definition ParticleDirtyFlags.h:679
EResimType ResimType() const
Definition ParticleDirtyFlags.h:682
const TSharedPtr< const FImplicitObject, ESPMode::ThreadSafe > & SharedGeometryLowLevel() const
Definition ParticleDirtyFlags.h:671
FParticleNonFrequentData()
Definition ParticleDirtyFlags.h:621
void SetResimType(EResimType InType)
Definition ParticleDirtyFlags.h:684
bool EnabledDuringResim() const
Definition ParticleDirtyFlags.h:696
const FImplicitObjectRef GetGeometry() const
Definition ParticleDirtyFlags.h:664
void SetSpatialIdx(FSpatialAccelerationIdx InIdx)
Definition ParticleDirtyFlags.h:680
TSerializablePtr< FImplicitObject > Geometry() const
Definition ParticleDirtyFlags.h:668
void Serialize(FChaosArchive &Ar)
Definition ParticleDirtyFlags.h:626
FImplicitObject * AccessGeometryDangerous()
Definition ParticleDirtyFlags.h:662
bool operator==(const FParticleNonFrequentData &Other) const
Definition ParticleDirtyFlags.h:655
Definition ParticleDirtyFlags.h:60
const FVec3 & X() const
Definition ParticleDirtyFlags.h:97
const FRotation3 GetR() const
Definition ParticleDirtyFlags.h:102
const FVec3 & GetX() const
Definition ParticleDirtyFlags.h:98
bool IsEqual(const TOther &Other) const
Definition ParticleDirtyFlags.h:87
void SetR(const FRotation3 &InR)
Definition ParticleDirtyFlags.h:103
void SetX(const FVec3 &InX)
Definition ParticleDirtyFlags.h:99
const FRotation3 R() const
Definition ParticleDirtyFlags.h:101
void CopyFrom(const TOther &Other)
Definition ParticleDirtyFlags.h:80
void Serialize(FChaosArchive &Ar)
Definition ParticleDirtyFlags.h:62
bool operator==(const FParticlePositionRotation &Other) const
Definition ParticleDirtyFlags.h:92
Definition ParticleDirtyFlags.h:118
void SetV(const FVec3 &V)
Definition ParticleDirtyFlags.h:159
const FVec3 GetW() const
Definition ParticleDirtyFlags.h:162
const FVec3 W() const
Definition ParticleDirtyFlags.h:161
bool IsEqual(const TOther &Other) const
Definition ParticleDirtyFlags.h:147
void Serialize(FChaosArchive &Ar)
Definition ParticleDirtyFlags.h:120
const FVec3 GetV() const
Definition ParticleDirtyFlags.h:158
bool operator==(const FParticleVelocities &Other) const
Definition ParticleDirtyFlags.h:152
void CopyFrom(const TOther &Other)
Definition ParticleDirtyFlags.h:140
void SetW(const FVec3 &W)
Definition ParticleDirtyFlags.h:163
const FVec3 V() const
Definition ParticleDirtyFlags.h:157
Enable/Disable the features on a particle These flags are externally controlled and should not be cha...
Definition RigidParticleControlFlags.h:18
bool GetGyroscopicTorqueEnabled() const
Definition RigidParticleControlFlags.h:36
FRigidParticleControlFlags & SetGyroscopicTorqueEnabled(const bool bEnabled)
Definition RigidParticleControlFlags.h:37
int32 GetGravityGroupIndex() const
Definition RigidParticleControlFlags.h:39
bool GetUpdateKinematicFromSimulation() const
Definition RigidParticleControlFlags.h:33
bool GetInertiaConditioningEnabled() const
Definition RigidParticleControlFlags.h:60
bool GetOneWayInteractionEnabled() const
Definition RigidParticleControlFlags.h:56
FRigidParticleControlFlags & SetPartialIslandSleepAllowed(const bool bEnabled)
Definition RigidParticleControlFlags.h:54
bool GetCCDEnabled() const
Definition RigidParticleControlFlags.h:47
FRigidParticleControlFlags & SetMACDEnabled(const bool bEnabled)
Definition RigidParticleControlFlags.h:51
FRigidParticleControlFlags & SetCCDEnabled(const bool bEnabled)
Definition RigidParticleControlFlags.h:48
FRigidParticleControlFlags & SetGravityGroupIndex(const int32 GravityGroupIndex)
Definition RigidParticleControlFlags.h:40
FRigidParticleControlFlags & SetInertiaConditioningEnabled(const bool bEnabled)
Definition RigidParticleControlFlags.h:61
bool GetPartialIslandSleepAllowed() const
Definition RigidParticleControlFlags.h:53
FRigidParticleControlFlags & SetGravityEnabled(const bool bEnabled)
Definition RigidParticleControlFlags.h:31
bool GetGravityEnabled() const
Definition RigidParticleControlFlags.h:30
FRigidParticleControlFlags & SetUpdateKinematicFromSimulation(const bool bUpdateKinematicFromSimulation)
Definition RigidParticleControlFlags.h:34
bool GetMACDEnabled() const
Definition RigidParticleControlFlags.h:50
FRigidParticleControlFlags & SetOneWayInteractionEnabled(const bool bEnabled)
Definition RigidParticleControlFlags.h:57
Definition ParticleDirtyFlags.h:1228
int32 GetShapeIdx() const
Definition ParticleDirtyFlags.h:1237
void SyncRemote(FDirtyPropertiesManager &Manager, int32 Idx, const T &Val) const
Definition ParticleDirtyFlags.h:1245
void SetFlags(FShapeDirtyFlags InFlags)
Definition ParticleDirtyFlags.h:1239
bool IsDirty() const
Definition ParticleDirtyFlags.h:1254
void Clear(FDirtyPropertiesManager &Manager, int32 Idx)
Definition ParticleDirtyFlags.h:1259
FShapeDirtyData(int32 InShapeIdx)
Definition ParticleDirtyFlags.h:1231
Definition IterationSettings.h:19
void SetNumPositionIterations(const int32 InNum)
Definition IterationSettings.h:64
void SetNumVelocityIterations(const int32 InNum)
Definition IterationSettings.h:65
static TIterationSettings< FIndexType > MakeEmpty()
Definition IterationSettings.h:30
void SetNumProjectionIterations(const int32 InNum)
Definition IterationSettings.h:66
Definition ParticleDirtyFlags.h:977
int32 Num() const
Definition ParticleDirtyFlags.h:992
const T & GetElement(int32 Idx) const
Definition ParticleDirtyFlags.h:979
void SetNum(int32 Num)
Definition ParticleDirtyFlags.h:987
T & GetElement(int32 Idx)
Definition ParticleDirtyFlags.h:980
void Reset(int32 Idx)
Definition ParticleDirtyFlags.h:982
Definition ParticleDirtyFlags.h:918
TDirtyFlags()
Definition ParticleDirtyFlags.h:920
bool IsDirty() const
Definition ParticleDirtyFlags.h:922
bool IsClean() const
Definition ParticleDirtyFlags.h:952
void MarkDirty(const FlagsType DirtyBits)
Definition ParticleDirtyFlags.h:937
void MarkClean(const FlagsType CleanBits)
Definition ParticleDirtyFlags.h:942
bool IsDirty(const FlagsType CheckBits) const
Definition ParticleDirtyFlags.h:927
void Clear()
Definition ParticleDirtyFlags.h:947
int32 GetBits() const
Definition ParticleDirtyFlags.h:957
bool IsDirty(const int32 CheckBits) const
Definition ParticleDirtyFlags.h:932
Definition ParticleDirtyFlags.h:1303
~TPropertyPool()
Definition ParticleDirtyFlags.h:1336
void RemoveElement(const FPropertyIdx Idx)
Definition ParticleDirtyFlags.h:1320
T & AddElement(FPropertyIdx &OutIdx)
Definition ParticleDirtyFlags.h:1306
const T & GetElement(const FPropertyIdx Idx) const
Definition ParticleDirtyFlags.h:1331
T & GetElement(const FPropertyIdx Idx)
Definition ParticleDirtyFlags.h:1326
Definition Serializable.h:10
virtual CORE_API void UsingCustomVersion(const struct FGuid &Guid)
Definition Archive.cpp:590
UE_FORCEINLINE_HINT bool IsLoading() const
Definition Archive.h:236
CORE_API int32 CustomVer(const struct FGuid &Key) const
Definition Archive.cpp:602
Definition NameTypes.h:617
Definition PhysicsProxyBase.h:97
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT void Push(ElementType &&Item)
Definition Array.h:1224
SizeType AddDefaulted()
Definition Array.h:2795
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
ElementType Pop(EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:1196
UE_FORCEINLINE_HINT ReferencedType * GetReference() const
Definition RefCounting.h:584
Definition SharedPointer.h:692
Definition SkeletalMeshComponent.h:307
EShapeProperty
Definition ParticleDirtyFlags.h:889
EParticleType
Definition GeometryParticlesfwd.h:11
TVector< FRealSingle, 3 > FVec3f
Definition Core.h:27
EResimType
Definition GeometryParticles.h:143
TRefCountPtr< FImplicitObject > FImplicitObjectPtr
Definition ImplicitFwd.h:33
EChaosPropertyFlags
Definition ParticleDirtyFlags.h:869
FChaosArchive & operator<<(FChaosArchive &Ar, FRigidParticleControlFlags &Flags)
Definition RigidParticleControlFlags.cpp:15
constexpr EChaosPropertyFlags ChaosPropertyToFlag(EChaosProperty Prop)
Definition ParticleDirtyFlags.h:875
FRealDouble FReal
Definition Real.h:22
TRotation< FReal, 3 > FRotation3
Definition Core.h:19
ECollisionConstraintFlags
Flags for user-control over per-particle collision behaviour.
Definition CollisionConstraintFlags.h:22
EObjectStateType
Definition ObjectState.h:10
int32 FPropertyIdx
Definition ParticleDirtyFlags.h:1299
EChaosCollisionTraceFlag
Definition Particles.h:231
TVector< FPhysicsObject *, 2 > FPhysicsObjectPair
Definition ParticleDirtyFlags.h:274
float FRealSingle
Definition Real.h:14
TVector< IPhysicsProxyBase *, 2 > FProxyBasePair
Definition ParticleDirtyFlags.h:261
TVector< FReal, 3 > FVec3
Definition Core.h:17
ESleepType
Definition RigidParticles.h:23
constexpr EShapeFlags ShapePropToFlag(EShapeProperty Prop)
Definition ParticleDirtyFlags.h:905
EChaosProperty
Definition ParticleDirtyFlags.h:859
EShapeFlags
Definition ParticleDirtyFlags.h:899
TRotation< FRealSingle, 3 > FRotation3f
Definition Core.h:28
void GetElement(const UTypedElementRegistry *InRegistry, const HandleType &InElementHandle, TTypedElement< BaseInterfaceType > &OutElement)
Definition TypedElementList.h:39
@ false
Definition radaudio_common.h:23
Definition ParticleDirtyFlags.h:722
EChaosCollisionTraceFlag CollisionTraceType
Definition ParticleDirtyFlags.h:729
bool HasQueryOnlyData() const
Definition ParticleDirtyFlags.h:766
uint8 bSimCollision
Definition ParticleDirtyFlags.h:730
PRAGMA_ENABLE_DEPRECATION_WARNINGS UE_INTERNAL CHAOS_API const FCollisionFilterData & GetQueryData() const
Definition ParticleDirtyFlags.cpp:7
FCollisionFilterData SimData
Definition ParticleDirtyFlags.h:726
FCollisionFilterData QueryData
Definition ParticleDirtyFlags.h:724
FCollisionData(FCollisionData &Rhs)=default
UE_INTERNAL CHAOS_API void SetQueryData(const FCollisionFilterData &InQueryData)
Definition ParticleDirtyFlags.cpp:14
uint8 bIsProbe
Definition ParticleDirtyFlags.h:732
FCollisionData & operator=(FCollisionData &&Rhs)=default
CHAOS_API void SetFilterInstanceData(const Chaos::Filter::FInstanceData &InstanceData)
Definition ParticleDirtyFlags.cpp:52
UE_INTERNAL CHAOS_API void SetSimData(const FCollisionFilterData &InSimData)
Definition ParticleDirtyFlags.cpp:28
void * UserData
Definition ParticleDirtyFlags.h:728
void Serialize(FChaosArchive &Ar)
Definition ParticleDirtyFlags.h:768
bool HasCollisionData() const
Definition ParticleDirtyFlags.h:765
FCollisionData & operator=(const FCollisionData &Rhs)=default
CHAOS_API void SetCombinedShapeFilterData(const Chaos::Filter::FCombinedShapeFilterData &CombinedShapeFilter)
Definition ParticleDirtyFlags.cpp:64
UE_INTERNAL CHAOS_API const FCollisionFilterData & GetSimData() const
Definition ParticleDirtyFlags.cpp:21
CHAOS_API Chaos::Filter::FShapeFilterData GetShapeFilterData() const
Definition ParticleDirtyFlags.cpp:35
PRAGMA_DISABLE_DEPRECATION_WARNINGS FCollisionData(const FCollisionData &Rhs)=default
CHAOS_API void SetShapeFilterData(const Chaos::Filter::FShapeFilterData &ShapeFilter)
Definition ParticleDirtyFlags.cpp:40
uint8 bQueryCollision
Definition ParticleDirtyFlags.h:731
CHAOS_API Chaos::Filter::FInstanceData GetFilterInstanceData() const
Definition ParticleDirtyFlags.cpp:47
CHAOS_API Chaos::Filter::FCombinedShapeFilterData GetCombinedShapeFilterData() const
Definition ParticleDirtyFlags.cpp:59
Definition ParticleDirtyFlags.h:970
uint32 Entry
Definition ParticleDirtyFlags.h:972
uint32 bHasEntry
Definition ParticleDirtyFlags.h:971
Definition ParticleDirtyFlags.h:1006
void Reset()
Definition ParticleDirtyFlags.h:1010
int32 TotalNum
Definition ParticleDirtyFlags.h:1008
void GetBucketIdx(int32 Idx, int32 &OutBucketIdx, int32 &InnerIdx) const
Definition ParticleDirtyFlags.h:1016
int32 Num[(uint32)(EPhysicsProxyType::Count)]
Definition ParticleDirtyFlags.h:1007
Definition ParticleDirtyFlags.h:827
TArray< FMaterialMaskHandle > MaterialMasks
Definition ParticleDirtyFlags.h:829
void Serialize(FChaosArchive &Ar)
Definition ParticleDirtyFlags.h:833
TArray< FMaterialHandle > MaterialMaskMapMaterials
Definition ParticleDirtyFlags.h:831
TArray< FMaterialHandle > Materials
Definition ParticleDirtyFlags.h:828
TArray< uint32 > MaterialMaskMaps
Definition ParticleDirtyFlags.h:830
Definition ParticleDirtyFlags.h:37
bool operator==(const FParticleID &Other) const
Definition ParticleDirtyFlags.h:50
bool operator<(const FParticleID &Other) const
Definition ParticleDirtyFlags.h:41
int32 LocalID
Definition ParticleDirtyFlags.h:39
int32 GlobalID
Definition ParticleDirtyFlags.h:38
Definition ParticleDirtyFlags.h:277
FPhysicsObjectPair PhysicsBodies
Definition ParticleDirtyFlags.h:278
Definition ParticleDirtyFlags.h:282
FPhysicsObject * PhysicsBody
Definition ParticleDirtyFlags.h:283
Definition PhysicsObjectInternal.h:16
Definition ParticleDirtyFlags.h:264
FProxyBasePair ParticleProxies
Definition ParticleDirtyFlags.h:265
Definition ParticleDirtyFlags.h:269
IPhysicsProxyBase * Proxy
Definition ParticleDirtyFlags.h:270
Definition GeometryParticlesfwd.h:59
Definition GeometryParticlesfwd.h:87
Definition CollisionFilterData.h:187
Definition CollisionFilterData.h:81
Definition CollisionFilterData.h:107
Definition CollisionFilterData.h:46
CORE_API static const FGuid GUID
Definition ExternalPhysicsCustomObjectVersion.h:144
@ AddShapeCollisionDisable
Definition ExternalPhysicsCustomObjectVersion.h:79
@ SerializeCollisionTraceType
Definition ExternalPhysicsCustomObjectVersion.h:118
@ AddShapeSimAndQueryCollisionEnabled
Definition ExternalPhysicsCustomObjectVersion.h:127
@ RemoveShapeSimAndQueryDuplicateRepresentations
Definition ExternalPhysicsCustomObjectVersion.h:130
@ AddOneWayInteraction
Definition ExternalPhysicsCustomObjectVersion.h:136
@ SerializePerShapeDataSimulateFlag
Definition ExternalPhysicsCustomObjectVersion.h:91
@ AddedMaterialManager
Definition ExternalPhysicsCustomObjectVersion.h:67
CORE_API static const FGuid GUID
Definition ExternalPhysicsMaterialCustomObjectVersion.h:24
@ AddedMaterialMasks
Definition ExternalPhysicsMaterialCustomObjectVersion.h:16
CORE_API static const FGuid GUID
Definition FortniteReleaseBranchCustomObjectVersion.h:22
CORE_API static const FGuid GUID
Definition FortniteSeasonBranchObjectVersion.h:21
@ AddChaosMaxLinearAngularSpeed
Definition PhysicsObjectVersion.h:67
@ AddCollisionConstraintFlag
Definition PhysicsObjectVersion.h:61
@ AddDisabledFlag
Definition PhysicsObjectVersion.h:64
@ AddCCDEnableFlag
Definition PhysicsObjectVersion.h:31
CORE_API static const FGuid GUID
Definition PhysicsObjectVersion.h:78
CORE_API static const FGuid GUID
Definition UE5MainStreamObjectVersion.h:22
CORE_API static const FGuid GUID
Definition UE5ReleaseStreamObjectVersion.h:22