UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::Softs::FPBDExtremeDeformationConstraints Class Reference

#include <PBDExtremeDeformationConstraints.h>

Public Member Functions

template<int32 Valence UE_REQUIRES>
 FPBDExtremeDeformationConstraints (const FSolverParticlesRange &Particles, const TArray< TVector< int32, Valence > > &InConstraints, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const TMap< FString, const TSet< int32 > * > &VertexSets, const FCollectionPropertyConstFacade &PropertyCollection, bool bTrimKinematicConstraints=false)
 
template<int32 Valence UE_REQUIRES>
 FPBDExtremeDeformationConstraints (const FSolverParticles &Particles, int32 InParticleOffset, int32 InParticleCount, const TArray< TVector< int32, Valence > > &InConstraints, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const TMap< FString, const TSet< int32 > * > &VertexSets, const FCollectionPropertyConstFacade &PropertyCollection, bool bTrimKinematicConstraints=false)
 
virtual ~FPBDExtremeDeformationConstraints ()
 
void SetProperties (const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps)
 
const TArray< TVec2< int32 > > & GetConstraints () const
 
CHAOS_API FSolverReal GetThreshold () const
 
CHAOS_API bool IsExtremelyDeformed (TConstArrayView< Softs::FSolverVec3 > Positions) const
 
CHAOS_API bool IsExtremelyDeformed (TConstArrayView< Softs::FSolverVec3 > Positions, const Softs::FSolverVec3 *const RefencePositions) const
 
CHAOS_API TArray< TVec2< int32 > > GetExtremelyDeformedEdges (TConstArrayView< Softs::FSolverVec3 > Positions) const
 
CHAOS_API TArray< TVec2< int32 > > GetExtremelyDeformedEdges (TConstArrayView< Softs::FSolverVec3 > Positions, const Softs::FSolverVec3 *const RefencePositions) const
 

Static Public Member Functions

static bool IsEnabled (const FCollectionPropertyConstFacade &PropertyCollection)
 

Constructor & Destructor Documentation

◆ FPBDExtremeDeformationConstraints() [1/2]

template<int32 Valence UE_REQUIRES>
Chaos::Softs::FPBDExtremeDeformationConstraints::FPBDExtremeDeformationConstraints ( const FSolverParticlesRange Particles,
const TArray< TVector< int32, Valence > > &  InConstraints,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps,
const TMap< FString, const TSet< int32 > * > &  VertexSets,
const FCollectionPropertyConstFacade PropertyCollection,
bool  bTrimKinematicConstraints = false 
)
inline

◆ FPBDExtremeDeformationConstraints() [2/2]

template<int32 Valence UE_REQUIRES>
Chaos::Softs::FPBDExtremeDeformationConstraints::FPBDExtremeDeformationConstraints ( const FSolverParticles Particles,
int32  InParticleOffset,
int32  InParticleCount,
const TArray< TVector< int32, Valence > > &  InConstraints,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps,
const TMap< FString, const TSet< int32 > * > &  VertexSets,
const FCollectionPropertyConstFacade PropertyCollection,
bool  bTrimKinematicConstraints = false 
)
inline

◆ ~FPBDExtremeDeformationConstraints()

virtual Chaos::Softs::FPBDExtremeDeformationConstraints::~FPBDExtremeDeformationConstraints ( )
inlinevirtual

Member Function Documentation

◆ GetConstraints()

const TArray< TVec2< int32 > > & Chaos::Softs::FPBDExtremeDeformationConstraints::GetConstraints ( ) const
inline

◆ GetExtremelyDeformedEdges() [1/2]

TArray< TVec2< int32 > > Chaos::Softs::FPBDExtremeDeformationConstraints::GetExtremelyDeformedEdges ( TConstArrayView< Softs::FSolverVec3 Positions) const

Returns all edges (after being pruned during initialization) that are deformed above threshold compared to the rest positions.

Parameters
PositionsThe solver particle positions, e.g. ClothingSimulationSolver.GetParticleXs().
Thresholdedge ratio threshold to trigger detection.

◆ GetExtremelyDeformedEdges() [2/2]

TArray< TVec2< int32 > > Chaos::Softs::FPBDExtremeDeformationConstraints::GetExtremelyDeformedEdges ( TConstArrayView< Softs::FSolverVec3 Positions,
const Softs::FSolverVec3 *const  RefencePositions 
) const

Returns edges that are deformed above threshold compared to reference positions.

Parameters
PositionsThe solver particle positions, e.g. ClothingSimulationSolver.GetParticleXs().
ReferencePositionsThe reference particle positions, e.g. ClothingSimulationSolver.GetAnimationPositions(ParticleRangeId) if using the animation pose as reference.
Thresholdedge ratio threshold to trigger detection.

◆ GetThreshold()

FSolverReal Chaos::Softs::FPBDExtremeDeformationConstraints::GetThreshold ( ) const

◆ IsEnabled()

static bool Chaos::Softs::FPBDExtremeDeformationConstraints::IsEnabled ( const FCollectionPropertyConstFacade PropertyCollection)
inlinestatic

◆ IsExtremelyDeformed() [1/2]

bool Chaos::Softs::FPBDExtremeDeformationConstraints::IsExtremelyDeformed ( TConstArrayView< Softs::FSolverVec3 Positions) const

Returns if edges (after being pruned during initialization) are deformed above threshold compared to the rest positions.

Parameters
PositionsThe solver particle positions, e.g. ClothingSimulationSolver.GetParticleXs().
Thresholdedge ratio threshold to trigger detection.

◆ IsExtremelyDeformed() [2/2]

bool Chaos::Softs::FPBDExtremeDeformationConstraints::IsExtremelyDeformed ( TConstArrayView< Softs::FSolverVec3 Positions,
const Softs::FSolverVec3 *const  RefencePositions 
) const

Returns if edges (after being pruned during initialization) are deformed above threshold compared to the reference positions.

Parameters
PositionsThe solver particle positions, e.g. ClothingSimulationSolver.GetParticleXs().
ReferencePositionsThe reference particle positions, e.g. ClothingSimulationSolver.GetAnimationPositions(ParticleRangeId) if using the animation pose as reference.
Thresholdedge ratio threshold to trigger detection.

◆ SetProperties()

void Chaos::Softs::FPBDExtremeDeformationConstraints::SetProperties ( const FCollectionPropertyConstFacade PropertyCollection,
const TMap< FString, TConstArrayView< FRealSingle > > &  WeightMaps 
)
inline

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