Navigation
API > API/Plugins > API/Plugins/Mover
WARNING - This class will be removed. Please use UChaosMoverBackend instead
Base class for liaison components to act as a middleman between an actor's Mover component and the Chaos physics network prediction system to move the Mover's updated component on the physics thread (PT).
This is accomplished by registering a FPhysicsMoverManagerAsyncCallback and exposing the game thread (GT) and PT methods for the TSimCallback to virtual methods on this liaison.
| Name | UMoverNetworkPhysicsLiaisonComponentBase |
| Type | class |
| Header File | /Engine/Plugins/Experimental/Mover/Source/Mover/Public/Backends/MoverNetworkPhysicsLiaisonBase.h |
| Include Path | #include "Backends/MoverNetworkPhysicsLiaisonBase.h" |
Syntax
UCLASS (MinimalAPI, Abstract, Within=MoverComponent)
class UMoverNetworkPhysicsLiaisonComponentBase :
public UActorComponent ,
public IMoverBackendLiaisonInterface
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UActorComponent → UMoverNetworkPhysicsLiaisonComponentBase
Implements Interfaces
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UMoverNetworkPhysicsLiaisonComponentBase() |
Backends/MoverNetworkPhysicsLiaisonBase.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool CanCreatePhysics() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual void ConsumeOutput_External
(
const FPhysicsMoverAsyncOutput& Output, |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
void GetCurrentInputData
(
FMoverInputCmdContext& InputCmd |
Required for Network Physics Rewind/Resim data Internal functions, do not use on the game thread | Backends/MoverNetworkPhysicsLiaisonBase.h | |
void GetCurrentStateData
(
FMoverSyncState& SyncState |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
Chaos::FUniqueIdx GetUniqueIdx() |
Used by the manager to uniquely identify the component. | Backends/MoverNetworkPhysicsLiaisonBase.h | |
virtual void OnContactModification_Internal
(
const FPhysicsMoverAsyncInput& Input, |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual void PostPhysicsUpdate_External() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
void PreSimulate_Internal
(
const FPhysicsMoverSimulationTickParams& TickParams, |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
void ProcessInputs_Internal
(
int32 PhysicsStep, |
"Internal" = Called on the Physics Thread (PT) | Backends/MoverNetworkPhysicsLiaisonBase.h | |
void ProduceInput_External
(
int32 PhysicsStep, |
"External" = Called on the Game Thread (GT) | Backends/MoverNetworkPhysicsLiaisonBase.h | |
void SetCurrentInputData
(
const FMoverInputCmdContext& InputCmd |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
void SetCurrentStateData
(
const FMoverSyncState& SyncState |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
bool ValidateInputData
(
FMoverInputCmdContext& InputCmd |
Backends/MoverNetworkPhysicsLiaisonBase.h |
Overridden from UActorComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void BeginPlay() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual void EndPlay
(
const EEndPlayReason::Type EndPlayReason |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual void InitializeComponent() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual void OnRegister() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual void OnUnregister() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual bool ShouldCreatePhysicsState() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual void UninitializeComponent() |
Backends/MoverNetworkPhysicsLiaisonBase.h |
Overridden from IMoverBackendLiaisonInterface
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual int32 GetCurrentSimFrame() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual double GetCurrentSimTimeMs() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual EDataValidationResult ValidateData
(
FDataValidationContext& Context, |
Backends/MoverNetworkPhysicsLiaisonBase.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool CanProcessInputs_Internal
(
const FPhysicsMoverAsyncInput& Input |
Called at the beginning of PreSimulate_Internal to verify that everything is in order. | Backends/MoverNetworkPhysicsLiaisonBase.h | |
virtual bool CanSimulate_Internal
(
const FPhysicsMoverSimulationTickParams& TickParams, |
Called at the beginning of PreSimulate_Internal to verify that everything is in order. | Backends/MoverNetworkPhysicsLiaisonBase.h | |
Chaos::FPBDRigidParticle * GetControlledParticle_External() |
Convenience getters to skip the read interface boilerplate on the Game (aka External) or Physics (aka Internal) threads | Backends/MoverNetworkPhysicsLiaisonBase.h | |
Chaos::FPBDRigidParticleHandle * GetControlledParticle_Internal() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual Chaos::FPhysicsObject * GetControlledPhysicsObject() |
Override in child classes to return the chaos particle for the component the Mover wants to move. | Backends/MoverNetworkPhysicsLiaisonBase.h | |
FMoverTimeStep GetCurrentAsyncMoverTimeStep_External() |
Time step on the game thread when using async physics. Uses physics results time. | Backends/MoverNetworkPhysicsLiaisonBase.h | |
FMoverTimeStep GetCurrentAsyncMoverTimeStep_Internal() |
Time step on the physics thread when using async physics. | Backends/MoverNetworkPhysicsLiaisonBase.h | |
FMoverTimeStep GetCurrentMoverTimeStep
(
float DeltaSeconds |
Time step on the game thread when using non-async physics. | Backends/MoverNetworkPhysicsLiaisonBase.h | |
UMoverComponent & GetMoverComponent() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
int32 GetNetworkPhysicsTickOffset_External() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
int32 GetNetworkPhysicsTickOffset_Internal() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
Chaos::FPhysicsSolver * GetPhysicsSolver() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual void HandleComponentPhysicsStateChanged
(
UPrimitiveComponent* ChangedComponent, |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
void HandleOwningPawnControllerChanged_Server
(
APawn* OwnerPawn, |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual bool HasValidState() |
Catchall to verify that the state of this object is valid (called from both the PT and the GT) | Backends/MoverNetworkPhysicsLiaisonBase.h | |
void InitializeSimOutputData() |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
virtual void PerformPreSimulate_Internal
(
const FPhysicsMoverSimulationTickParams& TickParams, |
Actually do the PreSimulate work on the PT. | Backends/MoverNetworkPhysicsLiaisonBase.h | |
virtual void PerformProcessInputs_Internal
(
int32 PhysicsStep, |
Actually do the ProcessInputs work on the PT. | Backends/MoverNetworkPhysicsLiaisonBase.h | |
virtual void PerformProduceInput_External
(
float DeltaTime, |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
void TeleportParticleBy_Internal
(
Chaos::FGeometryParticleHandle& Particle, |
Backends/MoverNetworkPhysicsLiaisonBase.h | ||
void WakeParticleIfSleeping
(
Chaos::FGeometryParticleHandle* Particle |
Backends/MoverNetworkPhysicsLiaisonBase.h |