UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ClothingSimulationInteractor.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Map.h"
7#include "CoreTypes.h"
8#include "Math/MathFwd.h"
10#include "UObject/Object.h"
14
15#include "ClothingSimulationInteractor.generated.h"
16
17#define UE_API CLOTHINGSYSTEMRUNTIMEINTERFACE_API
18
19class FName;
22struct FFrame;
23template <typename T> struct TObjectPtr;
24
29UCLASS(Abstract, BlueprintType, MinimalAPI)
31{
33
34protected:
36
38 {
40 if (Simulation && Simulation->DynamicCastToIClothingSimulation())
41 {
42 Sync(Simulation->DynamicCastToIClothingSimulation());
43 }
45 }
46
48 UE_DEPRECATED(5.7, "Use IClothingSimulationInterface instead.")
49 virtual void Sync(IClothingSimulation* Simulation) {}
51
52protected:
53 int32 ClothingId = -1; // Clothing Asset slot as passed to the CreateActor function
54};
55
63UCLASS(Abstract, BlueprintType, MinimalAPI)
65{
67
68public:
71
74
75 // Basic interface that clothing simulations are required to support
76
84
86 UE_DEPRECATED(5.7, "Use IClothingSimulationInterface instead.")
87 UE_API virtual void Sync(IClothingSimulation* Simulation, IClothingSimulationContext* Context);
89
91 UFUNCTION(BlueprintCallable, Category=ClothingSimulation)
92 virtual void PhysicsAssetUpdated()
93 PURE_VIRTUAL(UClothingSimulationInteractor::PhysicsAssetUpdated, );
94
96 UFUNCTION(BlueprintCallable, Category=ClothingSimulation)
97 virtual void ClothConfigUpdated()
98 PURE_VIRTUAL(UClothingSimulationInteractor::ClothConfigUpdated, );
99
101 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
102 virtual void SetAnimDriveSpringStiffness(float InStiffness)
103 PURE_VIRTUAL(UClothingSimulationInteractor::SetAnimDriveSpringStiffness, );
104
106 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
107 virtual void EnableGravityOverride(const FVector& InVector)
108 PURE_VIRTUAL(UClothingSimulationInteractor::EnableGravityOverride, );
109
111 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
112 virtual void DisableGravityOverride()
113 PURE_VIRTUAL(UClothingSimulationInteractor::DisableGravityOverride, );
114
116 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
117 virtual void SetNumIterations(int32 NumIterations = 1)
118 PURE_VIRTUAL(UClothingSimulationInteractor::SetNumIterations, );
119
121 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
122 virtual void SetMaxNumIterations(int32 MaxNumIterations = 10)
123 PURE_VIRTUAL(UClothingSimulationInteractor::SetMaxNumIterations, );
124
126 UFUNCTION(BlueprintCallable, Category = ClothingSimulation, Meta = (Keywords = "Subdivisions"))
127 virtual void SetNumSubsteps(int32 NumSubsteps = 1)
128 PURE_VIRTUAL(UClothingSimulationInteractor::SetNumSubsteps, );
129
130 // Base clothing simulations interface
131
133 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
134 int32 GetNumCloths() const { return LastNumCloths; }
135
137 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
138 int32 GetNumKinematicParticles() const { return LastNumKinematicParticles; }
139
141 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
142 int32 GetNumDynamicParticles() const { return LastNumDynamicParticles; }
143
148 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
149 int32 GetNumIterations() const { return LastNumIterations; }
150
155 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
156 int32 GetNumSubsteps() const { return LastNumSubsteps; }
157
159 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
160 float GetSimulationTime() const { return LastSimulationTime; }
161
163 UFUNCTION(BlueprintCallable, Category = ClothingSimulation)
165
166 UE_DEPRECATED(5.7, "Use FName version instead.")
171
173 UPROPERTY()
175
179 {
180 return nullptr;
181 }
182
183private:
184 // Simulation infos updated during the sync
185 int32 LastNumCloths = 0;
186 int32 LastNumKinematicParticles = 0;
187 int32 LastNumDynamicParticles = 0;
188 int32 LastNumIterations = 0;
189 int32 LastNumSubsteps = 0;
190 float LastSimulationTime = 0.f;
191};
192
193#undef UE_API
#define UE_API
Definition ClothingSimulationInteractor.h:17
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
Definition NameTypes.h:617
Definition ClothingSimulationInterface.h:20
Definition ClothingSimulationInterface.h:35
Definition UnrealString.h.inl:34
Definition ClothingAssetBase.h:21
Definition ClothingSimulationInteractor.h:31
virtual void Sync(IClothingSimulationInterface *Simulation)
Definition ClothingSimulationInteractor.h:37
Definition ClothingSimulationInteractor.h:65
int32 GetNumDynamicParticles() const
Definition ClothingSimulationInteractor.h:142
virtual PRAGMA_ENABLE_DEPRECATION_WARNINGS void virtual PhysicsAssetUpdated() PURE_VIRTUAL(UClothingSimulationInteractor void virtual ClothConfigUpdated() PURE_VIRTUAL(UClothingSimulationInteractor void virtual SetAnimDriveSpringStiffness(float InStiffness) PURE_VIRTUAL(UClothingSimulationInteractor void virtual EnableGravityOverride(const FVector &InVector) PURE_VIRTUAL(UClothingSimulationInteractor void virtual DisableGravityOverride() PURE_VIRTUAL(UClothingSimulationInteractor void virtual SetNumIterations(int32 NumIterations=1) PURE_VIRTUAL(UClothingSimulationInteractor void virtual SetMaxNumIterations(int32 MaxNumIterations=10) PURE_VIRTUAL(UClothingSimulationInteractor void SetNumSubsteps(int32 NumSubsteps=1) PURE_VIRTUAL(UClothingSimulationInteractor int32 GetNumCloths() const
Definition ClothingSimulationInteractor.h:134
int32 GetNumKinematicParticles() const
Definition ClothingSimulationInteractor.h:138
UE_API void DestroyClothingInteractors()
Definition ClothingSimulationInteractor.cpp:22
int32 GetNumIterations() const
Definition ClothingSimulationInteractor.h:149
float GetSimulationTime() const
Definition ClothingSimulationInteractor.h:160
UE_API UClothingInteractor * GetClothingInteractor(const FName ClothingAssetName) const
Definition ClothingSimulationInteractor.cpp:27
TMap< FName, TObjectPtr< UClothingInteractor > > ClothingInteractors
Definition ClothingSimulationInteractor.h:174
int32 GetNumSubsteps() const
Definition ClothingSimulationInteractor.h:156
virtual UClothingInteractor * CreateClothingInteractor()
Definition ClothingSimulationInteractor.h:178
Definition Object.h:95
Definition Stack.h:114
Definition ObjectPtr.h:488