UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PhysicsReplicationCache.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 PhysicsReplicationCache.h
5 Cache physics state from PT on GT for actors using physics replication.
6=============================================================================*/
7
8#pragma once
9
12
14class UPrimitiveComponent;
15
16// -------------- Game Thread --------------
17
19{
20public:
22
24
26 const FRigidBodyState* GetStateFromReplicationCache(UPrimitiveComponent* RootComponent, int32& OutSolverFrame);
27
29 void RegisterForReplicationCache(UPrimitiveComponent* RootComponent);
30
32 void UnregisterForReplicationCache(UPrimitiveComponent* RootComponent);
33
34private:
36 void ProcessAsyncOutput();
37
38private:
39 int32 SolverFrame = 0;
41
42 FPhysScene_Chaos* PhysicsScene;
43 FDelegateHandle DelegateInjectInputs_External;
44
46 class FPhysicsReplicationCacheAsync* AsyncPhysicsReplicationCache;
47};
48
49
50
51// -------------- Async Marshaling --------------
52
65
78
79
80
81// -------------- Physics Thread --------------
82
85{
86public:
89
90 void SetAccessTime(double Time) { AccessTime = Time; }
91 const double GetAccessTime() const { return AccessTime; }
92 FRigidBodyState& GetState() { return StateData; }
93
94private:
95 double AccessTime;
96 FRigidBodyState StateData;
97};
98
101 FPhysicsReplicationCacheAsyncInput,
102 FPhysicsReplicationCacheAsyncOutput,
103 Chaos::ESimCallbackOptions::Presimulate | Chaos::ESimCallbackOptions::PostSolve | Chaos::ESimCallbackOptions::PhysicsObjectUnregister>
104{
105 virtual void OnPreSimulate_Internal() override;
106 virtual void OnPostSolve_Internal() override;
107
109 virtual void OnPhysicsObjectUnregistered_Internal(Chaos::FConstPhysicsObjectHandle PhysicsObject) override;
110
112 void ProcessAsyncInputs();
113
115 void PopulateReplicationCache_Internal();
116
117private:
119 bool bUpdateAfterRemoval = false;
120};
121
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition SimCallbackObject.h:521
Definition IDelegateInstance.h:14
Definition PhysScene_Chaos.h:116
Definition PhysicsReplicationCache.h:104
Definition PhysicsReplicationCache.h:19
void RegisterForReplicationCache(UPrimitiveComponent *RootComponent)
Definition PhysicsReplicationCache.cpp:121
const FRigidBodyState * GetStateFromReplicationCache(UPrimitiveComponent *RootComponent, int32 &OutSolverFrame)
Definition PhysicsReplicationCache.cpp:47
void UnregisterForReplicationCache(UPrimitiveComponent *RootComponent)
Definition PhysicsReplicationCache.cpp:138
virtual ~FPhysicsReplicationCache()
Definition PhysicsReplicationCache.cpp:35
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition PhysicsObjectInternal.h:16
Definition SimCallbackInput.h:34
Definition SimCallbackInput.h:18
Definition PhysicsReplicationCache.h:55
void Reset()
Definition PhysicsReplicationCache.h:59
TArray< Chaos::FConstPhysicsObjectHandle > UnregisterObjects
Definition PhysicsReplicationCache.h:57
TArray< Chaos::FConstPhysicsObjectHandle > AccessedObjects
Definition PhysicsReplicationCache.h:56
Definition PhysicsReplicationCache.h:68
int32 SolverFrame
Definition PhysicsReplicationCache.h:69
TArray< FRigidBodyState > ReplicationCache_Value_Marshal
Definition PhysicsReplicationCache.h:71
TArray< Chaos::FConstPhysicsObjectHandle > ReplicationCache_Key_Marshal
Definition PhysicsReplicationCache.h:70
void Reset()
Definition PhysicsReplicationCache.h:73
Definition PhysicsReplicationCache.h:85
FPhysicsReplicationCacheData()
Definition PhysicsReplicationCache.h:87
FRigidBodyState & GetState()
Definition PhysicsReplicationCache.h:92
void SetAccessTime(double Time)
Definition PhysicsReplicationCache.h:90
const double GetAccessTime() const
Definition PhysicsReplicationCache.h:91
Definition ReplicatedState.h:86