20class FJointConstraint;
22class FPBDRigidsEvolutionGBF;
24struct FDirtyJointConstraintData;
26template <
bool bExternal>
27class TThreadedJointConstraintPhysicsProxyBase;
107 bool bInitialized =
false;
112template <
bool bExternal>
117#define CHAOS_INNER_JOINT_PROPERTY(OuterProp, FuncName, Inner, InnerType)\
118 const InnerType& Get##FuncName() const { return ReadRef([](const auto& Data){ return Data.Inner;}); }\
119 void Set##FuncName(const InnerType& Val) { Write([&Val](auto& Data){ Data.Inner = Val;}); }\
125 void VerifyContext()
const
127#if PHYSICS_THREAD_CONTEXT
146 template <
typename TLambda>
149 template <
typename TLambda>
161 if (FRewindData* RewindData =
SolverBase->GetRewindData())
163 RewindData->MarkDirtyJointFromPT(*
GetHandle());
#define ensure( InExpression)
Definition AssertionMacros.h:464
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition ParticleDirtyFlags.h:1129
Definition ParticleDirtyFlags.h:1039
Definition JointConstraintProxy.h:33
FJointConstraintPhysicsProxy()=delete
FORCEINLINE Chaos::FJointConstraintHandle_Internal * GetPhysicsThreadAPI()
Definition JointConstraintProxy.h:67
void BufferPhysicsResults(FDirtyJointConstraintData &Buffer)
Definition JointConstraintProxy.cpp:46
void SetHandle(FPBDJointConstraintHandle *InHandle)
Definition JointConstraintProxy.h:88
void CHAOS_API DestroyOnPhysicsThread(FPBDRigidsSolver *InSolver)
Definition JointConstraintProxy.cpp:137
FORCEINLINE const Chaos::FJointConstraintHandle_Internal * GetPhysicsThreadAPI() const
Definition JointConstraintProxy.h:73
bool CHAOS_API PullFromPhysicsState(const FDirtyJointConstraintData &Buffer, const int32 SolverSyncTimestamp)
Definition JointConstraintProxy.cpp:67
FJointConstraint * GetConstraint()
Definition JointConstraintProxy.h:90
static FGeometryParticleHandle * GetParticleHandleFromProxy(IPhysicsProxyBase *ProxyBase)
Definition JointConstraintProxy.cpp:33
FPBDJointConstraintHandle * GetHandle()
Definition JointConstraintProxy.h:83
virtual void * GetHandleUnsafe() const override
Definition JointConstraintProxy.h:86
const FJointConstraint * GetConstraint() const
Definition JointConstraintProxy.h:91
void CHAOS_API PushStateOnGameThread(FDirtyPropertiesManager &Manager, int32 DataIdx, FDirtyChaosProperties &RemoteData)
Definition JointConstraintProxy.cpp:155
const FPBDJointConstraintHandle * GetHandle() const
Definition JointConstraintProxy.h:84
FORCEINLINE Chaos::FJointConstraintHandle_External & GetGameThreadAPI()
Definition JointConstraintProxy.h:56
void CHAOS_API InitializeOnPhysicsThread(FPBDRigidsSolver *InSolver, FDirtyPropertiesManager &Manager, int32 DataIdx, FDirtyChaosProperties &RemoteData)
Definition JointConstraintProxy.cpp:101
FORCEINLINE const Chaos::FJointConstraintHandle_External & GetGameThreadAPI() const
Definition JointConstraintProxy.h:61
void CHAOS_API PushStateOnPhysicsThread(FPBDRigidsSolver *InSolver, const FDirtyPropertiesManager &Manager, int32 DataIdx, const FDirtyChaosProperties &RemoteData)
Definition JointConstraintProxy.cpp:164
void CHAOS_API DestroyOnGameThread()
Definition JointConstraintProxy.cpp:148
Definition PBDJointConstraintData.h:38
Definition PBDJointConstraints.h:28
Definition PBDRigidsSolver.h:84
Definition ParticleHandle.h:436
Definition JointConstraintProxy.h:114
Definition PhysicsProxyBase.h:97
Chaos::FPhysicsSolverBase * GetSolverBase() const
Definition PhysicsProxyBase.h:112
Definition SkeletalMeshComponent.h:307
FORCEINLINE bool IsInPhysicsThreadContext()
Definition Threading.h:280
FORCEINLINE bool IsInGameThreadContext()
Definition Threading.h:285
Definition PullPhysicsDataImp.h:148