22#ifndef UE_DEBUG_DANGLING_HANDLES
23#define UE_DEBUG_DANGLING_HANDLES 0
31 class FConstraintHandle;
32 class FPBDRigidsEvolutionBase;
36 class FConvexOptimizer;
53template <
typename T,
int d>
62template <
typename T,
int d>
63using TKinematicGeometryParticleParameters
UE_DEPRECATED(4.27,
"Deprecated. this class is to be deleted, use FKinematicGeometryParticleParameters instead") = FKinematicGeometryParticleParameters;
79template <
typename T,
int d>
83template <
typename T,
int d,
typename FConcrete>
90 Concrete.SetEnabledDuringResim(
true);
95template <
typename T,
int d,
typename FConcrete>
109template <
typename T,
int d,
typename FConcrete>
113 Concrete.SetCollisionGroup(0);
118 Concrete.SetInitialOverlapDepenetrationVelocity(-1.0f);
119 Concrete.SetSleepThresholdMultiplier(1.0f);
126 Concrete.SetLinearEtherDrag(0.f);
127 Concrete.SetAngularEtherDrag(0.f);
128 Concrete.SetGravityEnabled(Params.bGravityEnabled);
129 Concrete.SetGravityGroupIndex(0);
130 Concrete.SetCCDEnabled(Params.bCCDEnabled);
131 Concrete.SetMACDEnabled(
false);
132 Concrete.SetPartialIslandSleepAllowed(
true);
134 Concrete.SetDisabled(Params.bDisabled);
140template <
typename T,
int d,
typename FConcrete>
146template <
typename FConcrete>
149 if(
auto Rigid = Concrete.CastToRigidParticle())
151 return Rigid->Sleeping();
166 if(QueryFilterData.
Word0)
187 return (
uint32)ChannelMask;
222 template <
bool bPersistent>
233 return CachedUniqueIdx == Rhs.CachedUniqueIdx;
238 return !(*
this == Rhs);
245 return CachedUniqueIdx;
264 if (bCanPrePreFilter)
277 if (bCanPrePreFilter)
294 UnionQueryFilterData.
Word0 =
InOther.UnionQueryFilterData.Word0;
295 UnionQueryFilterData.
Word1 =
InOther.UnionQueryFilterData.Word1;
296 UnionQueryFilterData.
Word2 =
InOther.UnionQueryFilterData.Word2;
297 UnionQueryFilterData.
Word3 =
InOther.UnionQueryFilterData.Word3;
299 UnionSimFilterData.
Word0 =
InOther.UnionSimFilterData.Word0;
300 UnionSimFilterData.
Word1 =
InOther.UnionSimFilterData.Word1;
301 UnionSimFilterData.
Word2 =
InOther.UnionSimFilterData.Word2;
302 UnionSimFilterData.
Word3 =
InOther.UnionSimFilterData.Word3;
310 template <
typename TParticle>
318 template <
typename TParticle>
330 bool bCanPrePreFilter;
332 template <
typename TParticle>
333 void UpdatePrePreFilter(
const TParticle& Particle);
337 void DebugDraw(
const bool bExternal,
const bool bHit)
const;
341template <
typename T,
int d>
344template <
typename T,
int d>
349 static constexpr int D = d;
358 template <
typename TParticlesType>
409 template <
typename TSOA>
416template <
typename T,
int d,
bool bPersistent>
419template <
typename T,
int d,
bool bPersistent>
422template <
typename T,
int d>
424template <
typename T,
int d>
426template <
typename T,
int d>
428template <
typename T,
int d>
431template <
typename T,
int d>
432class TGeometryParticleHandles;
434template <
typename T,
int d,
bool bPersistent>
452 template <
typename TPayloadType>
455 return TPayloadType(
Handle());
485 template <
typename TParticlesType,
typename TParams>
503 if constexpr (bPersistent)
536 template <
typename T2,
int d2>
538 template <
typename T2,
int d2>
587 SetDebugName(
InData.DebugName());
593 SetParticleID(
InData.ParticleID());
624 UE_DEPRECATED(5.4,
"Use SetGeometry with FImplicitObjectPtr instead")
630 UE_DEPRECATED(5.4,
"Use SetGeometry with FImplicitObjectPtr instead")
639 UE_DEPRECATED(5.4,
"Use SetGeometry with FImplicitObjectPtr instead")
719 template <
typename Container>
725 template <
typename Container>
767#if CHAOS_DETERMINISTIC
769 void SetParticleID(
const FParticleID& ParticleID)
788 static_assert(bPersistent,
"Cannot move particles from a transient handle");
881 std::conditional_t<bPersistent, int32, FInvalidFromTransient>
HandleIdx;
894template <
typename T,
int d>
899template <
typename T,
int d>
905template <
typename T,
int d,
bool bPersistent>
962 UE_DEPRECATED(5.4,
"Use FPBDRigidsEvolutionGBF::SetParticleVelocitied or (SetV, SetW if that is not appropriate)")
965 SetV(Velocities.V());
966 SetW(Velocities.W());
985template <
typename T,
int d,
bool bPersistent>
1486template <
typename T,
int d,
bool bPersistent>
1491 if(
auto Rigid = CastToRigidParticle())
1493 Rigid->SetP(GetX());
1494 Rigid->SetQf(GetRf());
1498template <
typename T,
int d,
bool bPersistent>
1577 UE_DEPRECATED(5.4,
"Use SetChildrenSpatial with FImplicitObjectUnionClusteredPtr instead")
1589 UE_DEPRECATED(5.2,
"This method should not be used anymore. FRigidClustering::SetExternalStrain should be used instead.")
1591 UE_DEPRECATED(5.2,
"This method should not be used anymore. FRigidClustering::SetExternalStrain with 0 strain should be used instead.")
1596 UE_DEPRECATED(5.2,
"This method should not be used anymore. FRigidClustering::SetInternalStrain should be used instead.")
1598 UE_DEPRECATED(5.2,
"This method should not be used anymore. FRigidClustering::SetInternalStrain should be used instead.")
1601 UE_DEPRECATED(5.2,
"This method should not be used anymore. FRigidClustering::SetInternalStrain should be used instead.")
1603 UE_DEPRECATED(5.2,
"This method should not be used anymore. FRigidClustering::SetInternalStrain should be used instead.")
1639template <
typename T,
int d,
bool bPersistent = true>
1690template <
typename T,
int d,
bool bPersistent>
1693template <
typename T,
int d,
bool bPersistent>
1696template <
typename T,
int d,
bool bPersistent>
1699template <
typename T,
int d,
bool bPersistent>
1702template <
typename T,
int d,
bool bPersistent>
1705template <
typename T,
int d,
bool bPersistent>
1708template <
typename T,
int d,
bool bPersistent>
1711template <
typename T,
int d,
bool bPersistent>
1715template <
typename T,
int d,
bool bPersistent>
1722template <
typename T,
int d,
bool bPersistent>
1736template <
typename T,
int d,
bool bPersistent>
1742 return FString::Printf(
TEXT(
"Static[%d]"), ParticleIdx);
1744 return FString::Printf(
TEXT(
"Kinemmatic[%d]"), ParticleIdx);
1746 return FString::Printf(
TEXT(
"Dynamic[%d]"), ParticleIdx);
1748 return FString::Printf(
TEXT(
"GeometryCollection[%d]"), ParticleIdx);
1750 return FString::Printf(
TEXT(
"Clustered[%d]"), ParticleIdx);
1757template <
typename T,
int d,
bool bPersistent>
1783 return Rigid->WasSleeping();
1816 UE_DEPRECATED(5.4,
"Use GetX or SetX instead")
1819 return MHandle->
X();
1822 UE_DEPRECATED(5.4,
"Use GetX instead")
1826 UE_DEPRECATED(5.4,
"Use GetR or SetR instead")
1828 UE_DEPRECATED(5.4,
"Use GetR instead")
1836 UE_DEPRECATED(5.4,
"Use GetGeometry instead")
1839 UE_DEPRECATED(5.4,
"Use GetGeometry instead")
1844 template <
typename Container>
1846 template <
typename Container>
1887 return NullBVHParticles;
2165 return Rigid->RotationOfMass().UnrotateVector(
P -
Rigid->CenterOfMass());
2178 return Rigid->RotationOfMass().Inverse() *
Q;
2241 return MHandle->ParticleID();
2346 return FRotation3::FromIdentity();
2501 return RigidHandle->InitialOverlapDepenetrationVelocity();
2527 return MHandle->DebugName();
2578template <
typename T,
int d>
2579using TGenericParticleHandleHandleImp
UE_DEPRECATED(4.27,
"Deprecated. this class is to be deleted, use FGenericParticleHandleImp instead") = FGenericParticleHandleImp;
2624template <
typename T,
int d>
2625using TGenericParticleHandle
UE_DEPRECATED(4.27,
"Deprecated. this class is to be deleted, use FGenericParticleHandle instead") = FGenericParticleHandle;
2658template <
typename T,
int d>
2659using TConstGenericParticleHandle
UE_DEPRECATED(4.27,
"Deprecated. this class is to be deleted, use FConstGenericParticleHandle instead") = FConstGenericParticleHandle;
2661template <
typename T,
int d>
2684#if UE_DEBUG_DANGLING_HANDLES
2687 Handles[
UnstableIdx]->~TGeometryParticleHandleImp();
2710template <
typename T,
int d>
2711class TKinematicGeometryParticle;
2713template <
typename T,
int d>
2714class TPBDRigidParticle;
2737template <
typename T,
int d>
2751 MUserData =
nullptr;
2773 Ar << MNonFrequentData;
2787 auto Geometry = MNonFrequentData.Read().GetGeometry();
2839 UE_DEPRECATED(5.4,
"Use SetGeometry with an array of Chaos::FImplicitObjectPtr instead")
2842 UE_DEPRECATED(5.4,
"Use SetGeometry with an array of Chaos::FImplicitObjectPtr instead")
2845 UE_DEPRECATED(5.4,
"Use SetGeometry with an array of Chaos::FImplicitObjectPtr instead")
2848 UE_DEPRECATED(5.4,
"Use MergeGeometry with an array of Chaos::FImplicitObjectPtr instead")
2873 auto GeomShared = MNonFrequentData.Read().GetGeometry();
2876 for (
auto& Shape : MShapesArray)
2906 MShapesArray[
InShapeIndex]->SetCollisionTraceType(TraceType);
2948 return MShapesArray;
2969 Shape->ModifyShapeIndex(Idx);
2970 MShapesArray[Idx++] =
MoveTemp(Shape);
2997 MNonFrequentData.Modify(
true,
MDirtyFlags,
Proxy,[Idx](
auto& Data){ Data.SetSpatialIdx(Idx);});
3007 return MNonFrequentData.Read().ResimType();
3012 MNonFrequentData.Modify(
true,
MDirtyFlags,
Proxy, [bEnabledDuringResim](
auto& Data) { Data.SetEnabledDuringResim(bEnabledDuringResim); });
3017 return MNonFrequentData.Read().EnabledDuringResim();
3111 for(
auto& Shape : MShapesArray)
3113 Shape->SetProxy(
Proxy);
3145 template <
typename Lambda>
3151 template <
typename Lambda>
3157 if(Solver ==
nullptr)
3167 MNonFrequentData.Modify(
true,
MDirtyFlags,
Proxy, [
this, Solver, &Func, AccessType](
auto& Data)
3171 if(Data.GetGeometry())
3175 case EGeometryAccess::Direct:
3176 GeomToModify = Data.AccessGeometryDangerous();
3178 case EGeometryAccess::ShallowCopy:
3179 GeomToModify = Data.GetGeometry()->CopyGeometry();
3182 case EGeometryAccess::DeepCopy:
3183 GeomToModify = Data.GetGeometry()->DeepCopyGeometry();
3235 void PrepareBVHImpl();
3239 MXR.SyncRemote(Manager, DataIdx,
RemoteData);
3240 MNonFrequentData.SyncRemote(Manager, DataIdx,
RemoteData);
3245template<
typename ParticleType>
3260 Data.UserData =
nullptr;
3261 ShapeData->SetCollisionData(Data);
3266 Data.Word0 = ActorId;
3267 ShapeData->SetQueryData(Data);
3274 ShapeData->SetSimData(Data);
3278 ShapeData->SetQueryEnabled(
TemplateShape->GetQueryEnabled());
3284template <
typename T,
int d>
3291template <
typename T,
int d>
3300 using Base::MDirtyFlags;
3309 Type = EParticleType::Kinematic;
3334 return MKinematicTarget.Read();
3339 MKinematicTarget.Write(KinematicTarget,
bInvalidate, MDirtyFlags, Proxy);
3344 return MKinematicTarget.IsDirty(MDirtyFlags);
3349 MKinematicTarget.Clear(MDirtyFlags, Proxy);
3378 Base::SyncRemoteDataImp(Manager, DataIdx,
RemoteData);
3384template <
typename T,
int d>
3393 using Base::MDirtyFlags;
3401 Type = EParticleType::Rigid;
3408 SetInitialized(
false);
3447 MMiscData.Modify(
true, MDirtyFlags, Proxy, [
bInEnabled](
auto& Data) { Data.SetGravityEnabled(
bInEnabled); });
3453 MMiscData.Modify(
true, MDirtyFlags, Proxy, [NewIndex](
auto& Data) { Data.SetGravityGroupIndex(NewIndex); });
3459 MMiscData.Modify(
true, MDirtyFlags, Proxy, [bUpdateKinematicFromSimulation](
auto& Data) { Data.SetUpdateKinematicFromSimulation(bUpdateKinematicFromSimulation); });
3465 MMiscData.Modify(
true, MDirtyFlags, Proxy, [bGyroscopicTorqueEnabled](
auto& Data) { Data.SetGyroscopicTorqueEnabled(bGyroscopicTorqueEnabled); });
3471 MMiscData.Modify(
true, MDirtyFlags, Proxy, [
bInEnabled](
auto& Data) { Data.SetOneWayInteraction(
bInEnabled); });
3477 MMiscData.Modify(
true, MDirtyFlags, Proxy, [Flag](
auto& Data) { Data.AddCollisionConstraintFlag(Flag); });
3482 MMiscData.Modify(
true, MDirtyFlags, Proxy, [Flag](
auto& Data) { Data.RemoveCollisionConstraintFlag(Flag); });
3489 MMiscData.Modify(
true, MDirtyFlags, Proxy, [
Flags](
auto& Data) { Data.SetCollisionConstraintFlags(
Flags); });
3492 bool CCDEnabled()
const {
return MMiscData.Read().CCDEnabled(); }
3495 MMiscData.Modify(
true, MDirtyFlags, Proxy, [
bInEnabled](
auto& Data) { Data.SetCCDEnabled(
bInEnabled); });
3501 MMiscData.Modify(
true, MDirtyFlags, Proxy, [
bInEnabled](
auto& Data) { Data.SetMACDEnabled(
bInEnabled); });
3507 MMiscData.Modify(
true, MDirtyFlags, Proxy, [
bInEnabled](
auto& Data) { Data.SetPartialIslandSleepAllowed(
bInEnabled); });
3519 MMiscData.Modify(
true, MDirtyFlags, Proxy, [PositionSolverIterationCount](
auto& Data) { Data.SetPositionSolverIterationCount(PositionSolverIterationCount); });
3524 MMiscData.Modify(
true, MDirtyFlags, Proxy, [VelocitySolverIterationCount](
auto& Data) { Data.SetVelocitySolverIterationCount(VelocitySolverIterationCount); });
3529 MMiscData.Modify(
true, MDirtyFlags, Proxy, [ProjectionSolverIterationCount](
auto& Data) { Data.SetProjectionSolverIterationCount(ProjectionSolverIterationCount); });
3535 MMiscData.Modify(
true, MDirtyFlags, Proxy, [
bInEnabled](
auto& Data) { Data.SetInertiaConditioningEnabled(
bInEnabled); });
3538 bool Disabled()
const {
return MMiscData.Read().Disabled(); }
3560 FReal InvMass = InvM();
3561 MDynamics.Modify(
bInvalidate,MDirtyFlags,Proxy,[&
InF, InvMass](
auto& Data){ Data.SetAcceleration(
InF * InvMass + Data.Acceleration());});
3566 MDynamics.Modify(
bInvalidate, MDirtyFlags, Proxy, [](
auto& Data) { Data.SetAcceleration(
FVec3(0)); });
3571 if (MDynamics.IsDirty(MDirtyFlags))
3573 MDynamics.Modify(
false, MDirtyFlags, Proxy, [
DynamicsWeight](
auto& Data)
3576 Data.SetAngularAcceleration(Data.AngularAcceleration() *
DynamicsWeight);
3590 MDynamics.Modify(
bInvalidate, MDirtyFlags, Proxy, [](
auto& Data) { Data.SetAngularAcceleration(
FVec3(0)); });
3618 MMassProps.Modify(
bInvalidate,MDirtyFlags,Proxy,[&
InI](
auto& Data){ Data.SetI(
InI);});
3627 T
M()
const {
return MMassProps.Read().M(); }
3630 MMassProps.Modify(
bInvalidate,MDirtyFlags,Proxy,[
InM](
auto& Data){ Data.SetM(
InM);});
3633 T
InvM()
const {
return MMassProps.Read().InvM(); }
3653 MMassProps.Write(
InProps,
true,MDirtyFlags,Proxy);
3658 MMiscData.Write(
DynamicMisc,
true,MDirtyFlags,Proxy);
3688 MMiscData.Modify(
true, MDirtyFlags, Proxy, [
InVel](
auto& Data) { Data.SetInitialOverlapDepenetrationVelocity(
InVel); });
3694 MMiscData.Modify(
true, MDirtyFlags, Proxy, [
Multiplier](
auto& Data) { Data.SetSleepThresholdMultiplier(
Multiplier); });
3709 const auto PreState = ObjectState();
3710 if(
PreState == EObjectStateType::Dynamic &&
InState == EObjectStateType::Sleeping)
3712 MWakeEvent = EWakeEventEntry::Sleep;
3714 else if(
PreState == EObjectStateType::Sleeping &&
InState == EObjectStateType::Dynamic)
3716 MWakeEvent = EWakeEventEntry::Awake;
3720 if (
InState == EObjectStateType::Sleeping)
3740 MMiscData.Modify(
true,MDirtyFlags,Proxy,[SleepType](
auto& Data){ Data.SetSleepType(SleepType);});
3742 if (SleepType == ESleepType::NeverSleep && ObjectState() == EObjectStateType::Sleeping)
3750 return MMiscData.Read().SleepType();
3768 return MMiscData.Read().ControlFlags();
3773 MMiscData.Modify(
true,MDirtyFlags,Proxy,[
Flags](
auto& Data){ Data.SetControlFlags(
Flags);});
3788 Base::SyncRemoteDataImp(Manager,DataIdx,
RemoteData);
3800 using FGeometryParticle::Type;
3805 Type = EParticleType::GeometryCollection;
3815template <
typename T,
int d>
3818template <
typename T,
int d>
3821 if (Type >= EParticleType::Kinematic)
3829template <
typename T,
int d>
3832 if (Type >= EParticleType::Kinematic)
3840template <
typename T,
int d>
3843 if (Type >= EParticleType::Rigid)
3852template <
typename T,
int d>
3855 if (Type >= EParticleType::Rigid)
3863template <
typename T,
int d>
3866 MXR.Modify(
bInvalidate, MDirtyFlags, Proxy, [&
InX](
auto& Data) { Data.SetX(
InX); });
3869template <
typename T,
int d>
3872 MXR.Modify(
bInvalidate, MDirtyFlags, Proxy, [&
InR](
auto& Data) { Data.SetR(
InR); });
3875template <
typename T,
int d>
3879 return Kin ?
Kin->ObjectState() : EObjectStateType::Static;
3882template <
typename T,
int d>
3886 return Dyn ?
Dyn->ObjectState() : EObjectStateType::Kinematic;
3889template <
typename T,
int d>
3892 MVelocities.Modify(
bInvalidate, MDirtyFlags, Proxy, [&
InV](
auto& Data) { Data.SetV(
InV); });
3895template <
typename T,
int d>
3898 MVelocities.Modify(
bInvalidate, MDirtyFlags, Proxy, [&
InW](
auto& Data) { Data.SetW(
InW); });
3901template <
typename T,
int d>
3922 : ExternalGeometryParticle(
InHandle->GTGeometryParticle())
3924 , CachedUniqueIdx(
InHandle->UniqueIdx())
3925 , bCanPrePreFilter(
false)
3938 , bCanPrePreFilter(
false)
3951template <
bool bPersistent>
3953 : ExternalGeometryParticle(
InHandle.GTGeometryParticle())
3955 , CachedUniqueIdx(
InHandle.UniqueIdx())
3956 , bCanPrePreFilter(
false)
3962template <
typename TParticle>
3965 const auto& Shapes = Particle.ShapesArray();
3966 for (
const auto& Shape : Shapes)
3969 if (Shape->GetQueryEnabled())
3980template <
typename TParticle>
3983 const auto& Shapes = Particle.ShapesArray();
3985 for (
const auto& Shape : Shapes)
3988 if (Shape->GetSimEnabled() || Shape->GetIsProbe())
4006template <
typename TParticle>
4013 bCanPrePreFilter =
true;
4029 if(GeometryParticleHandle)
4031 CachedUniqueIdx = GeometryParticleHandle->
UniqueIdx();
4033 else if(ExternalGeometryParticle)
4035 CachedUniqueIdx = ExternalGeometryParticle->
UniqueIdx();
4038 if (GeometryParticleHandle && ExternalGeometryParticle)
4043 ensure(!GeometryParticleHandle || CachedUniqueIdx.
IsValid());
4044 ensure(!ExternalGeometryParticle || CachedUniqueIdx.
IsValid());
4054FORCEINLINE_DEBUGGABLE void FAccelerationStructureHandle::DebugDraw(
const bool bExternal,
const bool bHit)
const
4056 if (ExternalGeometryParticle && bExternal)
4061 if (GeometryParticleHandle && !bExternal)
4075#if !UE_MERGED_MODULES
4076#if PLATFORM_COMPILER_CLANG
4078extern template class CHAOS_API ISpatialVisitor<FAccelerationStructureHandle, FReal>;
4081extern template class ISpatialVisitor<FAccelerationStructureHandle, FReal>;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define CVD_TRACE_INVALIDATE_CACHED_PARTICLE_METADATA(ParticleHandlePtr)
Definition ChaosVDTraceMacros.h:300
#define CVD_TRACE_INVALIDATE_CACHED_GEOMETRY(ImplicitObjectPtr)
Definition ChaosVDTraceMacros.h:296
#define PRAGMA_DISABLE_INTERNAL_WARNINGS
Definition CoreMiscDefines.h:346
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define PRAGMA_ENABLE_INTERNAL_WARNINGS
Definition CoreMiscDefines.h:347
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#define FORCEINLINE_DEBUGGABLE
Definition CoreMiscDefines.h:74
#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
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
return true
Definition ExternalRpcRegistry.cpp:601
ESPMode
Definition SharedPointerFwd.h:12
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition ParticleHandle.h:213
void UpdateFrom(const FAccelerationStructureHandle &InOther)
Definition ParticleHandle.h:292
UE_INTERNAL bool PrePreSimFilter(const FCollisionFilterData &QuerierFilterData) const
Definition ParticleHandle.h:275
bool operator==(const FAccelerationStructureHandle &Rhs) const
Definition ParticleHandle.h:231
bool PrePreQueryFilter(const void *QueryData) const
Definition ParticleHandle.h:248
FAccelerationStructureHandle(TGeometryParticleHandleImp< FReal, 3, bPersistent > &InHandle)
FUniqueIdx UniqueIdx() const
Definition ParticleHandle.h:243
FAccelerationStructureHandle(FGeometryParticleHandle *InHandle)
Definition ParticleHandle.h:3921
bool operator!=(const FAccelerationStructureHandle &Rhs) const
Definition ParticleHandle.h:236
static UE_INTERNAL void ComputeParticleSimFilterDataFromShapes(const TParticle &Particle, FCollisionFilterData &OutSimFilterData)
FGeometryParticle * GetExternalGeometryParticle_ExternalThread() const
Definition ParticleHandle.h:226
static void ComputeParticleQueryFilterDataFromShapes(const TParticle &Particle, FCollisionFilterData &OutQueryFilterData)
Definition ParticleHandle.h:3963
FGeometryParticleHandle * GetGeometryParticleHandle_PhysicsThread() const
Definition ParticleHandle.h:229
bool PrePreSimFilter(const void *SimData) const
Definition ParticleHandle.h:262
void Serialize(FChaosArchive &Ar)
Definition ParticleHandle.h:4017
static constexpr bool bHasPayloadOnInternalThread
Definition ParticleHandle.h:215
Definition ChaosArchive.h:167
Definition ParticleHandle.h:2628
friend bool operator==(const FConstGenericParticleHandle &L, const FConstGenericParticleHandle &R)
Definition ParticleHandle.h:2644
FConstGenericParticleHandle(const FGeometryParticleHandle *InHandle)
Definition ParticleHandle.h:2631
friend uint32 GetTypeHash(const FConstGenericParticleHandle &H)
Definition ParticleHandle.h:2639
FConstGenericParticleHandle(const FGenericParticleHandle InHandle)
Definition ParticleHandle.h:2632
friend bool operator<(const FConstGenericParticleHandle &L, const FConstGenericParticleHandle &R)
Definition ParticleHandle.h:2649
const FGenericParticleHandleImp * Get() const
Definition ParticleHandle.h:2635
bool IsValid() const
Definition ParticleHandle.h:2637
const FGenericParticleHandleImp * operator->() const
Definition ParticleHandle.h:2634
FConstGenericParticleHandle()
Definition ParticleHandle.h:2630
Base class for constraint handles.
Definition ConstraintHandle.h:102
Definition ParticleDirtyFlags.h:1129
Definition ParticleDirtyFlags.h:1039
Definition ParticleHandle.h:1766
TSerializablePtr< FImplicitObject > Geometry() const
Definition ParticleHandle.h:1837
TVec3< FRealSingle > ConditionedInvI() const
Definition ParticleHandle.h:2375
FVec3 CenterOfMass() const
Definition ParticleHandle.h:2321
void SetR(const FRotation3 &InR)
Definition ParticleHandle.h:1830
const TPBDRigidClusteredParticleHandleImp< FReal, 3, true > * CastToClustered() const
Definition ParticleHandle.h:1794
bool PartialIslandSleepAllowed() const
Definition ParticleHandle.h:1920
bool Disabled() const
Definition ParticleHandle.h:1953
const FKinematicGeometryParticleHandle * CastToKinematicParticle() const
Definition ParticleHandle.h:1788
FParticleID ParticleID() const
Definition ParticleHandle.h:2239
const FString & GetDebugName() const
Definition ParticleHandle.h:2531
const FGeometryParticleHandle * Handle() const
Definition ParticleHandle.h:1800
UE_DEPRECATED(5.3, "No longer supported") void SetIslandIndex(const int32 IslandIndex)
Definition ParticleHandle.h:2562
FRotation3 R()
Definition ParticleHandle.h:1827
const TPBDGeometryCollectionParticleHandleImp< FReal, 3, true > * CastToGeometryCollection() const
Definition ParticleHandle.h:1792
const FRotation3 QCom() const
Definition ParticleHandle.h:2095
FRigidTransform3 GetTransformXR() const
Definition ParticleHandle.h:2125
const FVec3f GetWf() const
Definition ParticleHandle.h:1860
bool UseIgnoreCollisionManager() const
Definition ParticleHandle.h:2429
const FVec3 VSmooth() const
Definition ParticleHandle.h:2195
const FVec3 W() const
Definition ParticleHandle.h:1851
int32 CollisionParticlesSize() const
Definition ParticleHandle.h:1870
const FShapeInstanceArray & ShapeInstances() const
Definition ParticleHandle.h:2553
const FVec3 & P() const
Definition ParticleHandle.h:2028
const FKinematicTarget & KinematicTarget() const
Definition ParticleHandle.h:1865
const FRotation3 GetQ() const
Definition ParticleHandle.h:2063
const FRotation3 Q() const
Definition ParticleHandle.h:2053
void UpdateWorldSpaceState(const FRigidTransform3 &WorldTransform, const FVec3 &BoundsExpansion)
Definition ParticleHandle.h:2276
FRotation3 RotationOfMass() const
Definition ParticleHandle.h:2339
const FVec3 V() const
Definition ParticleHandle.h:1850
FRealSingle SleepThresholdMultiplier() const
Definition ParticleHandle.h:2506
bool HasBounds() const
Definition ParticleHandle.h:2249
FRigidTransform3 GetTransformPQCom() const
Definition ParticleHandle.h:2148
FVec3 & X()
Definition ParticleHandle.h:1817
const FVec3 PreV() const
Definition ParticleHandle.h:1963
void ClearIsMovingKinematic()
Definition ParticleHandle.h:2471
bool InertiaConditioningEnabled() const
Definition ParticleHandle.h:2395
FRigidTransform3 GetTransformXRCom() const
Definition ParticleHandle.h:2139
void SetVf(const FVec3f &InV)
Definition ParticleHandle.h:1862
bool IsDynamic() const
Definition ParticleHandle.h:1776
FKinematicGeometryParticleHandle * CastToKinematicParticle()
Definition ParticleHandle.h:1789
const FVec3 XCom() const
Definition ParticleHandle.h:2069
bool MACDEnabled() const
Definition ParticleHandle.h:1910
const FImplicitObjectRef GetGeometry() const
Definition ParticleHandle.h:1832
bool WasSleeping() const
Definition ParticleHandle.h:1779
void SetTransformPQCom(const FVec3 &InPCom, const FRotation3 &InQCom)
Definition ParticleHandle.h:2113
void SetW(const FVec3 &InW)
Definition ParticleHandle.h:1857
void SetInvIConditioning(const TVec3< FRealSingle > &InInvIConditioning)
Definition ParticleHandle.h:2367
void SetInertiaConditioningDirty()
Definition ParticleHandle.h:2413
FUniqueIdx UniqueIdx() const
Definition ParticleHandle.h:2244
const FVec3 & Acceleration() const
Definition ParticleHandle.h:2215
bool EnabledDuringResim() const
Definition ParticleHandle.h:1842
const FPBDRigidParticleHandle * CastToRigidParticle() const
Definition ParticleHandle.h:1790
void SetCenterOfMass(const FVec3 &InCom)
Definition ParticleHandle.h:2331
TVec3< FRealSingle > ConditionedI() const
Definition ParticleHandle.h:2385
int32 SolverBodyIndex() const
Definition ParticleHandle.h:2001
FRealSingle InitialOverlapDepenetrationVelocity() const
Definition ParticleHandle.h:2497
void SetQ(const FRotation3 &InQ)
Definition ParticleHandle.h:2043
void SetIsMovingKinematic()
Definition ParticleHandle.h:2463
UE_DEPRECATED(5.3, "No longer supported") void SetConstraintGraphIndex(const int32 InGraphIndex)
Definition ParticleHandle.h:2564
FString ToString() const
Definition ParticleHandle.h:1834
FReal M() const
Definition ParticleHandle.h:2301
const FRotation3 RCom() const
Definition ParticleHandle.h:2087
bool HasBoundingBox() const
Definition ParticleHandle.h:2260
const FGeometryParticleHandle * GeometryParticleHandle() const
Definition ParticleHandle.h:1797
const auto & AuxilaryValue(const Container &AuxContainer) const
Definition ParticleHandle.h:1845
const FVec3 PreW() const
Definition ParticleHandle.h:1973
void SetP(const FVec3 &InP)
Definition ParticleHandle.h:2018
const FAABB3 & WorldSpaceInflatedBounds() const
Definition ParticleHandle.h:2271
const FVec3 PCom() const
Definition ParticleHandle.h:2077
const TVec3< FRealSingle > I() const
Definition ParticleHandle.h:2281
void SetRotationOfMass(const FRotation3 &InRom)
Definition ParticleHandle.h:2349
FVec3 GetComRelativePosition(const FVec3 &P)
Definition ParticleHandle.h:2160
void ClearUseIgnoreCollisionManager()
Definition ParticleHandle.h:2446
FORCEINLINE Private::FPBDIslandParticle * GetConstraintGraphNode() const
Definition ParticleHandle.h:2542
bool IsKinematic() const
Definition ParticleHandle.h:1775
void SetUseIgnoreCollisionManager()
Definition ParticleHandle.h:2438
bool IsSleeping() const
Definition ParticleHandle.h:1777
const FVec3 GetW() const
Definition ParticleHandle.h:1854
FReal InvM() const
Definition ParticleHandle.h:2311
const FVec3f GetPreVf() const
Definition ParticleHandle.h:1982
void SetWf(const FVec3f &InW)
Definition ParticleHandle.h:1863
const FVec3 & GetP() const
Definition ParticleHandle.h:2038
FRigidTransform3 GetComRelativeTransform(const FRigidTransform3 &T)
Definition ParticleHandle.h:2186
FRotation3 GetComRelativeRotation(const FRotation3 &Q)
Definition ParticleHandle.h:2173
bool OneWayInteraction() const
Definition ParticleHandle.h:2515
void InitTransform(const FVec3 &InP, const FRotation3 &InQ)
Definition ParticleHandle.h:2104
FReal AngularEtherDrag() const
Definition ParticleHandle.h:2488
UE_DEPRECATED(5.3, "No longer supported") int32 IslandIndex() const
Definition ParticleHandle.h:2561
FORCEINLINE bool IsInConstraintGraph() const
Definition ParticleHandle.h:2537
TPBDGeometryCollectionParticleHandleImp< FReal, 3, true > * CastToGeometryCollection()
Definition ParticleHandle.h:1793
const EObjectStateType ObjectState() const
Definition ParticleHandle.h:2234
TPBDRigidClusteredParticleHandleImp< FReal, 3, true > * CastToClustered()
Definition ParticleHandle.h:1795
const FVec3 & GetX() const
Definition ParticleHandle.h:1825
const FVec3 WSmooth() const
Definition ParticleHandle.h:2205
const TUniquePtr< FImplicitObject > & DynamicGeometry() const
Definition ParticleHandle.h:1840
auto & AuxilaryValue(Container &AuxContainer)
Definition ParticleHandle.h:1847
void SetX(const FVec3 &InX)
Definition ParticleHandle.h:1824
bool CCDEnabled() const
Definition ParticleHandle.h:1900
FPBDRigidParticleHandle * CastToRigidParticle()
Definition ParticleHandle.h:1791
static constexpr EParticleType StaticType()
Definition ParticleHandle.h:2555
const FAABB3 & BoundingBox() const
Definition ParticleHandle.h:2266
FORCEINLINE void SetConstraintGraphNode(Private::FPBDIslandParticle *InNode)
Definition ParticleHandle.h:2547
FRigidTransform3 GetTransformPQ() const
Definition ParticleHandle.h:2130
void ClearInertiaConditioningDirty()
Definition ParticleHandle.h:2421
const FAABB3 & LocalBounds() const
Definition ParticleHandle.h:2254
TVec3< FRealSingle > InvIConditioning() const
Definition ParticleHandle.h:2357
void SetSolverBodyIndex(const int32 InSolverBodyIndex)
Definition ParticleHandle.h:2010
bool IsStatic() const
Definition ParticleHandle.h:1774
const FShapesArray & ShapesArray() const
Definition ParticleHandle.h:2552
UE_DEPRECATED(5.3, "No longer supported") int32 ConstraintGraphIndex() const
Definition ParticleHandle.h:2563
const FVec3f GetVf() const
Definition ParticleHandle.h:1859
Private::FIterationSettings IterationSettings() const
Definition ParticleHandle.h:1930
bool HasCollisionConstraintFlag(const ECollisionConstraintFlags Flag) const
Definition ParticleHandle.h:1941
bool InertiaConditioningDirty() const
Definition ParticleHandle.h:2404
int32 CollisionGroup() const
Definition ParticleHandle.h:1890
bool IsMovingKinematic() const
Definition ParticleHandle.h:2454
FGeometryParticleHandle * Handle()
Definition ParticleHandle.h:1801
const FVec3f GetPreWf() const
Definition ParticleHandle.h:1992
const FVec3 GetV() const
Definition ParticleHandle.h:1853
FGenericParticleHandleImp(FGeometryParticleHandle *InHandle)
Definition ParticleHandle.h:1771
const FRotation3 GetR() const
Definition ParticleHandle.h:1831
bool Sleeping() const
Definition ParticleHandle.h:1833
void SetV(const FVec3 &InV)
Definition ParticleHandle.h:1856
const FVec3 & AngularAcceleration() const
Definition ParticleHandle.h:2224
const TUniquePtr< FBVHParticles > & CollisionParticles() const
Definition ParticleHandle.h:1880
int32 GetHandleIdx() const
Definition ParticleHandle.h:1802
FReal LinearEtherDrag() const
Definition ParticleHandle.h:2479
void SetTransform(const FVec3 &Pos, const FRotation3 &Rot)
Definition ParticleHandle.h:1804
FGeometryParticleHandle * GeometryParticleHandle()
Definition ParticleHandle.h:1798
const TVec3< FRealSingle > InvI() const
Definition ParticleHandle.h:2291
Definition ParticleHandle.h:2590
FGenericParticleHandleImp * operator->() const
Definition ParticleHandle.h:2595
FGenericParticleHandle()
Definition ParticleHandle.h:2592
friend bool operator==(const FGenericParticleHandle &L, const FGenericParticleHandle &R)
Definition ParticleHandle.h:2605
bool IsValid() const
Definition ParticleHandle.h:2598
FGenericParticleHandle(FGeometryParticleHandle *InHandle)
Definition ParticleHandle.h:2593
FGenericParticleHandleImp * Get() const
Definition ParticleHandle.h:2596
friend uint32 GetTypeHash(const FGenericParticleHandle &H)
Definition ParticleHandle.h:2600
friend bool operator!=(const FGenericParticleHandle &L, const FGenericParticleHandle &R)
Definition ParticleHandle.h:2610
friend bool operator<(const FGenericParticleHandle &L, const FGenericParticleHandle &R)
Definition ParticleHandle.h:2615
Definition ImplicitObjectUnion.h:351
Definition ImplicitObjectUnion.h:27
Definition ImplicitObject.h:111
Definition KinematicTargets.h:34
Definition ParticleHandle.h:3796
static TUniquePtr< FPBDGeometryCollectionParticle > CreateParticle(const FPBDRigidParticleParameters &DynamicParams=FPBDRigidParticleParameters())
Definition ParticleHandle.h:3808
TPBDGeometryCollectionParticleHandle< FReal, 3 > FHandle
Definition ParticleHandle.h:3798
FPBDGeometryCollectionParticle(const FPBDRigidParticleParameters &DynamicParams=FPBDRigidParticleParameters())
Definition ParticleHandle.h:3802
Definition PBDRigidsEvolution.h:271
Knows about all the collisions detectors associated with a particular particle. Used when particles a...
Definition ParticleCollisions.h:21
Definition ParticleHandle.h:2724
FParticleData(EParticleType InType=EParticleType::Static)
Definition ParticleHandle.h:2726
virtual ~FParticleData()=default
EParticleType Type
Definition ParticleHandle.h:2734
void Reset()
Definition ParticleHandle.h:2730
Definition ParticleDirtyFlags.h:368
Definition ParticleDirtyFlags.h:177
FVec3 LinearImpulseVelocity() const
Definition ParticleDirtyFlags.h:236
FVec3 Acceleration() const
Definition ParticleDirtyFlags.h:230
FVec3 AngularAcceleration() const
Definition ParticleDirtyFlags.h:233
FVec3 AngularImpulseVelocity() const
Definition ParticleDirtyFlags.h:239
Definition ParticleDirtyFlags.h:293
const TVec3< FRealSingle > & I() const
Definition ParticleDirtyFlags.h:338
const FVec3 & CenterOfMass() const
Definition ParticleDirtyFlags.h:332
FReal M() const
Definition ParticleDirtyFlags.h:344
FReal InvM() const
Definition ParticleDirtyFlags.h:347
const FRotation3 & RotationOfMass() const
Definition ParticleDirtyFlags.h:335
const TVec3< FRealSingle > & InvI() const
Definition ParticleDirtyFlags.h:341
Definition ParticleDirtyFlags.h:619
Definition ParticleDirtyFlags.h:60
const FVec3 & X() const
Definition ParticleDirtyFlags.h:97
const FRotation3 R() const
Definition ParticleDirtyFlags.h:101
Definition ParticleDirtyFlags.h:118
Definition ShapeInstance.h:36
Definition PhysicsSolverBase.h:313
Definition PBDRigidClustering.h:56
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
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
bool GetCCDEnabled() const
Definition RigidParticleControlFlags.h:47
bool GetPartialIslandSleepAllowed() const
Definition RigidParticleControlFlags.h:53
bool GetGravityEnabled() const
Definition RigidParticleControlFlags.h:30
bool GetMACDEnabled() const
Definition RigidParticleControlFlags.h:50
Definition ParticleDirtyFlags.h:1228
int32 GetShapeIdx() const
Definition ParticleDirtyFlags.h:1237
Definition GeometryParticles.h:107
Definition IslandManager.h:41
Definition IterationSettings.h:19
Definition ArrayCollectionArray.h:15
Definition ArrayCollection.h:10
int32 AddArray(TArrayCollectionArrayBase *Array)
Definition ArrayCollection.h:36
uint32 Size() const
Definition ArrayCollection.h:66
void ResizeHelper(const int32 Num)
Definition ArrayCollection.h:93
void RemoveAtSwapHelper(const int32 Index)
Definition ArrayCollection.h:119
void AddElementsHelper(const int32 Num)
Definition ArrayCollection.h:84
Definition Properties.h:14
void SyncRemote(FDirtyPropertiesManager &Manager, int32 DataIdx, const FDirtyChaosProperties &Remote) const
Definition Properties.h:56
Definition ParticleIterator.h:359
bool IsDirty() const
Definition ParticleDirtyFlags.h:922
bool IsClean() const
Definition ParticleDirtyFlags.h:952
void MarkDirty(const FlagsType DirtyBits)
Definition ParticleDirtyFlags.h:937
void Clear()
Definition ParticleDirtyFlags.h:947
Definition ParticleHandle.h:436
void RemoveFromLists(const EGeometryParticleListMask ListMask)
Definition ParticleHandle.h:762
ESyncState SyncState() const
Definition ParticleHandle.h:603
void SetX(const TVector< T, d > &InX, bool bInvalidate=false)
Definition ParticleHandle.h:559
const FShapesArray & ShapesArray() const
Definition ParticleHandle.h:642
TGeometryParticles< T, d > * GeometryParticles
Definition ParticleHandle.h:403
bool HasBounds() const
Definition ParticleHandle.h:678
FRigidTransform3 GetTransformXR() const
Definition ParticleHandle.h:573
const TSharedPtr< const FImplicitObject, ESPMode::ThreadSafe > & SharedGeometryLowLevel() const
Definition ParticleHandle.h:634
const TGeometryParticleHandle< T, d > * Handle() const
Definition ParticleHandle.h:711
~TGeometryParticleHandleImp()
Definition ParticleHandle.h:501
void SetConstraintGraphNode(Private::FPBDIslandParticle *InNode)
Definition ParticleHandle.h:867
TPBDRigidParticleHandleImp< T, d, bPersistent > * CastToRigidParticle()
Definition ParticleHandle.h:1700
void SetPhysicsProxy(IPhysicsProxyBase *PhysicsProxy)
Definition ParticleHandle.h:697
std::conditional_t< bPersistent, int32, FInvalidFromTransient > HandleIdx
Definition ParticleHandle.h:881
TGeometryParticleHandle< T, d > * Handle()
Definition ParticleHandle.h:712
friend const TGeometryParticleHandle< T2, d2 > * GetHandleHelper(const TTransientGeometryParticleHandle< T2, d2 > *Handle)
EObjectStateType ObjectState() const
Definition ParticleHandle.h:1716
bool EnabledDuringResim() const
Definition ParticleHandle.h:736
void SetLightWeightDisabled(bool bLightWeightDisabled)
Definition ParticleHandle.h:740
static TUniquePtr< typename TParticlesType::THandleType > CreateParticleHandleHelper(TSerializablePtr< TParticlesType > InParticles, int32 InParticleIdx, int32 InHandleIdx, const TParams &Params)
Definition ParticleHandle.h:486
TGeometryParticleHandleImp(const TGeometryParticleHandleImp &)=delete
const FConstraintHandleArray & ParticleConstraints() const
Definition ParticleHandle.h:832
const FImplicitObjectRef GetGeometry() const
Definition ParticleHandle.h:613
TPayloadType GetPayload(int32 Idx)
Definition ParticleHandle.h:453
void LockGeometry()
Definition ParticleHandle.cpp:125
void AddConstraintHandle(FConstraintHandle *InConstraintHandle)
Definition ParticleHandle.h:837
FParticleCollisions & ParticleCollisions()
Definition ParticleHandle.h:847
EGeometryParticleListMask ListMask() const
Definition ParticleHandle.h:742
bool IsInConstraintGraph() const
Definition ParticleHandle.h:857
void SetEnabledDuringResim(bool bEnabledDuringResim)
Definition ParticleHandle.h:737
const TRotation< T, d > R() const
Definition ParticleHandle.h:565
FWeakParticleHandle & WeakParticleHandle()
Definition ParticleHandle.h:822
TGeometryParticleHandleImp< T, d, false > AsTransient()
Definition ParticleHandle.h:544
TGeometryParticleHandleImp(TGeometryParticles< T, d > *InParticles, const int32 InParticleIdx)
Definition ParticleHandle.h:480
void SetGeometry(const FImplicitObjectPtr &InGeometry)
Definition ParticleHandle.h:614
TGeometryParticleHandleImp(TSerializablePtr< TGeometryParticles< T, d > > InParticles, int32 InParticleIdx, int32 InHandleIdx, const FGeometryParticleParameters &Params)
Definition ParticleHandle.h:467
void Serialize(FChaosArchive &Ar)
Definition ParticleHandle.h:815
static constexpr EParticleType StaticType()
Definition ParticleHandle.h:811
void RemoveConstraintHandle(FConstraintHandle *InConstraintHandle)
Definition ParticleHandle.h:842
UE_DEPRECATED(5.3, "Use GetConstraintGraphNode()") int32 ConstraintGraphIndex() const
Definition ParticleHandle.h:873
EParticleType Type
Definition ParticleHandle.h:413
static constexpr bool AlwaysSerializable
Definition ParticleHandle.h:448
TPBDGeometryCollectionParticleHandleImp< T, d, bPersistent > * CastToGeometryCollection()
Definition ParticleHandle.h:1712
const TPBDRigidParticleHandleImp< T, d, bPersistent > * CastToRigidParticle() const
Definition ParticleHandle.h:1697
friend class TGeometryParticleHandleImp< T, d, false >
Definition ParticleHandle.h:541
const TRotation< FRealSingle, d > GetRf() const
Definition ParticleHandle.h:570
TGeometryParticle< T, d > *& GTGeometryParticle()
Definition ParticleHandle.h:693
void SetHasBounds(bool bHasBounds)
Definition ParticleHandle.h:679
void SetNonFrequentData(const FParticleNonFrequentData &InData)
Definition ParticleHandle.h:584
void UpdateWorldSpaceStateSwept(const FRigidTransform3 &WorldTransform, const FVec3 &BoundsExpansion, const FVec3 &DeltaX)
Update any cached state that depends on world-space transform for a sweep between WorldTransform and ...
Definition ParticleHandle.h:673
const TKinematicGeometryParticleHandleImp< T, d, bPersistent > * CastToKinematicParticle() const
Definition ParticleHandle.h:1694
void MoveToSOA(TGeometryParticles< T, d > &ToSOA)
Definition ParticleHandle.h:786
FUniqueIdx UniqueIdx() const
Definition ParticleHandle.h:561
const auto & AuxilaryValue(const Container &AuxContainer) const
Definition ParticleHandle.h:720
void SetUniqueIdx(const FUniqueIdx UniqueIdx, bool bInvalidate=false) const
Definition ParticleHandle.h:562
TKinematicGeometryParticleHandleImp< T, d, bPersistent > * CastToKinematicParticle()
Definition ParticleHandle.h:1691
void SetResimType(EResimType ResimType)
Definition ParticleHandle.h:733
TSharedPtr< const FImplicitObject, ESPMode::ThreadSafe > SharedGeometry() const
Definition ParticleHandle.h:628
TSerializablePtr< FImplicitObject > Geometry() const
Definition ParticleHandle.h:622
void UpdateWorldSpaceState(const FRigidTransform3 &WorldTransform, const FVec3 &BoundsExpansion)
Update any cached state that depends on world-space transform This includes the world space bounds fo...
Definition ParticleHandle.h:660
bool Sleeping() const
Definition ParticleHandle.h:717
const TPBDGeometryCollectionParticleHandleImp< T, d, bPersistent > * CastToGeometryCollection() const
Definition ParticleHandle.h:1709
const FString & GetDebugName() const
Definition ParticleHandle.h:688
UE_DEPRECATED(5.3, "Use GetConstraintGraphNode()") void SetConstraintGraphIndex(const int32 InGraphIndex)
Definition ParticleHandle.h:874
int32 ParticleIdx
Definition ParticleHandle.h:412
void InitTransform(const FVec3 &InP, const FRotation3 &InQ)
Definition ParticleHandle.h:576
void SetLocalBounds(const TAABB< T, d > &NewBounds)
Definition ParticleHandle.h:650
TPBDRigidClusteredParticleHandleImp< T, d, bPersistent > * CastToClustered()
Definition ParticleHandle.h:1706
const TUniquePtr< FImplicitObject > & DynamicGeometry() const
Definition ParticleHandle.h:637
TGeometryParticleHandleImp()
Definition ParticleHandle.h:461
const TVector< T, d > & X() const
Definition ParticleHandle.h:552
bool IsInAllLists(const EGeometryParticleListMask ListMask) const
Definition ParticleHandle.h:752
void RemoveShapesAtSortedIndices(const TArrayView< const int32 > &InIndices)
Definition ParticleHandle.cpp:206
bool IsInAnyList(const EGeometryParticleListMask ListMask) const
Definition ParticleHandle.h:747
void SetSpatialIdx(FSpatialAccelerationIdx Idx)
Definition ParticleHandle.h:682
auto & AuxilaryValue(Container &AuxContainer)
Definition ParticleHandle.h:726
void SetXR(const FParticlePositionRotation &XR)
Definition ParticleHandle.h:1487
FString ToString() const
Definition ParticleHandle.h:1737
static TUniquePtr< TGeometryParticleHandleImp< T, d, bPersistent > > CreateParticleHandle(TSerializablePtr< TGeometryParticles< T, d > > InParticles, int32 InParticleIdx, int32 InHandleIdx, const FGeometryParticleParameters &Params=FGeometryParticleParameters())
Definition ParticleHandle.h:496
const TVector< T, d > & GetX() const
Definition ParticleHandle.h:558
void SetDynamicGeometry(TUniquePtr< FImplicitObject > &&Unique)
Definition ParticleHandle.h:640
Private::FPBDIslandParticle * GetConstraintGraphNode() const
Definition ParticleHandle.h:862
int32 GetHandleIdx() const
Definition ParticleHandle.h:715
const TRotation< T, d > GetR() const
Definition ParticleHandle.h:568
const TAABB< T, d > & WorldSpaceInflatedBounds() const
Definition ParticleHandle.h:654
void SetSyncState(ESyncState State)
Definition ParticleHandle.h:608
bool HasCollision() const
Definition ParticleHandle.h:596
EResimType ResimType() const
Definition ParticleHandle.h:731
void MergeGeometry(TArray< Chaos::FImplicitObjectPtr > &&Objects)
Definition ParticleHandle.cpp:101
void SetHasCollision(const bool bHasCollision)
Definition ParticleHandle.h:598
void SetRf(const TRotation< FRealSingle, d > &InR, bool bInvalidate=false)
Definition ParticleHandle.h:571
void RemoveShape(FPerShapeData *InShape)
Definition ParticleHandle.cpp:185
static TGeometryParticleHandleImp< T, d, bPersistent > * SerializationFactory(FChaosArchive &Ar, TGeometryParticleHandleImp< T, d, bPersistent > *Handle)
Definition ParticleHandle.h:1758
const FParticleCollisions & ParticleCollisions() const
Definition ParticleHandle.h:852
TGeometryParticle< T, d > * GTGeometryParticle() const
Definition ParticleHandle.h:692
void SetR(const TRotation< T, d > &InR, bool bInvalidate=false)
Definition ParticleHandle.h:569
const FShapeInstanceArray & ShapeInstances() const
Definition ParticleHandle.h:644
FConstraintHandleArray & ParticleConstraints()
Definition ParticleHandle.h:827
const TPBDRigidClusteredParticleHandleImp< T, d, bPersistent > * CastToClustered() const
Definition ParticleHandle.h:1703
friend TGeometryParticleHandle< T2, d2 > * GetHandleHelper(TTransientGeometryParticleHandle< T2, d2 > *Handle)
const IPhysicsProxyBase * PhysicsProxy() const
Definition ParticleHandle.h:695
bool LightWeightDisabled() const
Definition ParticleHandle.h:739
FSpatialAccelerationIdx SpatialIdx() const
Definition ParticleHandle.h:681
const TVector< T, d > & CCDAxisThreshold() const
Definition ParticleHandle.h:652
void SetSharedGeometry(TSharedPtr< const FImplicitObject, ESPMode::ThreadSafe > InGeometry)
Definition ParticleHandle.h:631
IPhysicsProxyBase * PhysicsProxy()
Definition ParticleHandle.h:696
const TAABB< T, d > & LocalBounds() const
Definition ParticleHandle.h:649
void AddToLists(const EGeometryParticleListMask ListMask)
Definition ParticleHandle.h:757
Definition ParticleHandle.h:2663
const TUniquePtr< TGeometryParticleHandle< T, d > > & Handle(int32 Idx) const
Definition ParticleHandle.h:2704
void AddHandles(int32 NumHandles)
Definition ParticleHandle.h:2670
void Reset()
Definition ParticleHandle.h:2675
TUniquePtr< TGeometryParticleHandle< T, d > > & Handle(int32 Idx)
Definition ParticleHandle.h:2705
void DestroyHandleSwap(TGeometryParticleHandle< T, d > *Handle)
Definition ParticleHandle.h:2680
void Serialize(FChaosArchive &Ar)
Definition ParticleHandle.h:2698
TGeometryParticleHandles()
Definition ParticleHandle.h:2665
Definition ParticleHandle.h:2739
TSharedPtr< const FImplicitObject, ESPMode::ThreadSafe > SharedGeometryLowLevel() const
Definition ParticleHandle.h:2852
virtual bool IsParticleValid() const
Definition ParticleHandle.h:2785
void SetUniqueIdx(const FUniqueIdx UniqueIdx, bool bInvalidate=true)
Definition ParticleHandle.h:2798
virtual void Serialize(FChaosArchive &Ar)
Definition ParticleHandle.h:2770
void SetEnabledDuringResim(bool bEnabledDuringResim)
Definition ParticleHandle.h:3010
static TUniquePtr< TGeometryParticle< T, d > > CreateParticle(const FGeometryParticleParameters &Params=FGeometryParticleParameters())
Definition ParticleHandle.h:2756
void ModifyGeometry(const Lambda &Func, const bool bDirectAccess=false)
Definition ParticleHandle.h:3146
FSpatialAccelerationIdx SpatialIdx() const
Definition ParticleHandle.h:2994
const FDirtyChaosPropertyFlags & DirtyFlags() const
Definition ParticleHandle.h:3046
EParticleType ObjectType() const
Definition ParticleHandle.h:2981
class IPhysicsProxyBase * GetProxy() const
Definition ParticleHandle.h:3092
TGeometryParticleHandle< T, d > FHandle
Definition ParticleHandle.h:2741
TPBDRigidParticle< T, d > * CastToRigidParticle()
Definition ParticleHandle.h:3841
EParticleType Type
Definition ParticleHandle.h:3228
void MarkDirty(const EChaosPropertyFlags DirtyBits, bool bInvalidate=true)
const TKinematicGeometryParticle< T, d > * CastToKinematicParticle() const
Definition ParticleHandle.h:3819
TGeometryParticle & operator=(const TGeometryParticle &)=delete
void SetShapeSimCollisionEnabled(int32 InShapeIndex, bool bInEnabled)
Definition ParticleHandle.h:2883
EResimType ResimType() const
Definition ParticleHandle.h:3005
void SetSpatialIdx(FSpatialAccelerationIdx Idx)
Definition ParticleHandle.h:2995
void SetGeometry(Chaos::FImplicitObjectPtr ImplicitObjectPtr)
Definition ParticleHandle.h:2825
void UpdateShapeBounds(const FRigidTransform3 &Transform)
Definition ParticleHandle.h:2871
CHAOS_API void MergeGeometry(TArray< Chaos::FImplicitObjectPtr > &&Objects)
Definition ParticleHandle.cpp:79
void SetShapeCollisionTraceType(int32 InShapeIndex, EChaosCollisionTraceFlag TraceType)
Definition ParticleHandle.h:2901
bool IsDirty(const EChaosPropertyFlags CheckBits) const
Definition ParticleHandle.h:3036
void * UserData() const
Definition ParticleHandle.h:2860
TKinematicGeometryParticle< T, d > * CastToKinematicParticle()
Definition ParticleHandle.h:3830
void SetShapeQueryCollisionEnabled(int32 InShapeIndex, bool bInEnabled)
Definition ParticleHandle.h:2892
TGeometryParticle(const FGeometryParticleParameters &StaticParams=FGeometryParticleParameters())
Definition ParticleHandle.h:2747
bool IsClean() const
Definition ParticleHandle.h:3031
const FShapesArray & ShapesArray() const
Definition ParticleHandle.h:2944
const TRotation< T, d > R() const
Definition ParticleHandle.h:2814
void UpdateShapeBounds()
Definition ParticleHandle.h:2866
EObjectStateType ObjectState() const
Definition ParticleHandle.h:3876
CHAOS_API void RemoveShapesAtSortedIndices(const TArrayView< const int32 > &InIndices)
Definition ParticleHandle.cpp:153
void PrepareBVH()
Definition ParticleHandle.h:3084
static TGeometryParticle< T, d > * SerializationFactory(FChaosArchive &Ar, TGeometryParticle< T, d > *Serializable)
Definition ParticleHandle.h:3902
const FParticleID & ParticleID() const
Definition ParticleHandle.h:2803
void PrepareBVHImpl()
Definition ParticleHandle.cpp:233
FDirtyChaosPropertyFlags MDirtyFlags
Definition ParticleHandle.h:3229
const TVector< T, d > & GetX() const
Definition ParticleHandle.h:2794
void ClearDirtyFlags()
Definition ParticleHandle.h:3051
void SetShapeSimData(int32 InShapeIndex, const FCollisionFilterData &SimData)
Definition ParticleHandle.h:2910
class IPhysicsProxyBase * Proxy
Definition ParticleHandle.h:3122
const FImplicitObjectRef GetGeometry() const
Definition ParticleHandle.h:2833
void SetR(const TRotation< T, d > &InR, bool bInvalidate=true)
Definition ParticleHandle.h:3870
void SetNonFrequentData(const FParticleNonFrequentData &InData)
Definition ParticleHandle.h:3021
void SetX(const TVector< T, d > &InX, bool bInvalidate=true)
Definition ParticleHandle.h:3864
CHAOS_API void UpdateShapesArray()
Definition ParticleHandle.cpp:73
void SetResimType(EResimType ResimType)
Definition ParticleHandle.h:3000
void MergeShapeInstances(FShapeInstanceProxyArray &&InShapes)
Definition ParticleHandle.h:2962
void SetUserData(void *InUserData)
Definition ParticleHandle.h:2861
TGeometryParticle(const TGeometryParticle &)=delete
FUniqueIdx UniqueIdx() const
Definition ParticleHandle.h:2797
TGeometryParticleHandle< T, d > * Handle() const
Definition ParticleHandle.h:3056
void ForceDirty(EChaosPropertyFlags CheckBits)
Definition ParticleHandle.h:3041
void SetShapeInstances(FShapeInstanceProxyArray &&InShapes)
Definition ParticleHandle.h:2952
EGeometryAccess
Definition ParticleHandle.h:3128
virtual void SyncRemoteDataImp(FDirtyPropertiesManager &Manager, int32 DataIdx, const FDirtyChaosProperties &RemoteData) const
Definition ParticleHandle.h:3237
void SetIgnoreAnalyticCollisionsImp(FImplicitObject *Implicit, bool bIgnoreAnalyticCollisions)
Definition ParticleHandle.cpp:264
void SetParticleID(const FParticleID &ParticleID, bool bInvalidate=true)
Definition ParticleHandle.h:2804
static constexpr bool AlwaysSerializable
Definition ParticleHandle.h:2743
const FString & GetDebugName() const
Definition ParticleHandle.h:2927
void LockGeometry()
Definition ParticleHandle.cpp:249
void SyncRemoteData(FDirtyPropertiesManager &Manager, int32 DataIdx, FDirtyChaosProperties &RemoteData, const TArray< int32 > &ShapeDataIndices, FShapeDirtyData *ShapesRemoteData) const
Definition ParticleHandle.h:3067
const TVector< T, d > & X() const
Definition ParticleHandle.h:2793
CHAOS_API void SetIgnoreAnalyticCollisions(bool bIgnoreAnalyticCollisions)
Definition ParticleHandle.cpp:313
void ModifyGeometry(EGeometryAccess AccessType, const Lambda &Func)
Definition ParticleHandle.h:3152
const TPBDRigidParticle< T, d > * CastToRigidParticle() const
Definition ParticleHandle.h:3853
void SetProxy(IPhysicsProxyBase *InProxy)
Definition ParticleHandle.h:3097
const FParticlePositionRotation & XR() const
Definition ParticleHandle.h:2818
bool EnabledDuringResim() const
Definition ParticleHandle.h:3015
virtual ~TGeometryParticle()
Definition ParticleHandle.h:2761
const FShapeInstanceProxyArray & ShapeInstances() const
Definition ParticleHandle.h:2946
bool IsDirty() const
Definition ParticleHandle.h:3026
void SetXR(const FParticlePositionRotation &InXR, bool bInvalidate=true)
Definition ParticleHandle.h:2819
CHAOS_API void RemoveShape(FPerShapeData *InShape, bool bWakeTouching)
Definition ParticleHandle.cpp:137
void MergeShapesArray(FShapesArray &&InShapesArray)
Definition ParticleHandle.h:2939
const TRotation< T, d > GetR() const
Definition ParticleHandle.h:2815
TSerializablePtr< FImplicitObject > Geometry() const
Definition ParticleHandle.h:2855
Definition GeometryParticles.h:152
Definition ParticleHandle.h:907
TKinematicGeometryParticleHandleImp()
Definition ParticleHandle.h:920
const TVector< FRealSingle, d > GetVf() const
Definition ParticleHandle.h:950
void SetKinematicTarget(const FKinematicTarget &InKinematicTarget, bool bInvalidate=true)
Definition ParticleHandle.h:969
const TVector< T, d > GetW() const
Definition ParticleHandle.h:957
const TVector< T, d > V() const
Definition ParticleHandle.h:945
void SetW(const TVector< T, d > &InW, bool bInvalidate=false)
Definition ParticleHandle.h:958
TKinematicGeometryParticleHandleImp(TSerializablePtr< TKinematicGeometryParticles< T, d > > Particles, int32 InIdx, int32 InGlobalIdx, const FKinematicGeometryParticleParameters &Params)
Definition ParticleHandle.h:925
TKinematicGeometryParticleHandleImp< T, d, true > * Handle()
Definition ParticleHandle.h:979
FKinematicTarget & KinematicTarget()
Definition ParticleHandle.h:975
const TVector< T, d > GetV() const
Definition ParticleHandle.h:948
void SetVf(const TVector< FRealSingle, d > &InV, bool bInvalidate=false)
Definition ParticleHandle.h:951
const TVector< FRealSingle, d > GetWf() const
Definition ParticleHandle.h:959
const TKinematicGeometryParticleHandleImp< T, d, true > * Handle() const
Definition ParticleHandle.h:978
static constexpr EParticleType StaticType()
Definition ParticleHandle.h:982
const FKinematicTarget & KinematicTarget() const
Definition ParticleHandle.h:974
TSerializablePtr< TKinematicGeometryParticleHandleImp< T, d, bPersistent > > ToSerializable() const
Definition ParticleHandle.h:937
void SetV(const TVector< T, d > &InV, bool bInvalidate=false)
Definition ParticleHandle.h:949
const TVector< T, d > W() const
Definition ParticleHandle.h:954
static TUniquePtr< TKinematicGeometryParticleHandleImp< T, d, bPersistent > > CreateParticleHandle(TSerializablePtr< TKinematicGeometryParticles< T, d > > InParticles, int32 InParticleIdx, int32 InHandleIdx, const FKinematicGeometryParticleParameters &Params=FKinematicGeometryParticleParameters())
Definition ParticleHandle.h:932
EObjectStateType ObjectState() const
Definition ParticleHandle.h:1723
void SetVelocities(const FParticleVelocities &Velocities)
Definition ParticleHandle.h:963
void SetWf(const TVector< FRealSingle, d > &InW, bool bInvalidate=false)
Definition ParticleHandle.h:960
Definition ParticleHandle.h:3293
const TVector< T, d > V() const
Definition ParticleHandle.h:3325
const TVector< T, d > GetV() const
Definition ParticleHandle.h:3326
static TKinematicGeometryParticle< T, d > * Cast(TGeometryParticle< T, d > *Particle)
Definition ParticleHandle.h:3360
virtual void Serialize(FChaosArchive &Ar) override
Definition ParticleHandle.h:3318
const FKinematicTarget KinematicTarget() const
Definition ParticleHandle.h:3333
EObjectStateType ObjectState() const
Definition ParticleHandle.h:3883
void SetVelocities(const FParticleVelocities &InVelocities, bool bInvalidate=true)
Definition ParticleHandle.h:3353
void ClearKinematicTarget()
Definition ParticleHandle.h:3347
TKinematicGeometryParticleHandle< T, d > FHandle
Definition ParticleHandle.h:3295
const TVector< T, d > GetW() const
Definition ParticleHandle.h:3330
void SetW(const TVector< T, d > &InW, bool bInvalidate=true)
Definition ParticleHandle.h:3896
virtual void SyncRemoteDataImp(FDirtyPropertiesManager &Manager, int32 DataIdx, const FDirtyChaosProperties &RemoteData) const
Definition ParticleHandle.h:3376
static const TKinematicGeometryParticle< T, d > * Cast(const TGeometryParticle< T, d > *Particle)
Definition ParticleHandle.h:3365
const FParticleVelocities & Velocities() const
Definition ParticleHandle.h:3352
bool IsKinematicTargetDirty() const
Definition ParticleHandle.h:3342
void SetV(const TVector< T, d > &InV, bool bInvalidate=true)
Definition ParticleHandle.h:3890
void SetKinematicTarget(const FKinematicTarget &KinematicTarget, bool bInvalidate=true)
Definition ParticleHandle.h:3337
TKinematicGeometryParticle(const FKinematicGeometryParticleParameters &KinematicParams=FKinematicGeometryParticleParameters())
Definition ParticleHandle.h:3306
static TUniquePtr< TKinematicGeometryParticle< T, d > > CreateParticle(const FKinematicGeometryParticleParameters &Params=FKinematicGeometryParticleParameters())
Definition ParticleHandle.h:3313
const TVector< T, d > W() const
Definition ParticleHandle.h:3329
Definition KinematicGeometryParticles.h:13
Definition ParticleHandle.h:1641
TSerializablePtr< TPBDGeometryCollectionParticleHandleImp< T, d, bPersistent > > ToSerializable() const
Definition ParticleHandle.h:1677
TPBDGeometryCollectionParticleHandleImp< T, d, true > * Handle()
Definition ParticleHandle.h:1685
TPBDGeometryCollectionParticleHandleImp()
Definition ParticleHandle.h:1653
static constexpr EParticleType StaticType()
Definition ParticleHandle.h:1687
static TUniquePtr< TPBDGeometryCollectionParticleHandleImp< T, d, bPersistent > > CreateParticleHandle(TSerializablePtr< TPBDGeometryCollectionParticles< T, d > > InParticles, int32 InParticleIdx, int32 InHandleIdx, const FPBDRigidParticleParameters &Params=FPBDRigidParticleParameters())
Definition ParticleHandle.h:1667
const TPBDGeometryCollectionParticleHandleImp< T, d, true > * Handle() const
Definition ParticleHandle.h:1684
Definition PBDGeometryCollectionParticles.h:11
Definition ParticleHandle.h:1500
void SetChildToParentLocked(bool bValue)
Definition ParticleHandle.h:1619
TArray< TConnectivityEdge< T > > & ConnectivityEdges()
Definition ParticleHandle.h:1608
static constexpr EParticleType StaticType()
Definition ParticleHandle.h:1624
void SetClusterId(const ClusterId &Id)
Definition ParticleHandle.h:1540
void ClearCollisionImpulse()
Definition ParticleHandle.h:1586
TRigidTransform< T, d > & ChildToParent()
Definition ParticleHandle.h:1547
void SetExternalStrain(const FRealSingle Value)
Definition ParticleHandle.h:1590
void SetCollisionImpulses(const FRealSingle Value)
Definition ParticleHandle.h:1585
void SetIsAnchored(bool bValue)
Definition ParticleHandle.h:1613
void SetInternalCluster(bool bValue)
Definition ParticleHandle.h:1555
const FRealSingle & CollisionImpulses() const
Definition ParticleHandle.h:1583
void ClearExternalStrain()
Definition ParticleHandle.h:1592
FPBDRigidClusteredParticleHandle * Parent() const
Definition ParticleHandle.h:1544
const TUniquePtr< FImplicitObjectUnionClustered > & ChildrenSpatial() const
Definition ParticleHandle.h:1562
void RemovePhysicsProxy(IPhysicsProxyBase *PhysicsProxy)
Definition ParticleHandle.h:1537
void SetChildToParent(const TRigidTransform< T, d > &Xf)
Definition ParticleHandle.h:1548
const TArray< TConnectivityEdge< T > > & ConnectivityEdges() const
Definition ParticleHandle.h:1607
void SetStrains(const FRealSingle Value)
Definition ParticleHandle.h:1604
const FRealSingle & GetInternalStrains() const
Definition ParticleHandle.h:1594
const TRigidTransform< T, d > & ChildToParent() const
Definition ParticleHandle.h:1546
void SetConnectivityEdges(const TArray< TConnectivityEdge< T > > &Edges)
Definition ParticleHandle.h:1609
void SetClusterGroupIndex(const int32 Idx)
Definition ParticleHandle.h:1552
const TSet< IPhysicsProxyBase * > & PhysicsProxies() const
Definition ParticleHandle.h:1535
void SetMaximumInternalStrain()
Definition ParticleHandle.h:1605
bool InternalCluster() const
Definition ParticleHandle.h:1554
const FRealSingle & CollisionImpulse() const
Definition ParticleHandle.h:1580
const ClusterId & ClusterIds() const
Definition ParticleHandle.h:1541
void SetUnbreakable(bool bValue)
Definition ParticleHandle.h:1616
bool IsChildToParentLocked() const
Definition ParticleHandle.h:1618
ClusterId & ClusterIds()
Definition ParticleHandle.h:1542
const FImplicitObjectUnionClusteredPtr & GetChildrenSpatial() const
Definition ParticleHandle.h:1557
const TPBDRigidClusteredParticleHandleImp< T, d, true > * Handle() const
Definition ParticleHandle.h:1621
TSerializablePtr< TPBDRigidClusteredParticleHandleImp< T, d, bPersistent > > ToSerializable() const
Definition ParticleHandle.h:1528
bool Unbreakable() const
Definition ParticleHandle.h:1615
TPimplPtr< Private::FConvexOptimizer > & ConvexOptimizer()
Definition ParticleHandle.h:1630
void AddPhysicsProxy(IPhysicsProxyBase *PhysicsProxy)
Definition ParticleHandle.h:1536
void SetStrain(const FRealSingle Value)
Definition ParticleHandle.h:1599
FImplicitObjectUnionClusteredPtr & GetChildrenSpatial()
Definition ParticleHandle.h:1558
void ClearPhysicsProxies()
Definition ParticleHandle.h:1538
const FRealSingle & Strain() const
Definition ParticleHandle.h:1595
const int32 & ClusterGroupIndex() const
Definition ParticleHandle.h:1550
void SetConnectivityEdges(TArray< TConnectivityEdge< T > > &&Edges)
Definition ParticleHandle.h:1610
void SetChildrenSpatial(FImplicitObjectUnionClusteredPtr &Obj)
Definition ParticleHandle.h:1559
int32 TransientParticleIndex() const
Definition ParticleHandle.h:1626
bool IsAnchored() const
Definition ParticleHandle.h:1612
TPBDRigidClusteredParticleHandleImp< T, d, true > * Handle()
Definition ParticleHandle.h:1622
FRealSingle & CollisionImpulse()
Definition ParticleHandle.h:1581
FRealSingle GetExternalStrain() const
Definition ParticleHandle.h:1588
void SetCollisionImpulse(const FRealSingle Value)
Definition ParticleHandle.h:1582
static TUniquePtr< TPBDRigidClusteredParticleHandleImp< T, d, bPersistent > > CreateParticleHandle(TSerializablePtr< TPBDRigidClusteredParticles< T, d > > InParticles, int32 InParticleIdx, int32 InHandleIdx, const FPBDRigidParticleParameters &Params=FPBDRigidParticleParameters())
Definition ParticleHandle.h:1523
const FRealSingle & Strains() const
Definition ParticleHandle.h:1600
int32 & ClusterGroupIndex()
Definition ParticleHandle.h:1551
const TPimplPtr< Private::FConvexOptimizer > & ConvexOptimizer() const
Definition ParticleHandle.h:1629
FRealSingle & CollisionImpulses()
Definition ParticleHandle.h:1584
Definition PBDRigidClusteredParticles.h:146
Definition ParticleHandle.h:987
TVec3< FRealSingle > & I()
Definition ParticleHandle.h:1207
CHAOS_API void SetTorque(const TVector< T, d > &InTorque, bool bInvalidate=true)
Definition ParticleHandle.cpp:332
bool HasCollisionConstraintFlag(const ECollisionConstraintFlags Flag) const
Definition ParticleHandle.h:1063
void SetUpdateKinematicFromSimulation(bool bUpdateKinematicFromSimulation)
Definition ParticleHandle.h:1312
FRigidTransform3 GetTransformXRCom() const
Definition ParticleHandle.h:1140
const TRotation< T, d > RCom() const
Definition ParticleHandle.h:1123
void SetLinearEtherDrag(const T &InLinearEtherDrag)
Definition ParticleHandle.h:1240
const TVector< T, d > & AngularImpulseVelocity() const
Definition ParticleHandle.h:1172
T MaxAngularSpeedSq() const
Definition ParticleHandle.h:1250
TPBDRigidParticleHandleImp()
Definition ParticleHandle.h:1006
void SetDisabledLowLevel(bool disabled)
Definition ParticleHandle.h:1074
bool IsSleeping() const
Definition ParticleHandle.h:1266
void SetMaxLinearSpeedSq(const T &InMaxLinearSpeed)
Definition ParticleHandle.h:1248
bool InertiaConditioningDirty()
Definition ParticleHandle.h:1408
void SetAcceleration(const TVector< T, d > &InAcceleration)
Definition ParticleHandle.h:1154
TVec3< FRealSingle > ConditionedI() const
Definition ParticleHandle.h:1236
bool IsDynamic() const
Definition ParticleHandle.h:1050
TVector< T, d > & VSmooth()
Definition ParticleHandle.h:1145
void SetVelocitySolverIterations(const int32 VelocityIterationsIn)
Definition ParticleHandle.h:1372
bool CCDEnabled() const
Definition ParticleHandle.h:1327
const TRotation< T, d > GetQ() const
Definition ParticleHandle.h:1113
TPBDRigidParticleHandleImp< T, d, true > * Handle()
Definition ParticleHandle.h:1274
T & M()
Definition ParticleHandle.h:1216
FRigidTransform3 GetTransformPQ() const
Definition ParticleHandle.h:1138
bool MACDEnabled() const
Definition ParticleHandle.h:1337
const TVector< T, d > & CenterOfMass() const
Definition ParticleHandle.h:1223
TVec3< FRealSingle > & InvI()
Definition ParticleHandle.h:1212
void SetPartialIslandSleepAllowed(bool bEnabled)
Definition ParticleHandle.h:1352
void SetMaxAngularSpeedSq(const T &InMaxAngularSpeed)
Definition ParticleHandle.h:1252
void SetGravityGroupIndex(int32 GravityGroupIndex)
Definition ParticleHandle.h:1302
T AngularEtherDrag() const
Definition ParticleHandle.h:1242
void SetSleepCounter(int8 SleepCounter)
Definition ParticleHandle.h:1462
T & MaxAngularSpeedSq()
Definition ParticleHandle.h:1251
void SetVSmooth(const TVector< T, d > &InVSmooth)
Definition ParticleHandle.h:1146
const TVector< T, d > & LinearImpulseVelocity() const
Definition ParticleHandle.h:1168
bool IsKinematic() const
Definition ParticleHandle.h:1049
void SetProjectionSolverIterations(const int32 ProjectionIterationsIn)
Definition ParticleHandle.h:1377
void SetCCDEnabled(bool bEnabled)
Definition ParticleHandle.h:1332
bool WasSleeping() const
Definition ParticleHandle.h:1267
int32 SolverBodyIndex() const
Definition ParticleHandle.h:1095
TVector< T, d > & Acceleration()
Definition ParticleHandle.h:1153
void SetPreW(const TVector< T, d > &InPreW)
Definition ParticleHandle.h:1091
TVector< T, d > & AngularImpulseVelocity()
Definition ParticleHandle.h:1173
void SetRotationOfMass(const TRotation< T, d > &InRotationOfMass, bool bInvalidate=false)
Definition ParticleHandle.h:1227
void SetCollisionConstraintFlags(const uint32 Flags)
Definition ParticleHandle.h:1066
T InvM() const
Definition ParticleHandle.h:1219
FRigidTransform3 GetTransformPQCom() const
Definition ParticleHandle.h:1142
void SetMassProps(const FParticleMassProps &Props)
Definition ParticleHandle.h:1184
const TVector< T, d > PreV() const
Definition ParticleHandle.h:1078
void SetSleepThresholdMultiplier(FRealSingle Multiplier)
Definition ParticleHandle.h:1258
EObjectStateType ObjectState() const
Definition ParticleHandle.h:1260
int32 & CollisionGroup()
Definition ParticleHandle.h:1060
const TVector< T, d > & WSmooth() const
Definition ParticleHandle.h:1148
void SetPreV(const TVector< T, d > &InPreV)
Definition ParticleHandle.h:1082
const TVector< FRealSingle, d > GetPreWf() const
Definition ParticleHandle.h:1092
T MaxLinearSpeedSq() const
Definition ParticleHandle.h:1246
void SetInitialOverlapDepenetrationVelocity(FRealSingle InVel)
Definition ParticleHandle.h:1255
bool UpdateKinematicFromSimulation() const
Definition ParticleHandle.h:1307
void SetQ(const TRotation< T, d > &InQ)
Definition ParticleHandle.h:1114
const TRotation< T, d > & RotationOfMass() const
Definition ParticleHandle.h:1226
const TUniquePtr< TBVHParticles< T, d > > & CollisionParticles() const
Definition ParticleHandle.h:1052
void SetP(const TVector< T, d > &InP)
Definition ParticleHandle.h:1107
const TVector< T, d > XCom() const
Definition ParticleHandle.h:1119
T M() const
Definition ParticleHandle.h:1215
const TVector< T, d > & P() const
Definition ParticleHandle.h:1099
bool OneWayInteraction() const
Definition ParticleHandle.h:1382
void SetPositionSolverIterations(const int32 PositionIterationsIn)
Definition ParticleHandle.h:1367
EObjectStateType PreObjectState() const
Definition ParticleHandle.h:1261
const TVector< T, d > & GetP() const
Definition ParticleHandle.h:1106
const TVector< T, d > & Acceleration() const
Definition ParticleHandle.h:1152
bool UseIgnoreCollisionManager() const
Definition ParticleHandle.h:1423
void SetMACDEnabled(bool bEnabled)
Definition ParticleHandle.h:1342
void RemoveCollisionConstraintFlag(const ECollisionConstraintFlags Flag)
Definition ParticleHandle.h:1065
T & InvM()
Definition ParticleHandle.h:1220
void SetSleepType(ESleepType SleepType)
Definition ParticleHandle.h:1455
bool Disabled() const
Definition ParticleHandle.h:1069
T LinearEtherDrag() const
Definition ParticleHandle.h:1238
TVector< T, d > & WSmooth()
Definition ParticleHandle.h:1149
FRealSingle SleepThresholdMultiplier() const
Definition ParticleHandle.h:1257
void SetUseIgnoreCollisionManager()
Definition ParticleHandle.h:1428
bool PartialIslandSleepAllowed() const
Definition ParticleHandle.h:1347
void SetIsMovingKinematic()
Definition ParticleHandle.h:1443
void SetAngularImpulseVelocity(const TVector< T, d > &InAngularImpulseVelocity, bool bInvalidate=false)
Definition ParticleHandle.h:1174
const TPBDRigidParticleHandleImp< T, d, true > * Handle() const
Definition ParticleHandle.h:1273
static constexpr EParticleType StaticType()
Definition ParticleHandle.h:1477
int8 DisableCounter() const
Definition ParticleHandle.h:1467
bool GyroscopicTorqueEnabled() const
Definition ParticleHandle.h:1317
void SetInertiaConditioningEnabled(bool bEnabled)
Definition ParticleHandle.h:1397
FRigidParticleControlFlags ControlFlags() const
Definition ParticleHandle.h:1276
void ClearIsMovingKinematic()
Definition ParticleHandle.h:1448
T & MaxLinearSpeedSq()
Definition ParticleHandle.h:1247
void ResetSmoothedVelocities()
Definition ParticleHandle.h:1199
void SetGravityEnabled(bool bEnabled)
Definition ParticleHandle.h:1292
ESleepType SleepType() const
Definition ParticleHandle.h:1453
void SetWSmooth(const TVector< T, d > &InWSmooth)
Definition ParticleHandle.h:1150
const TVector< T, d > & AngularAcceleration() const
Definition ParticleHandle.h:1161
void SetAngularEtherDrag(const T &InAngularEtherDrag)
Definition ParticleHandle.h:1244
void SetPreWf(const TVector< FRealSingle, d > &InPreW)
Definition ParticleHandle.h:1093
void SetCollisionParticles(TParticles< T, d > &&Points)
Definition ParticleHandle.h:1057
const TVector< T, d > & VSmooth() const
Definition ParticleHandle.h:1144
void SetInvM(const T &InInvM)
Definition ParticleHandle.h:1221
bool GravityEnabled() const
Definition ParticleHandle.h:1287
void SetDisabled(const bool InDisabled)
Definition ParticleHandle.h:1075
void SetDisableCounter(int8 DisableCounter)
Definition ParticleHandle.h:1472
void SetPreVf(const TVector< FRealSingle, d > &InPreV)
Definition ParticleHandle.h:1084
void SetI(const TVec3< FRealSingle > &InI)
Definition ParticleHandle.h:1208
TVec3< FRealSingle > ConditionedInvI() const
Definition ParticleHandle.h:1235
const TVector< FRealSingle, d > GetPreVf() const
Definition ParticleHandle.h:1083
int32 GravityGroupIndex() const
Definition ParticleHandle.h:1297
void SetInvIConditioning(const TVec3< FRealSingle > &InInvIConditioning)
Definition ParticleHandle.h:1232
const TRotation< T, d > QCom() const
Definition ParticleHandle.h:1124
const TVec3< FRealSingle > & InvIConditioning() const
Definition ParticleHandle.h:1231
uint32 CollisionConstraintFlags() const
Definition ParticleHandle.h:1067
void SetQf(const TRotation< FRealSingle, d > &InQ)
Definition ParticleHandle.h:1116
FRealSingle InitialOverlapDepenetrationVelocity() const
Definition ParticleHandle.h:1254
void SetInvI(const TVec3< FRealSingle > &InInvI)
Definition ParticleHandle.h:1213
int8 SleepCounter() const
Definition ParticleHandle.h:1457
const TVector< T, d > PCom() const
Definition ParticleHandle.h:1120
void SetControlFlags(const FRigidParticleControlFlags Flags)
Definition ParticleHandle.h:1282
const TVec3< FRealSingle > & I() const
Definition ParticleHandle.h:1206
void SetSolverBodyIndex(const int32 InSolverBodyIndex)
Definition ParticleHandle.h:1096
void InitTransform(const FVec3 &InP, const FRotation3 &InQ)
Definition ParticleHandle.h:1127
T & LinearEtherDrag()
Definition ParticleHandle.h:1239
void SetInertiaConditioningDirty()
Definition ParticleHandle.h:1413
bool Sleeping() const
Definition ParticleHandle.h:1269
TUniquePtr< TBVHParticles< T, d > > & CollisionParticles()
Definition ParticleHandle.h:1053
static TUniquePtr< TPBDRigidParticleHandleImp< T, d, bPersistent > > CreateParticleHandle(TSerializablePtr< TPBDRigidParticles< T, d > > InParticles, int32 InParticleIdx, int32 InHandleIdx, const FPBDRigidParticleParameters &Params=FPBDRigidParticleParameters())
Definition ParticleHandle.h:1035
void ClearUseIgnoreCollisionManager()
Definition ParticleHandle.h:1433
TSerializablePtr< TPBDRigidParticleHandleImp< T, d, bPersistent > > ToSerializable() const
Definition ParticleHandle.h:1040
T & AngularEtherDrag()
Definition ParticleHandle.h:1243
bool IsMovingKinematic() const
Definition ParticleHandle.h:1438
int32 CollisionParticlesSize() const
Definition ParticleHandle.h:1055
void SetTransformPQCom(const TVector< T, d > &InPCom, const TRotation< T, d > &InQCom)
Definition ParticleHandle.h:1136
const TVector< T, d > GetPreV() const
Definition ParticleHandle.h:1081
TVector< T, d > & LinearImpulseVelocity()
Definition ParticleHandle.h:1169
void SetDynamics(const FParticleDynamics &Dynamics)
Definition ParticleHandle.h:1176
void SetOneWayInteraction(bool bEnabled)
Definition ParticleHandle.h:1387
const TVector< T, d > PreW() const
Definition ParticleHandle.h:1087
UE_DEPRECATED(5.3, "No longer supported") int32 &IslandIndex()
Definition ParticleHandle.h:1481
bool InertiaConditioningEnabled() const
Definition ParticleHandle.h:1392
const TVec3< FRealSingle > & InvI() const
Definition ParticleHandle.h:1211
void SetAngularAcceleration(const TVector< T, d > &InAngularAcceleration)
Definition ParticleHandle.h:1163
void SetM(const T &InM)
Definition ParticleHandle.h:1217
void SetGyroscopicTorqueEnabled(bool bEnabled)
Definition ParticleHandle.h:1322
void SetLinearImpulseVelocity(const TVector< T, d > &InLinearImpulseVelocity, bool bInvalidate=false)
Definition ParticleHandle.h:1170
void SetSleeping(bool bSleeping)
Definition ParticleHandle.h:1270
UE_DEPRECATED(5.3, "No longer supported") int32 IslandIndex() const
Definition ParticleHandle.h:1480
const TRotation< FRealSingle, d > GetQf() const
Definition ParticleHandle.h:1115
void CollisionParticlesInitIfNeeded()
Definition ParticleHandle.h:1056
void SetCenterOfMass(const TVector< T, d > &InCenterOfMass, bool bInvalidate=false)
Definition ParticleHandle.h:1224
void AddCollisionConstraintFlag(const ECollisionConstraintFlags Flag)
Definition ParticleHandle.h:1064
void SetIterationSettings(const Private::FIterationSettings &IterationSettingsIn)
Definition ParticleHandle.h:1362
const TRotation< T, d > Q() const
Definition ParticleHandle.h:1110
TVector< T, d > & AngularAcceleration()
Definition ParticleHandle.h:1162
void AddForce(const TVector< T, d > &InF, bool bInvalidate=true)
Definition ParticleHandle.h:1156
void SetObjectStateLowLevel(EObjectStateType InState)
Definition ParticleHandle.h:1263
void ClearInertiaConditioningDirty()
Definition ParticleHandle.h:1418
int32 CollisionGroup() const
Definition ParticleHandle.h:1059
void SetCollisionGroup(const int32 InCollisionGroup)
Definition ParticleHandle.h:1061
void SetDynamicMisc(const FParticleDynamicMisc &DynamicMisc, FPBDRigidsEvolutionBase &Evolution)
Definition ParticleHandle.h:1197
void SetPreObjectStateLowLevel(EObjectStateType InState)
Definition ParticleHandle.h:1264
const TVector< T, d > GetPreW() const
Definition ParticleHandle.h:1090
Private::FIterationSettings IterationSettings() const
Definition ParticleHandle.h:1357
bool & Disabled()
Definition ParticleHandle.h:1071
Definition ParticleHandle.h:3386
void SetVelocitySolverIterations(const int32 VelocitySolverIterationCount)
Definition ParticleHandle.h:3522
void SetMassProps(const FParticleMassProps &InProps)
Definition ParticleHandle.h:3651
void SetDisabled(bool bInDisabled)
Definition ParticleHandle.h:3540
void SetObjectState(const EObjectStateType InState, bool bAllowEvents=false, bool bInvalidate=true)
Definition ParticleHandle.h:3705
void SetDynamics(const FParticleDynamics &InDynamics, bool bInvalidate=true)
Definition ParticleHandle.h:3605
void SetRotationOfMass(const TRotation< T, d > &InRotationOfMass, bool bInvalidate=true)
Definition ParticleHandle.h:3646
void SetControlFlags(const FRigidParticleControlFlags &Flags)
Definition ParticleHandle.h:3771
void ClearEvents()
Definition ParticleHandle.h:3753
static TUniquePtr< TPBDRigidParticle< T, d > > CreateParticle(const FPBDRigidParticleParameters &DynamicParams=FPBDRigidParticleParameters())
Definition ParticleHandle.h:3412
void SetM(const T &InM, bool bInvalidate=true)
Definition ParticleHandle.h:3628
T InvM() const
Definition ParticleHandle.h:3633
void SetAcceleration(const FVec3 &Acceleration, bool bInvalidate=true)
Definition ParticleHandle.h:3553
void SetInertiaConditioningEnabled(bool bInEnabled)
Definition ParticleHandle.h:3533
void ClearTorques(bool bInvalidate=true)
Definition ParticleHandle.h:3588
void SetSleepType(ESleepType SleepType, bool bAllowEvents=false, bool bInvalidate=true)
Definition ParticleHandle.h:3738
void SetInvI(const TVec3< FRealSingle > &InInvI, bool bInvalidate=true)
Definition ParticleHandle.h:3622
const TVector< T, d > AngularImpulseVelocity() const
Definition ParticleHandle.h:3599
void SetMACDEnabled(bool bInEnabled)
Definition ParticleHandle.h:3499
TPBDRigidParticleHandle< T, d > FHandle
Definition ParticleHandle.h:3388
void SetSleepThresholdMultiplier(FRealSingle Multiplier)
Definition ParticleHandle.h:3692
void SetGravityGroupIndex(int32 NewIndex)
Definition ParticleHandle.h:3451
const TVector< T, d > LinearImpulseVelocity() const
Definition ParticleHandle.h:3593
const TRotation< T, d > & RotationOfMass() const
Definition ParticleHandle.h:3645
void SetUpdateKinematicFromSimulation(const bool bUpdateKinematicFromSimulation)
Definition ParticleHandle.h:3457
const TVector< T, d > AngularAcceleration() const
Definition ParticleHandle.h:3581
bool GyroscopicTorqueEnabled() const
Definition ParticleHandle.h:3462
void SetInitialized(const bool InInitialized)
Definition ParticleHandle.h:3547
void SetGravityEnabled(const bool bInEnabled)
Definition ParticleHandle.h:3445
T MaxLinearSpeedSq() const
Definition ParticleHandle.h:3673
bool GravityEnabled() const
Definition ParticleHandle.h:3444
void SetCCDEnabled(bool bInEnabled)
Definition ParticleHandle.h:3493
void SetLinearEtherDrag(const T &InLinearEtherDrag)
Definition ParticleHandle.h:3662
uint32 CollisionConstraintFlags() const
Definition ParticleHandle.h:3485
FRigidParticleControlFlags ControlFlags() const
Definition ParticleHandle.h:3766
T M() const
Definition ParticleHandle.h:3627
static TPBDRigidParticle< T, d > * Cast(TGeometryParticle< T, d > *Particle)
Definition ParticleHandle.h:3756
void SetCollisionGroup(const int32 InCollisionGroup)
Definition ParticleHandle.h:3432
T AngularEtherDrag() const
Definition ParticleHandle.h:3667
bool UpdateKinematicFromSimulation() const
Definition ParticleHandle.h:3456
void SetAngularAcceleration(const TVector< T, d > &InTorque, bool bInvalidate=true)
Definition ParticleHandle.h:3582
void SetCenterOfMass(const TVector< T, d > &InCenterOfMass, bool bInvalidate=true)
Definition ParticleHandle.h:3640
virtual void SyncRemoteDataImp(FDirtyPropertiesManager &Manager, int32 DataIdx, const FDirtyChaosProperties &RemoteData) const
Definition ParticleHandle.h:3786
void SetGyroscopicTorqueEnabled(const bool bGyroscopicTorqueEnabled)
Definition ParticleHandle.h:3463
void ClearForces(bool bInvalidate=true)
Definition ParticleHandle.h:3564
void AddForce(const TVector< T, d > &InF, bool bInvalidate=true)
Definition ParticleHandle.h:3558
bool CCDEnabled() const
Definition ParticleHandle.h:3492
bool IsInitialized() const
Definition ParticleHandle.h:3546
void SetPositionSolverIterations(const int32 PositionSolverIterationCount)
Definition ParticleHandle.h:3517
const TVec3< FRealSingle > & InvI() const
Definition ParticleHandle.h:3621
bool InertiaConditioningEnabled() const
Definition ParticleHandle.h:3532
static const TPBDRigidParticle< T, d > * Cast(const TGeometryParticle< T, d > *Particle)
Definition ParticleHandle.h:3761
bool MACDEnabled() const
Definition ParticleHandle.h:3498
const TVector< T, d > & CenterOfMass() const
Definition ParticleHandle.h:3639
void SetAngularImpulseVelocity(const TVector< T, d > &InAngularImpulseVelocity, bool bInvalidate=true)
Definition ParticleHandle.h:3600
int32 GravityGroupIndex() const
Definition ParticleHandle.h:3450
FRealSingle SleepThresholdMultiplier() const
Definition ParticleHandle.h:3691
void SetMaxAngularSpeedSq(const T &InAngularSpeed)
Definition ParticleHandle.h:3680
void SetCollisionConstraintFlags(const uint32 Flags)
Definition ParticleHandle.h:3487
const TVec3< FRealSingle > & I() const
Definition ParticleHandle.h:3615
void ResetSmoothedVelocities()
Definition ParticleHandle.h:3610
void SetDynamicMisc(const FParticleDynamicMisc &DynamicMisc)
Definition ParticleHandle.h:3656
void SetI(const TVec3< FRealSingle > &InI, bool bInvalidate=true)
Definition ParticleHandle.h:3616
EObjectStateType ObjectState() const
Definition ParticleHandle.h:3704
void ApplyDynamicsWeight(const FReal DynamicsWeight)
Definition ParticleHandle.h:3569
void SetAngularEtherDrag(const T &InAngularEtherDrag)
Definition ParticleHandle.h:3668
bool OneWayInteraction() const
Definition ParticleHandle.h:3468
void SetOneWayInteraction(const bool bInEnabled)
Definition ParticleHandle.h:3469
void SetIsland(const int32 InIsland)
Definition ParticleHandle.h:3699
bool PartialIslandSleepAllowed() const
Definition ParticleHandle.h:3504
int32 CollisionGroup() const
Definition ParticleHandle.h:3431
Private::FIterationSettings IterationSettings() const
Definition ParticleHandle.h:3510
bool Disabled() const
Definition ParticleHandle.h:3538
void Serialize(FChaosArchive &Ar) override
Definition ParticleHandle.h:3417
T MaxAngularSpeedSq() const
Definition ParticleHandle.h:3679
void SetMaxLinearSpeedSq(const T &InLinearSpeed)
Definition ParticleHandle.h:3674
EWakeEventEntry GetWakeEvent()
Definition ParticleHandle.h:3754
FRealSingle InitialOverlapDepenetrationVelocity() const
Definition ParticleHandle.h:3685
void SetInvM(const T &InInvM, bool bInvalidate=true)
Definition ParticleHandle.h:3634
void SetPartialIslandSleepAllowed(bool bInEnabled)
Definition ParticleHandle.h:3505
void SetProjectionSolverIterations(const int32 ProjectionSolverIterationCount)
Definition ParticleHandle.h:3527
ESleepType SleepType() const
Definition ParticleHandle.h:3748
const TVector< T, d > Acceleration() const
Definition ParticleHandle.h:3552
void AddCollisionConstraintFlag(const ECollisionConstraintFlags Flag)
Definition ParticleHandle.h:3475
void SetInitialOverlapDepenetrationVelocity(FRealSingle InVel)
Definition ParticleHandle.h:3686
void SetIterationSettings(const Private::FIterationSettings &SolverIterationSettingsIn)
Definition ParticleHandle.h:3512
void SetLinearImpulseVelocity(const TVector< T, d > &InLinearImpulseVelocity, bool bInvalidate=true)
Definition ParticleHandle.h:3594
void RemoveCollisionConstraintFlag(const ECollisionConstraintFlags Flag)
Definition ParticleHandle.h:3480
int32 Island() const
Definition ParticleHandle.h:3697
T LinearEtherDrag() const
Definition ParticleHandle.h:3661
Definition PBDRigidParticles.h:22
Definition ParticleHandle.h:346
TParticleHandleBase(TSerializablePtr< TParticlesType > InParticles, int32 InParticleIdx)
Definition ParticleHandle.h:359
void SetSOALowLevel(TGeometryParticles< T, d > *InParticles)
Definition ParticleHandle.h:391
TGeometryParticles< T, d > * GeometryParticles
Definition ParticleHandle.h:403
EParticleType GetParticleType() const
Definition ParticleHandle.h:398
~TParticleHandleBase()
Definition ParticleHandle.h:377
TKinematicGeometryParticles< T, d > * KinematicGeometryParticles
Definition ParticleHandle.h:404
EParticleType Type
Definition ParticleHandle.h:413
TSerializablePtr< TGeometryParticles< T, d > > SerializableGeometryParticles
Definition ParticleHandle.h:402
TParticleHandleBase(TGeometryParticles< T, d > *InParticles, int32 InParticleIdx)
Definition ParticleHandle.h:367
T TType
Definition ParticleHandle.h:348
void Serialize(FChaosArchive &Ar)
Definition ParticleHandle.h:381
TPBDRigidClusteredParticles< T, d > * PBDRigidClusteredParticles
Definition ParticleHandle.h:406
int32 ParticleIdx
Definition ParticleHandle.h:412
TPBDRigidParticles< T, d > * PBDRigidParticles
Definition ParticleHandle.h:405
static constexpr int D
Definition ParticleHandle.h:349
TParticleHandleBase()
Definition ParticleHandle.h:351
Definition Particles.h:32
Definition Serializable.h:10
void SetFromRawLowLevel(const T *InPtr)
Definition Serializable.h:46
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 PhysicsProxyBase.h:97
Chaos::FPhysicsSolverBase * GetSolverBase() const
Definition PhysicsProxyBase.h:112
virtual void * GetHandleUnsafe() const
Definition PhysicsProxyBase.h:121
SOLVER_TYPE * GetSolver() const
Definition PhysicsProxyBase.h:110
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition SharedPointer.h:692
Definition UniquePtr.h:107
Definition GeometryCollectionComponent.h:578
bool ForceDeepCopyOnModifyGeometry()
Definition ParticleHandle.cpp:23
CHAOS_API bool bEnableAsyncInitBody
Definition AsyncInitBodyHelper.cpp:10
FString EmptyParticleName
Definition GeometryParticles.cpp:20
FIterationSettings8 FIterationSettings
Definition IterationSettings.h:83
Definition SkeletalMeshComponent.h:307
bool GeometryParticleSleeping(const FConcrete &Concrete)
Definition ParticleHandle.h:147
EParticleType
Definition GeometryParticlesfwd.h:11
void UpdateParticleShapes(const TArray< ParticleType * > &ShapesParticles, const FImplicitObject *ImplicitObject, const FShapesArray &ShapesArray, const int32 ActorId, const int32 ComponentID)
Definition ParticleHandle.h:3246
ESyncState
Definition GeometryParticlesfwd.h:29
void KinematicGeometryParticleDefaultConstruct(FConcrete &Concrete, const FKinematicGeometryParticleParameters &Params)
Definition ParticleHandle.h:96
EResimType
Definition GeometryParticles.h:143
TPBDRigidParticleHandle< FReal, 3 > FPBDRigidParticleHandle
Definition ParticleHandleFwd.h:60
void PBDRigidParticleDefaultConstruct(FConcrete &Concrete, const FPBDRigidParticleParameters &Params)
Definition ParticleHandle.h:110
FORCEINLINE_DEBUGGABLE uint32 GetChaosCollisionChannelAndExtraFilter(uint32 Word3, uint8 &OutMaskFilter)
Definition ParticleHandle.h:183
TRigidTransform< FReal, 3 > FRigidTransform3
Definition Core.h:22
CHAOS_API int32 AccelerationStructureSplitStaticAndDynamic
Definition PBDRigidsEvolution.cpp:40
EChaosPropertyFlags
Definition ParticleDirtyFlags.h:869
FChaosArchive & operator<<(FChaosArchive &Ar, FRigidParticleControlFlags &Flags)
Definition RigidParticleControlFlags.cpp:15
FORCEINLINE_DEBUGGABLE bool PrePreQueryFilterImp(const FCollisionFilterData &QueryFilterData, const FCollisionFilterData &UnionFilterData)
Definition ParticleHandle.h:161
constexpr EChaosPropertyFlags ChaosPropertyToFlag(EChaosProperty Prop)
Definition ParticleDirtyFlags.h:875
FRealDouble FReal
Definition Real.h:22
void GeometryParticleDefaultConstruct(FConcrete &Concrete, const FGeometryParticleParameters &Params)
Definition ParticleHandle.h:84
ECollisionConstraintFlags
Flags for user-control over per-particle collision behaviour.
Definition CollisionConstraintFlags.h:22
void SetObjectStateHelper(IPhysicsProxyBase &Proxy, FPBDRigidParticleHandle &Rigid, EObjectStateType InState, bool bAllowEvents, bool bInvalidate)
Definition ParticleHandle.cpp:31
EObjectStateType
Definition ObjectState.h:10
EChaosCollisionTraceFlag
Definition Particles.h:231
TGeometryParticleHandle< T, d > * GetHandleHelper(TGeometryParticleHandle< T, d > *Handle)
Definition ParticleHandle.h:423
@ ChaosNumCollisionChannelBits
Definition CollisionFilterBits.h:7
float FRealSingle
Definition Real.h:14
@ ChaosNumExtraFilterBits
Definition CollisionFilterBits.h:6
TVector< FReal, 3 > FVec3
Definition Core.h:17
ESleepType
Definition RigidParticles.h:23
EGeometryParticleListMask
Definition GeometryParticlesfwd.h:115
TEnableIf< T::AlwaysSerializable, TSerializablePtr< T > >::Type & AsAlwaysSerializable(T *&Ptr)
Definition Serializable.h:97
TArray< FShapeInstanceProxyPtr, TInlineAllocator< 1 > > FShapeInstanceProxyArray
Definition ShapeInstanceFwd.h:24
EWakeEventEntry
Definition ParticleHandle.h:1730
TKinematicGeometryParticleHandle< FReal, 3 > FKinematicGeometryParticleHandle
Definition ParticleHandleFwd.h:42
@ Dynamic
Definition SpatialAccelerationCollection.h:22
void PBDRigidClusteredParticleDefaultConstruct(FConcrete &Concrete, const FPBDRigidParticleParameters &Params)
Definition ParticleHandle.h:141
FORCEINLINE_DEBUGGABLE bool PrePreSimFilterImp(const FCollisionFilterData &SimFilterData, const FCollisionFilterData &OtherSimFilterData)
Definition ParticleHandle.h:192
Definition OverriddenPropertySet.cpp:45
FAutoConsoleVariableRef CVars[]
Definition MassProcessingPhaseManager.cpp:29
@ false
Definition radaudio_common.h:23
Definition PBDRigidClusteredParticles.h:25
FPBDRigidParticleHandle * Id
Definition PBDRigidClusteredParticles.h:34
Definition ParticleDirtyFlags.h:722
Definition ParticleHandle.h:47
FGeometryParticleParameters()
Definition ParticleHandle.h:48
bool bDisabled
Definition ParticleHandle.h:50
Definition ParticleHandle.h:57
FKinematicGeometryParticleParameters()
Definition ParticleHandle.h:58
Definition ParticleHandle.h:67
FPBDRigidParticleParameters()
Definition ParticleHandle.h:68
bool bStartSleeping
Definition ParticleHandle.h:74
bool bCCDEnabled
Definition ParticleHandle.h:76
bool bGravityEnabled
Definition ParticleHandle.h:75
Definition ParticleDirtyFlags.h:37
Definition GeometryParticlesfwd.h:59
Definition GeometryParticlesfwd.h:87
bool IsValid() const
Definition GeometryParticlesfwd.h:92
Definition PBDRigidClusteredParticles.h:48
Definition ParticleHandle.h:880
Definition CollisionFilterData.h:46
uint32 Word3
Definition CollisionFilterData.h:50
uint32 Word0
Definition CollisionFilterData.h:47
uint32 Word2
Definition CollisionFilterData.h:49
uint32 Word1
Definition CollisionFilterData.h:48
static CORE_API const FColor Red
Definition Color.h:752
CORE_API static const FGuid GUID
Definition ExternalPhysicsCustomObjectVersion.h:144
@ SerializeShapeWorldSpaceBounds
Definition ExternalPhysicsCustomObjectVersion.h:61
@ SerializeHashResult
Definition ExternalPhysicsCustomObjectVersion.h:55
@ UniquePayloadIdx
Definition ExternalPhysicsCustomObjectVersion.h:115
Definition PhysSubstepTasks.h:18
Definition NumericLimits.h:41