UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PhysicsProxy.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Chaos/Declares.h"
9#include "UObject/GCObject.h"
10//
11// NOTE: This file is widely included in Engine code.
12// Avoid including Chaos headers when possible.
13//
14
15struct FKinematicProxy;
17struct FBodyInstance;
18
19namespace Chaos
20{
21 template<typename T, int D> class TPBDRigidParticles;
22
24}
25
43template<class Concrete, class ConcreteData, typename TProxyTimeStamp>
45{
46
47public:
48 using FParticleType = Concrete;
49
52
57
62
64 virtual ~TPhysicsProxy() {}
65
71 // Previously callback related functions, all called in the context of the physics thread if enabled.
72 bool IsSimulating() const { return static_cast<const Concrete*>(this)->IsSimulating(); }
74 void StartFrameCallback(const float InDt, const float InTime) { static_cast<Concrete*>(this)->StartFrameCallback(InDt, InTime); }
75 void EndFrameCallback(const float InDt) { static_cast<Concrete*>(this)->EndFrameCallback(InDt); }
78 void AddForceCallback(FParticlesType& InParticles, const float InDt, const int32 InIndex) { static_cast<Concrete*>(this)->AddForceCallback(InParticles, InDt, InIndex); }
79
82
84 static constexpr EPhysicsProxyType ConcreteType() { return Concrete::ConcreteType(); }
85
90 //ConcreteData* NewData() { return static_cast<Concrete*>(this)->NewData(); }
91
98 //void PushToPhysicsState(const ConcreteData* InData) { static_cast<Concrete*>(this)->PushToPhysicsState(InData); }
99
108 void ClearAccumulatedData() { static_cast<Concrete*>(this)->ClearAccumulatedData(); }
109
116 void SyncBeforeDestroy() { static_cast<Concrete*>(this)->SyncBeforeDestroy(); }
117
125 void OnRemoveFromScene() { static_cast<Concrete*>(this)->OnRemoveFromScene(); }
126
127 bool IsDirty() { return static_cast<Concrete*>(this)->IsDirty(); }
128
129 void* GetUserData() const { return nullptr; }
130
132
137};
#define FORCEINLINE_DEBUGGABLE
Definition CoreMiscDefines.h:74
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
TSharedRef< InObjectType, InMode > MakeShared(InArgTypes &&... Args)
Definition SharedPointer.h:2009
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EPhysicsProxyType
Definition PhysicsProxyBase.h:11
Definition PBDRigidParticles.h:22
Definition FieldSystem.h:522
Definition PhysicsProxyBase.h:97
Definition PhysicsProxy.h:45
bool IsSimulating() const
Definition PhysicsProxy.h:72
Chaos::FRigidTransform3 GetTransform() const
Definition PhysicsProxy.h:131
bool IsDirty()
Definition PhysicsProxy.h:127
void BindParticleCallbackMapping(Chaos::TArrayCollectionArray< PhysicsProxyWrapper > &PhysicsProxyReverseMap, Chaos::TArrayCollectionArray< int32 > &ParticleIDReverseMap)
Definition PhysicsProxy.h:81
void OnRemoveFromScene()
Definition PhysicsProxy.h:125
void ClearAccumulatedData()
Definition PhysicsProxy.h:108
void CreateRigidBodyCallback(FParticlesType &InOutParticles)
Definition PhysicsProxy.h:76
FORCEINLINE_DEBUGGABLE TProxyTimeStamp & GetSyncTimestampTyped()
Definition PhysicsProxy.h:133
TPhysicsProxy()
Definition PhysicsProxy.h:53
void EndFrameCallback(const float InDt)
Definition PhysicsProxy.h:75
void StartFrameCallback(const float InDt, const float InTime)
Definition PhysicsProxy.h:74
virtual ~TPhysicsProxy()
Definition PhysicsProxy.h:64
void * GetUserData() const
Definition PhysicsProxy.h:129
void SyncBeforeDestroy()
Definition PhysicsProxy.h:116
void DisableCollisionsCallback(TSet< TTuple< int32, int32 > > &InPairs)
Definition PhysicsProxy.h:77
Concrete FParticleType
Definition PhysicsProxy.h:48
TPhysicsProxy(UObject *InOwner)
Definition PhysicsProxy.h:58
static constexpr EPhysicsProxyType ConcreteType()
Definition PhysicsProxy.h:84
void AddForceCallback(FParticlesType &InParticles, const float InDt, const int32 InIndex)
Definition PhysicsProxy.h:78
void UpdateKinematicBodiesCallback(const FParticlesType &InParticles, const float InDt, const float InTime, FKinematicProxy &InKinematicProxy)
Definition PhysicsProxy.h:73
Definition Object.h:95
Definition SkeletalMeshComponent.h:307
TRigidTransform< FReal, 3 > FRigidTransform3
Definition Core.h:22
TPBDRigidParticles< FReal, 3 > FPBDRigidParticles
Definition PhysicsProxy.h:23
Definition BodyInstance.h:320
Definition Tuple.h:652