Navigation
API > API/Runtime > API/Runtime/ClothingSystemRuntimeInterface
Base class for clothing simulators.
| Name | IClothingSimulation |
| Type | class |
| Header File | /Engine/Source/Runtime/ClothingSystemRuntimeInterface/Public/ClothingSimulationInterface.h |
| Include Path | #include "ClothingSimulationInterface.h" |
Syntax
class IClothingSimulation
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
IClothingSimulation() |
ClothingSimulationInterface.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~IClothingSimulation() |
ClothingSimulationInterface.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void GatherStats () |
Called by the engine once per physics tick to gather non-cycle stats (num sim verts etc.) Will not be called if STATS is not defined, not required to be implemented if no need for stats. | ClothingSimulationInterface.h | |
virtual int32 GetNumCloths() |
Return the number of simulated cloths. Implementation must be thread safe. | ClothingSimulationInterface.h | |
virtual int32 GetNumDynamicParticles() |
Return the number of dynamic (simulated) particles. Implementation must be thread safe. | ClothingSimulationInterface.h | |
virtual int32 GetNumIterations () |
Return the number of iterations used by the solver. | ClothingSimulationInterface.h | |
virtual int32 GetNumKinematicParticles() |
Return the number of kinematic (fixed) particles. Implementation must be thread safe. | ClothingSimulationInterface.h | |
virtual int32 GetNumSubsteps () |
Return the number of substeps used by the solver. | ClothingSimulationInterface.h | |
virtual float GetSimulationTime() |
Return the simulation time in ms. Implementation must be thread safe. | ClothingSimulationInterface.h | |
virtual bool IsTeleported() |
Return whether the simulation is teleported. Implementation must be thread safe. | ClothingSimulationInterface.h | |
virtual void SetMaxNumIterations
(
int32 |
Set the maximum number of iterations used by the solver. | ClothingSimulationInterface.h | |
virtual void SetNumIterations
(
int32 |
Set the number of iterations used by the solver. | ClothingSimulationInterface.h | |
virtual void SetNumSubsteps
(
int32 |
Set the number of substeps used by the solver. | ClothingSimulationInterface.h | |
virtual void UpdateWorldForces
(
const USkeletalMeshComponent* OwnerComponent |
Update the forces coming from the world. | ClothingSimulationInterface.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddExternalCollisions
(
const FClothCollisionData& InData |
Called by the engine when an external object wants to inject collision data into this simulation above and beyond what is specified in the asset for the internal actors Examples: Scene collision, collision for parents we are attached to | ClothingSimulationInterface.h | |
void ClearExternalCollisions () |
Called by the engine when external collisions are no longer necessary or when they need to be updated with some of the previous collisions removed. | ClothingSimulationInterface.h | |
void CreateActor
(
USkeletalMeshComponent* InOwnerComponent, |
Create an actor for this simulation from the data in InAsset Simulation data for this actor should be written back to SimDataIndex in GetSimulationData | ClothingSimulationInterface.h | |
IClothingSimulationContext * CreateContext() |
Create a new context, will not be filled, call FillContext before simulating with this context | ClothingSimulationInterface.h | |
void DestroyActors() |
Simulation should remove all of it's actors when next possible and free them | ClothingSimulationInterface.h | |
void DestroyContext
(
IClothingSimulationContext* InContext |
Destroy a context object, engine will always pass a context created using CreateContext | ClothingSimulationInterface.h | |
void FillContext
(
USkeletalMeshComponent* InComponent, |
Fills an existing context for a single simulation step, called by the engine on the game thread prior to simulation | ClothingSimulationInterface.h | |
void FillContext
(
USkeletalMeshComponent* InComponent, |
Fills an existing context for a single simulation step, called by the engine on the game thread prior to simulation | ClothingSimulationInterface.h | |
FBoxSphereBounds GetBounds
(
const USkeletalMeshComponent* InOwnerComponent |
Get the bounds of the simulation mesh in local simulation space | ClothingSimulationInterface.h | |
void GetCollisions
(
FClothCollisionData& OutCollisions, |
Called by the engine to request data on all active collisions in a simulation. | ClothingSimulationInterface.h | |
void GetSimulationData
(
TMap< int32, FClothSimulData >& OutData, |
Fill FClothSimulData map for the clothing simulation. | ClothingSimulationInterface.h | |
void Initialize() |
Initialize the simulation, will be called before any Simulate calls | ClothingSimulationInterface.h | |
bool ShouldSimulate() |
Called by the engine to detect whether or not the simulation should run, essentially are there any actors that need to simulate in this simulation | ClothingSimulationInterface.h | |
void Shutdown() |
Shutdown the simulation, this should clear ALL resources as we no longer expect to call any other function on this simulation without first calling Initialize again. | ClothingSimulationInterface.h | |
void Simulate
(
IClothingSimulationContext* InContext |
Run a single tick of the simulation. | ClothingSimulationInterface.h |