UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FPerSolverFieldSystem Class Reference

#include <PerSolverFieldSystem.h>

Public Member Functions

CHAOS_API void FieldParameterUpdateCallback (Chaos::FPBDRigidsSolver *InSolver, Chaos::FPBDPositionConstraints &PositionTarget, TMap< int32, int32 > &TargetedParticles)
 
CHAOS_API void FieldForcesUpdateCallback (Chaos::FPBDRigidsSolver *RigidSolver)
 
CHAOS_API void ComputeFieldRigidImpulse (const Chaos::FReal SolverTime)
 
CHAOS_API void ComputeFieldLinearImpulse (const Chaos::FReal SolverTime)
 
CHAOS_API void AddTransientCommand (const FFieldSystemCommand &FieldCommand)
 
CHAOS_API void AddPersistentCommand (const FFieldSystemCommand &FieldCommand)
 
CHAOS_API void RemoveTransientCommand (const FFieldSystemCommand &FieldCommand)
 
CHAOS_API void RemovePersistentCommand (const FFieldSystemCommand &FieldCommand)
 
TArray< FFieldSystemCommand > & GetTransientCommands ()
 
const TArray< FFieldSystemCommand > & GetTransientCommands () const
 
TArray< FFieldSystemCommand > & GetPersistentCommands ()
 
const TArray< FFieldSystemCommand > & GetPersistentCommands () const
 
bool IsEmpty () const
 
const TArray< FVector > & GetSamplePositions () const
 
TArray< FVector > & GetSamplePositions ()
 
const TArray< FFieldContextIndex > & GetSampleIndices () const
 
TArray< FFieldContextIndex > & GetSampleIndices ()
 
TArray< FVector > & GetOutputResults (const EFieldCommandOutputType OutputType)
 
const TArray< FVector > & GetOutputResults (const EFieldCommandOutputType OutputType) const
 

Static Public Member Functions

static CHAOS_API void GetRelevantParticleHandles (TArray< Chaos::FGeometryParticleHandle * > &ParticleHandles, const Chaos::FPBDRigidsSolver *RigidSolver, const EFieldResolutionType ResolutionType)
 
static CHAOS_API void GetFilteredParticleHandles (TArray< Chaos::FGeometryParticleHandle * > &ParticleHandles, const Chaos::FPBDRigidsSolver *RigidSolver, const EFieldFilterType FilterType, const EFieldObjectType ObjectType)
 

Member Function Documentation

◆ AddPersistentCommand()

void FPerSolverFieldSystem::AddPersistentCommand ( const FFieldSystemCommand FieldCommand)

Add the persistent field command

◆ AddTransientCommand()

void FPerSolverFieldSystem::AddTransientCommand ( const FFieldSystemCommand FieldCommand)

Add the transient field command

◆ ComputeFieldLinearImpulse()

void FPerSolverFieldSystem::ComputeFieldLinearImpulse ( const Chaos::FReal  SolverTime)

Compute field linear velocity/force given a list of samples (positions + indices)

Supported fields: EFieldPhysicsType::Field_LinearVelocity EFieldPhysicsType::Field_LinearForce

◆ ComputeFieldRigidImpulse()

void FPerSolverFieldSystem::ComputeFieldRigidImpulse ( const Chaos::FReal  SolverTime)

Compute field linear velocity/force and angular velocity/torque given a list of samples (positions + indices)

Supported fields: FieldPhysicsType::Field_LinearVelocity EFieldPhysicsType::Field_LinearForce EFieldPhysicsType::Field_AngularVelocity EFieldPhysicsType::Field_AngularrTorque

◆ FieldForcesUpdateCallback()

void FPerSolverFieldSystem::FieldForcesUpdateCallback ( Chaos::FPBDRigidsSolver RigidSolver)

Services queued FFieldSystemCommand commands.

Supported fields: EFieldPhysicsType::Field_LinearForce EFieldPhysicsType::Field_AngularTorque

◆ FieldParameterUpdateCallback()

void FPerSolverFieldSystem::FieldParameterUpdateCallback ( Chaos::FPBDRigidsSolver InSolver,
Chaos::FPBDPositionConstraints PositionTarget,
TMap< int32, int32 > &  TargetedParticles 
)

Services queued FFieldSystemCommand commands.

Supported fields: EFieldPhysicsType::Field_DynamicState EFieldPhysicsType::Field_ActivateDisabled EFieldPhysicsType::Field_ExternalClusterStrain (clustering) EFieldPhysicsType::Field_Kill EFieldPhysicsType::Field_LinearVelocity EFieldPhysicsType::Field_AngularVelociy EFieldPhysicsType::Field_SleepingThreshold EFieldPhysicsType::Field_DisableThreshold EFieldPhysicsType::Field_InternalClusterStrain (clustering) EFieldPhysicsType::Field_CollisionGroup EFieldPhysicsType::Field_PositionStatic EFieldPhysicsType::Field_PositionTarget EFieldPhysicsType::Field_PositionAnimated EFieldPhysicsType::Field_DynamicConstraint

◆ GetFilteredParticleHandles()

void FPerSolverFieldSystem::GetFilteredParticleHandles ( TArray< Chaos::FGeometryParticleHandle * > &  ParticleHandles,
const Chaos::FPBDRigidsSolver RigidSolver,
const EFieldFilterType  FilterType,
const EFieldObjectType  ObjectType 
)
static

Generates a mapping between the Position array and the results array.

When FilterType is set to Active the complete particle mapping is provided from the Particles.X to Particles.Attribute.

◆ GetOutputResults() [1/2]

TArray< FVector > & FPerSolverFieldSystem::GetOutputResults ( const EFieldCommandOutputType  OutputType)
inline

Get the non const array of the output results given an output type

◆ GetOutputResults() [2/2]

const TArray< FVector > & FPerSolverFieldSystem::GetOutputResults ( const EFieldCommandOutputType  OutputType) const
inline

Get the const array of the output results given an output type

◆ GetPersistentCommands() [1/2]

TArray< FFieldSystemCommand > & FPerSolverFieldSystem::GetPersistentCommands ( )
inline

Get all the non const persistent field commands

◆ GetPersistentCommands() [2/2]

const TArray< FFieldSystemCommand > & FPerSolverFieldSystem::GetPersistentCommands ( ) const
inline

Get all the const persistent field commands

◆ GetRelevantParticleHandles()

void FPerSolverFieldSystem::GetRelevantParticleHandles ( TArray< Chaos::FGeometryParticleHandle * > &  ParticleHandles,
const Chaos::FPBDRigidsSolver RigidSolver,
const EFieldResolutionType  ResolutionType 
)
static

Generates a mapping between the Position array and the results array.

When ResolutionType is set to Maximum the complete particle mapping is provided from the Particles.X to Particles.Attribute. When Minimum is set only the ActiveIndices and the direct children of the active clusters are set in the IndicesArray.

◆ GetSampleIndices() [1/2]

TArray< FFieldContextIndex > & FPerSolverFieldSystem::GetSampleIndices ( )
inline

Get the non const array of sample indices

◆ GetSampleIndices() [2/2]

const TArray< FFieldContextIndex > & FPerSolverFieldSystem::GetSampleIndices ( ) const
inline

Get the const array of sample indices

◆ GetSamplePositions() [1/2]

TArray< FVector > & FPerSolverFieldSystem::GetSamplePositions ( )
inline

Get the const array of sample positions

◆ GetSamplePositions() [2/2]

const TArray< FVector > & FPerSolverFieldSystem::GetSamplePositions ( ) const
inline

Get the non const array of sample positions

◆ GetTransientCommands() [1/2]

TArray< FFieldSystemCommand > & FPerSolverFieldSystem::GetTransientCommands ( )
inline

Get all the non const transient field commands

◆ GetTransientCommands() [2/2]

const TArray< FFieldSystemCommand > & FPerSolverFieldSystem::GetTransientCommands ( ) const
inline

Get all the const transient field commands

◆ IsEmpty()

bool FPerSolverFieldSystem::IsEmpty ( ) const
inline

Check if a per solver field system has no commands.

◆ RemovePersistentCommand()

void FPerSolverFieldSystem::RemovePersistentCommand ( const FFieldSystemCommand FieldCommand)

Remove the persistent field command

◆ RemoveTransientCommand()

void FPerSolverFieldSystem::RemoveTransientCommand ( const FFieldSystemCommand FieldCommand)

Remove the transient field command


The documentation for this class was generated from the following files: