UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SkeletalMeshPhysicsProxy.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
6#include "BoneHierarchy.h"
8
10
11// @todo(chaos): remove this file
12
13namespace Chaos
14{
15 class FParticleData;
16}
17
19{
21 : Name("")
22 , InitialTransform(FTransform::Identity)
23 , InitialLinearVelocity(FVector::ZeroVector)
24 , InitialAngularVelocity(FVector::ZeroVector)
25
27
31 , MaxNumParticles(50)
32 , MinRes(5)
33 , MaxRes(10)
35#if 0
37 , ClusterGroupIndex(0)
38 , MaxClusterLevel(100)
39 , DamageThreshold(250.f)
40#endif
41 , Density(2.4f)
42 , MinMass(0.001f)
43 , MaxMass(1.e6f)
44
46 {}
47
48 FString Name;
49
50 //
51 // Analytic implicit representation
52 //
53
55
56 //
57 // Mesh
58 //
59
62
63 //
64 // Transform hierarchy
65 //
66
71
73 EObjectStateTypeEnum ObjectType; // @todo(ccaulfield): should be per-body
74
82#if 0
84 int32 ClusterGroupIndex;
85 int32 MaxClusterLevel;
86 float DamageThreshold;
87#endif
88 float Density;
89 float MinMass;
90 float MaxMass;
91
93};
94
95// @todo(ccaulfield): make the IO structures private again - only the hierarchy should be required outside the PhysicsProxy
102
114
115
116class FSkeletalMeshPhysicsProxy : public TPhysicsProxy<FSkeletalMeshPhysicsProxy, FSkeletalMeshPhysicsProxyOutputs, FProxyTimestampBase>
117{
119public:
120
121
124
125
129
131 CHAOS_API void Initialize();
132 CHAOS_API bool IsSimulating() const;
133 CHAOS_API void UpdateKinematicBodiesCallback(const FParticlesType& Particles, const float Dt, const float Time, FKinematicProxy& Proxy);
134 CHAOS_API void StartFrameCallback(const float InDt, const float InTime);
135 CHAOS_API void EndFrameCallback(const float InDt);
140
142
144
151 CHAOS_API void FlipBuffer();
153 bool IsDirty() { return false; }
160 CHAOS_API void Reset();
161
166 CHAOS_API void CaptureInputs(const float Dt, const FInputFunc& InputFunc);
167
170 const FSkeletalMeshPhysicsProxyOutputs* GetOutputs() const { return nullptr; }
171
172 const FBoneHierarchy& GetBoneHierarchy() const { return Parameters.BoneHierarchy; }
173
174private:
175 using FJointConstraints = Chaos::FPBDJointConstraints;
176
178};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
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
ECollisionTypeEnum
Definition GeometryCollectionSimulationTypes.h:12
EObjectStateTypeEnum
Definition GeometryCollectionSimulationTypes.h:34
const bool
Definition NetworkReplayStreaming.h:178
EPhysicsProxyType
Definition PhysicsProxyBase.h:11
if(Failed) console_printf("Failed.\n")
Definition PBDJointConstraints.h:168
Definition PBDRigidsSolver.h:84
Definition ParticleHandle.h:2724
Definition ArrayCollectionArray.h:15
Definition PBDRigidParticles.h:22
Definition Serializable.h:10
Definition BoneHierarchy.h:18
Definition FieldSystem.h:522
Definition SkeletalMeshPhysicsProxy.h:117
CHAOS_API void CreateRigidBodyCallback(FParticlesType &InOutParticles)
Definition SkeletalMeshPhysicsProxy.cpp:44
CHAOS_API bool PullFromPhysicsState(const int32 SolverSyncTimestamp)
Definition SkeletalMeshPhysicsProxy.cpp:76
FSkeletalMeshPhysicsProxyOutputs * NewData()
Definition SkeletalMeshPhysicsProxy.h:145
CHAOS_API void DisableCollisionsCallback(TSet< TTuple< int32, int32 > > &InPairs)
Definition SkeletalMeshPhysicsProxy.cpp:51
static constexpr EPhysicsProxyType ConcreteType()
Definition SkeletalMeshPhysicsProxy.h:154
CHAOS_API void BufferPhysicsResults()
Definition SkeletalMeshPhysicsProxy.cpp:68
CHAOS_API void AddForceCallback(FParticlesType &InParticles, const float InDt, const int32 InIndex)
Definition SkeletalMeshPhysicsProxy.cpp:54
CHAOS_API ~FSkeletalMeshPhysicsProxy()
Definition SkeletalMeshPhysicsProxy.cpp:15
bool IsDirty()
Definition SkeletalMeshPhysicsProxy.h:153
CHAOS_API void Initialize()
Definition SkeletalMeshPhysicsProxy.cpp:19
CHAOS_API void SyncBeforeDestroy()
Definition SkeletalMeshPhysicsProxy.cpp:61
void ClearAccumulatedData()
Definition SkeletalMeshPhysicsProxy.h:149
void BufferCommand(Chaos::FPhysicsSolver *InSolver, const FFieldSystemCommand &InCommmand)
Definition SkeletalMeshPhysicsProxy.h:143
const FBoneHierarchy & GetBoneHierarchy() const
Definition SkeletalMeshPhysicsProxy.h:172
CHAOS_API void StartFrameCallback(const float InDt, const float InTime)
Definition SkeletalMeshPhysicsProxy.cpp:36
void PushToPhysicsState(const Chaos::FParticleData *)
Definition SkeletalMeshPhysicsProxy.h:148
CHAOS_API void EndFrameCallback(const float InDt)
Definition SkeletalMeshPhysicsProxy.cpp:40
CHAOS_API void Reset()
Definition SkeletalMeshPhysicsProxy.cpp:23
CHAOS_API void OnRemoveFromScene()
Definition SkeletalMeshPhysicsProxy.cpp:64
CHAOS_API void ParameterUpdateCallback(FParticlesType &InParticles, const float InTime)
Definition SkeletalMeshPhysicsProxy.cpp:48
CHAOS_API void BindParticleCallbackMapping(Chaos::TArrayCollectionArray< PhysicsProxyWrapper > &PhysicsProxyReverseMap, Chaos::TArrayCollectionArray< int32 > &ParticleIDReverseMap)
Definition SkeletalMeshPhysicsProxy.cpp:57
CHAOS_API void FlipBuffer()
Definition SkeletalMeshPhysicsProxy.cpp:72
TFunction< bool(const float Dt, FSkeletalMeshPhysicsProxyParams &OutParams)> FInputFunc
Definition SkeletalMeshPhysicsProxy.h:123
CHAOS_API bool IsSimulating() const
Definition SkeletalMeshPhysicsProxy.cpp:27
CHAOS_API void CaptureInputs(const float Dt, const FInputFunc &InputFunc)
Definition SkeletalMeshPhysicsProxy.cpp:81
const FSkeletalMeshPhysicsProxyOutputs * GetOutputs() const
Definition SkeletalMeshPhysicsProxy.h:170
CHAOS_API void UpdateKinematicBodiesCallback(const FParticlesType &Particles, const float Dt, const float Time, FKinematicProxy &Proxy)
Definition SkeletalMeshPhysicsProxy.cpp:32
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition PhysicsProxy.h:45
Definition Object.h:95
Definition SkeletalMeshComponent.h:307
@ false
Definition radaudio_common.h:23
Definition SkeletalMeshPhysicsProxy.h:97
TArray< FVector > AngularVelocities
Definition SkeletalMeshPhysicsProxy.h:100
TArray< FTransform > Transforms
Definition SkeletalMeshPhysicsProxy.h:98
TArray< FVector > LinearVelocities
Definition SkeletalMeshPhysicsProxy.h:99
Definition SkeletalMeshPhysicsProxy.h:104
TArray< FTransform > Transforms
Definition SkeletalMeshPhysicsProxy.h:105
TArray< FVector > AngularVelocities
Definition SkeletalMeshPhysicsProxy.h:107
void Reset()
Definition SkeletalMeshPhysicsProxy.h:108
TArray< FVector > LinearVelocities
Definition SkeletalMeshPhysicsProxy.h:106
Definition SkeletalMeshPhysicsProxy.h:19
FTransform InitialTransform
Definition SkeletalMeshPhysicsProxy.h:67
FSkeletalMeshPhysicsProxyParams()
Definition SkeletalMeshPhysicsProxy.h:20
float MinMass
Definition SkeletalMeshPhysicsProxy.h:89
FVector InitialAngularVelocity
Definition SkeletalMeshPhysicsProxy.h:70
TArray< FVector > MeshVertexPositions
Definition SkeletalMeshPhysicsProxy.h:60
FVector InitialLinearVelocity
Definition SkeletalMeshPhysicsProxy.h:69
int32 CollisionGroup
Definition SkeletalMeshPhysicsProxy.h:81
int32 MinRes
Definition SkeletalMeshPhysicsProxy.h:79
int32 MaxRes
Definition SkeletalMeshPhysicsProxy.h:80
Chaos::TSerializablePtr< Chaos::FChaosPhysicsMaterial > PhysicalMaterial
Definition SkeletalMeshPhysicsProxy.h:72
ECollisionTypeEnum CollisionType
Definition SkeletalMeshPhysicsProxy.h:75
int32 MaxNumParticles
Definition SkeletalMeshPhysicsProxy.h:78
float ParticlesPerUnitArea
Definition SkeletalMeshPhysicsProxy.h:76
bool bSimulating
Definition SkeletalMeshPhysicsProxy.h:92
FString Name
Definition SkeletalMeshPhysicsProxy.h:48
float Density
Definition SkeletalMeshPhysicsProxy.h:88
EObjectStateTypeEnum ObjectType
Definition SkeletalMeshPhysicsProxy.h:73
FBoneHierarchy BoneHierarchy
Definition SkeletalMeshPhysicsProxy.h:54
FTransform LocalToWorld
Definition SkeletalMeshPhysicsProxy.h:68
float MaxMass
Definition SkeletalMeshPhysicsProxy.h:90
TArray< FIntVector > Triangles
Definition SkeletalMeshPhysicsProxy.h:61
int32 MinNumParticles
Definition SkeletalMeshPhysicsProxy.h:77
Definition Tuple.h:652