code: FPBDCollisionSpringConstraintsBase ( const int32 InOffset, const int32 InNumParticles, const [FTriangleMesh](API\Runtime\Chaos\Chaos\FTriangleMesh) & InTriangleMesh, const [TArray](API\Runtime\Core\Containers\TArray)< [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) > * InReferencePositions, [TSet](API\Runtime\Core\Containers\TSet)< [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< int32 >> && InDisabledCollisionElements, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InThickness, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InStiffness, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InFrictionCoefficient )


className: FPBDCollisionSpringConstraintsBase

description: This is an invertible spring class, typical springs are not invertible aware.

module: Chaos

Barys

type: TArray<FSolver...

Constraints

type: TArray<TVec4< ...

FlipNormal

type: TArray< bool >

FrictionCoefficient

type: FSolverReal


description: Add all the constraints in the container to the graph

code: void AddConstraintsToGraph ( [Private::FPBDIslandManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandManager) & IslandManager )


description: Create a constraint solver for an Evolution with Graph support (World evolution). The system will create several of these: usually one per worker thread (Island Group) but possibly more in complex scenes where constraint coloring is being used. It will be used to solve constraints in groups, with the constraints in each group determined by the graph/islands/islandgroups.

code: [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver) > CreateGroupSolver ( const int32 Priority )


code: virtual void DisconnectConstraints ( const [TSet](API\Runtime\Core\Containers\TSet)< [TGeometryParticleHandle](API\Runtime\Chaos\Chaos\TGeometryParticleHandle)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > * > & )


description: Create a constraint solver for an Evolution without Graph support (RBAN evolution). There will only be one of these per scene (RBAN node) and it is used to solve all constraints in the container (serially).

code: [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver) > CreateSceneSolver ( const int32 Priority )


description: FConstraintHandle::As()

code: const [FConstraintHandleTypeID](API\Runtime\Chaos\Chaos\FConstraintHandleTypeID) & GetConstraintHandleType() const


description: The ContainerId is used to map constraint handles back to their constraint container. Every container is assigned an ID when it is registered - it will be the array index in the Evolution

code: int32 GetContainerId() const


description: Get the number of constraints in this container (includes inactive and disabled)

code: int32 GetNumConstraints() const


description: Called oncer per tick to initialize buffers required for the rest of the tick

code: void PrepareTick()


description: Empty the constraints (must be removed from the graph first, if required)

code: void ResetConstraints()


description: GetContainerId()

code: void SetContainerId ( int32 InContainerId )


description: Should undo any allocations in PrepareTick

code: void UnprepareTick()


description: An opportunity to create/destroy constraints based on particle state.

code: virtual void UpdatePositionBasedState ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: FPBDConstraintContainer ( [FConstraintHandleTypeID](API\Runtime\Chaos\Chaos\FConstraintHandleTypeID) InConstraintHandleType )


className: EdgeSpringStiffnessName

code: static const [FName](API\Runtime\Core\UObject\FName) EdgeSpringStiffnessName = TEXT("EdgeSpringStiffness");


code: static bool IsEnabled ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


description: Deprecated* Use SetProperties(const FCollectionPropertyConstFacade&, const TMap>&, FSolverReal) instead.

code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps )


code: FPBDEdgeSpringConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TVec3< int32 >> & InConstraints, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, bool bTrimKinematicConstraints )


description: Deprecated* Use weight map constructor instead.

code: FPBDEdgeSpringConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, int32 ParticleOffset, int32 ParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TVec3< int32 >> & InConstraints, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, bool bTrimKinematicConstraints )


code: virtual ~FPBDEdgeSpringConstraints()


className: FPBDEdgeSpringConstraints

code: class FPBDEdgeSpringConstraints : public [Chaos::Softs::FPBDSpringConstraints](API\Runtime\Chaos\Chaos\FPBDSpringConstraints)


className: FPBDConstraintContainer

description: Base class for containers of constraints. A Constraint Container holds an array of constraints and provides methods to allocate and deallocate constraints as well as the API required to plug into Constraint Rules.

code: class FPBDConstraintContainer

ConstraintHandleType

type: FConstraintHand...


description: Set a block of collision particles active or inactive, using the index of the first added particle to identify the block.

code: void ActivateCollisionParticleRange ( int32 Offset, bool bActivate )


description: Set a block of constraints active or inactive, using the index of the first added particle to identify the block.

code: void ActivateConstraintInitRange ( int32 Offset, bool bActivate )


code: void ActivateConstraintPostprocessingsRange ( int32 Offset, bool bActivate )


code: void ActivateConstraintRuleRange ( int32 Offset, bool bActivate )


description: Set a block of particles active or inactive, using the index of the first added particle to identify the block.

code: void ActivateParticleRange ( int32 Offset, bool bActivate )


code: void ActivatePostCollisionConstraintRuleRange ( int32 Offset, bool bActivate )


description: Add collision particles and initialize group ids. Return the index of the first added particle. Use INDEX_NONE as GroupId for collision particles that affect all particle groups.

code: int32 AddCollisionParticleRange ( int32 NumParticles, uint32 GroupId, bool bActivate )


description: Add a single collision body particle to the solver.

code: int32 AddCollisionParticle ( uint32 GroupId, bool bActivate )


description: Add constraints. Return the index of the first added constraint.

code: int32 AddConstraintInitRange ( int32 NumConstraints, bool bActivate )


code: int32 AddConstraintPostprocessingsRange ( int32 NumConstraints, bool bActivate )


code: int32 AddConstraintRuleRange ( int32 NumConstraints, bool bActivate )


code: int32 AddParticleRange ( int32 NumItems, bool bActivate )


description: Add particles and initialize group ids. Return the index of the first added particle.

code: int32 AddParticleRange ( int32 NumParticles, uint32 GroupId, bool bActivate )


code: int32 AddPostCollisionConstraintRuleRange ( int32 NumConstraints, bool bActivate )


description: Advance one time step. Filter the input time step if specified.

code: void AdvanceOneTimeStep ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt )


code: void AdvanceOneTimeStep ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt, const bool bSmoothDt )


description: Deprecated* UseGetCollisionStatus()instead

code: const bool Collided ( int32 index )


code: [TArray](API\Runtime\Core\Containers\TArray)< uint32 > & CollisionParticleGroupIds()


code: const [TArray](API\Runtime\Core\Containers\TArray)< uint32 > & CollisionParticleGroupIds() const


description: Collision particles accessors.

code: const [FSolverRigidParticles](API\Runtime\Chaos\Chaos\FSolverRigidParticles) & CollisionParticles() const


code: const [TPBDActiveView](API\Runtime\Chaos\Chaos\TPBDActiveView)< [FSolverRigidParticles](API\Runtime\Chaos\Chaos\FSolverRigidParticles) > & CollisionParticlesActiveView() const


description: Constraint accessors.

code: const [TArray](API\Runtime\Core\Containers\TArray)< [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal))> > & ConstraintInits() const


code: [TArray](API\Runtime\Core\Containers\TArray)< [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal))> > & ConstraintInits()


code: [TArray](API\Runtime\Core\Containers\TArray)< [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal))> > & ConstraintPostprocessings()


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal))> > & ConstraintPostprocessings() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal))> > & ConstraintRules() const


code: [TArray](API\Runtime\Core\Containers\TArray)< [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal))> > & ConstraintRules()


description: Clear all ranges.

code: void DeactivateParticleRanges()


code: [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) GetCoefficientOfFriction ( const uint32 GroupId ) const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) > & GetCollisionContacts() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) > & GetCollisionNormals() const


description: Return the number of particles of the block starting at Offset.

code: int32 GetCollisionParticleRangeSize ( int32 Offset ) const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) > & GetCollisionPhis() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< bool > & GetCollisionStatus()


code: [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) GetCollisionThickness ( const uint32 GroupId ) const


code: int32 GetConstraintInitRangeSize ( int32 Offset ) const


code: int32 GetConstraintPostprocessingsRangeSize ( int32 Offset ) const


code: int32 GetConstraintRuleRangeSize ( int32 Offset ) const


code: [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) GetDamping ( const uint32 GroupId ) const


code: [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal), const int32)> & GetForceFunction ( const uint32 GroupId )


code: const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal), const int32)> & GetForceFunction ( const uint32 GroupId ) const


code: const [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) & GetGravity ( const uint32 GroupId ) const


code: [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) GetParticleDamping ( const uint32 ParticleIndex ) const


code: int32 GetParticleRangeSize ( int32 Offset ) const


code: [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) GetLocalDamping ( const uint32 GroupId ) const


code: int32 GetPostCollisionConstraintRuleRangeSize ( int32 Offset ) const


code: bool GetUseCCD ( const uint32 GroupId ) const


code: [FVelocityAndPressureField](API\Runtime\Chaos\Chaos\FVelocityAndPressureField) & GetVelocityAndPressureField ( const uint32 GroupId )


code: const [FVelocityAndPressureField](API\Runtime\Chaos\Chaos\FVelocityAndPressureField) & GetVelocityAndPressureField ( const uint32 GroupId ) const


description: Deprecated* Chaos::Softs::FVelocityField has been renamedFVelocityAndPressureFieldto match its new behavior.

code: PRAGMA_DISABLE_DEPRECATION_WARNINGS FVelocityField & GetVelocityField ( const uint32 GroupId )


code: PRAGMA_DISABLE_DEPRECATION_WARNINGS const FVelocityField & GetVelocityField ( const uint32 GroupId ) const


code: const [TArray](API\Runtime\Core\Containers\TArray)< uint32 > & ParticleGroupIds() const


description: Particles accessors.

code: const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles() const


code: const [TPBDActiveView](API\Runtime\Chaos\Chaos\TPBDActiveView)< [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) > & ParticlesActiveView()


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal))> > & PostCollisionConstraintRules() const


code: [TArray](API\Runtime\Core\Containers\TArray)< [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal))> > & PostCollisionConstraintRules()


description: Remove a collision body from the active view list, and save its particle in the remvoed collision particle list.

code: void RemoveCollisionParticle ( int32 CollisionParticleIndex, int32 CollisionParticleViewIndex )


description: Remove all collision particles.

code: void ResetCollisionParticles ( int32 NumParticles )


description: Remove all particles, will also reset all rules.

code: void ResetParticles()


code: void SetCoefficientOfFriction ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) CoefficientOfFriction, const uint32 GroupId )


code: void SetCollisionKinematicUpdateFunction ( [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverRigidParticles](API\Runtime\Chaos\Chaos\FSolverRigidParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal), const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal), const int32)> KinematicUpdate )


code: void SetCollisionThickness ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) CollisionThickness, const uint32 GroupId )


code: void SetDamping ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Damping, const uint32 GroupId )


code: void SetGravity ( const [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) & Acceleration, const uint32 GroupId )


code: void SetIterations ( const int32 Iterations )


code: void SetKinematicUpdateFunction ( [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) &, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal), const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal), const int32)> KinematicUpdate )


code: void SetLocalDamping ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) LocalDamping, const uint32 GroupId )


description: Reset all constraint init and rule functions.

code: void ResetConstraintRules()


code: void SetParticleDamping ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Damping, const uint32 ParticleIndex )


code: void SetUseCCD ( const bool bUseCCD, const uint32 GroupId )


description: TODO: Tidy up this constructor (and update Headless Chaos)

code: FPBDEvolution ( [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) && InParticles, [FSolverRigidParticles](API\Runtime\Chaos\Chaos\FSolverRigidParticles) && InGeometryParticles, [TArray](API\Runtime\Core\Containers\TArray)< TVec3< int32 >> && CollisionTriangles, int32 NumIterations, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) CollisionThickness, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) SelfCollisionsThickness, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) CoefficientOfFriction, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Damping, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) LocalDamping, bool bDoQuasistatics, bool InbUsePerParticleDamping )


className: FPBDEvolution

code: class FPBDEvolution : public [Chaos::TArrayCollection](API\Runtime\ChaosCore\Chaos\TArrayCollection)


code: static [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FPBDGeometryCollectionParticle](API\Runtime\Chaos\Chaos\FPBDGeometryCollectionParticle) > CreateParticle ( const [FPBDRigidParticleParameters](API\Runtime\Chaos\Chaos\FPBDRigidParticleParameters) & DynamicParams )


className: FHandle

code: typedef [TPBDGeometryCollectionParticleHandle](API\Runtime\Chaos\Chaos\TPBDGeometryCollectionParticleHa-)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FHandle


className: FPBDGeometryCollectionParticle

code: class FPBDGeometryCollectionParticle : public [Chaos::TPBDRigidParticle< FReal, 3 >](API\Runtime\Chaos\Chaos\TPBDRigidParticle)


code: FPBDGeometryCollectionParticle ( const [FPBDRigidParticleParameters](API\Runtime\Chaos\Chaos\FPBDRigidParticleParameters) & DynamicParams )


className: FPBDGeometryCollectionParticleHandle

code: typedef [TPBDGeometryCollectionParticleHandle](API\Runtime\Chaos\Chaos\TPBDGeometryCollectionParticleHa-)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FPBDGeometryCollectionParticleHandle


code: void CalculateConstraintSpace ( [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & OutXa, [FMatrix33](API\Runtime\ChaosCore\Chaos\FMatrix33) & OutRa, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & OutXb, [FMatrix33](API\Runtime\ChaosCore\Chaos\FMatrix33) & OutRb ) const


code: virtual [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FConstraintHandle\FGeometryParticleHandle) * > GetConstrainedParticles() const


description: Deprecated* No longer used

code: int32 GetConstraintColor() const


description: Deprecated* No longer used

code: int32 GetConstraintIsland() const


description: Deprecated* No longer used

code: int32 GetConstraintLevel() const


code: const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & GetJointSettings() const


code: const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & GetSettings() const


code: void SetConstraintEnabled ( bool bEnabled )


code: void SetEnabledDuringResim ( bool bEnabled )


description: Note that setting drive targets etc can be done through the settings.

code: void SetSettings ( const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & Settings )


code: static const [FConstraintHandleTypeID](API\Runtime\Chaos\Chaos\FConstraintHandleTypeID) & StaticType()


code: void SetSyncState ( [ESyncState](API\Runtime\Chaos\Chaos\Chaos__ESyncState) SyncState )


code: FPBDJointConstraintHandle ( [FConstraintContainer](API\Runtime\Chaos\Chaos\FPBDJointConstraintHandle\FConstraintContainer) * InConstraintContainer, int32 InConstraintIndex )


className: FPBDJointConstraintHandle

description: A handle to a joint constraint held in a joint container (FPBDJointConstraints) by index.

code: class FPBDJointConstraintHandle : public [Chaos::TIndexedContainerConstraintHandle< FPBDJointConstraints >](API\Runtime\Chaos\Chaos\Evolution\TIndexedContainerConstraintHandl-)


description: Deprecated* Joint Solver API moved to FPBDJointContainerSolver

code: void AddBodies ( [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


code: void AddBodies ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


description: Add a constraint with particle-space constraint offsets.

code: [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDJointConstraints\FConstraintContainerHandle) * AddConstraint ( const [FParticlePair](API\Runtime\Chaos\Chaos\FParticlePair) & InConstrainedParticles, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & WorldConstraintFrame )


code: [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDJointConstraints\FConstraintContainerHandle) * AddConstraint ( const [FParticlePair](API\Runtime\Chaos\Chaos\FParticlePair) & InConstrainedParticles, const [FTransformPair](API\Runtime\Chaos\Chaos\FPBDJointConstraints\FTransformPair) & ConnectorTransforms )


code: [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDJointConstraints\FConstraintContainerHandle) * AddConstraint ( const [FParticlePair](API\Runtime\Chaos\Chaos\FParticlePair) & InConstrainedParticles, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & InConstraintSettings )


description: Add all the constraints in the container to the graph

code: virtual void AddConstraintsToGraph ( [Private::FPBDIslandManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandManager) & IslandManager )


code: void ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyPositionConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyProjectionConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyVelocityConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Remove the previously assigned break callback.

code: void ClearBreakCallback()


description: Force a constraints to break

code: void BreakConstraint ( int32 ConstraintIndex )


description: Clear the transient constraint braking state (called by event system when it has used the flag)

code: void ClearConstraintBreaking ( int32 ConstraintIndex )


description: Clear the drive target state

code: void ClearDriveTargetChanged ( int32 ConstraintIndex )


description: Create a constraint solver for an Evolution with Graph support (World evolution). The system will create several of these: usually one per worker thread (Island Group) but possibly more in complex scenes where constraint coloring is being used. It will be used to solve constraints in groups, with the constraints in each group determined by the graph/islands/islandgroups.

code: virtual [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver) > CreateGroupSolver ( const int32 Priority )


description: The constraint is unuseable at this point and pending deletion.

code: virtual void DisconnectConstraints ( const [TSet](API\Runtime\Core\Containers\TSet)< [TGeometryParticleHandle](API\Runtime\Chaos\Chaos\TGeometryParticleHandle)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > * > & RemovedParticles )


description: FConstraintContainer Implementation

code: virtual [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver) > CreateSceneSolver ( const int32 Priority )


className: FHandles

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDJointConstraints\FConstraintContainerHandle) * > FHandles


description: Repair a broken constraints (does not adjust particle positions)

code: void FixConstraint ( int32 ConstraintIndex )


className: FTransformPair

code: typedef [TVector](API\Runtime\Chaos\Chaos\TVector)< [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3), 2 > FTransformPair


code: void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void GatherInput ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void GatherInput ( const int32 ConstraintIndex, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: All of the constraints in the container, including inactive

code: const [FHandles](API\Runtime\Chaos\Chaos\FPBDJointConstraints\FHandles) & GetConstConstraintHandles() const


description: Get the particles that are affected by the specified constraint.

code: const [FParticlePair](API\Runtime\Chaos\Chaos\FParticlePair) & GetConstrainedParticles ( int32 ConstraintIndex ) const


description: The total linear angular applied by the constraint

code: [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetConstraintAngularImpulse ( int32 ConstraintIndex ) const


code: int32 GetConstraintColor ( int32 ConstraintIndex ) const


description: Get a joint constraint by index

code: const [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDJointConstraints\FConstraintContainerHandle) * GetConstraintHandle ( int32 ConstraintIndex ) const


description: Get a joint constraint by index

code: [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDJointConstraints\FConstraintContainerHandle) * GetConstraintHandle ( int32 ConstraintIndex )


code: int32 GetConstraintIsland ( int32 ConstraintIndex ) const


code: int32 GetConstraintLevel ( int32 ConstraintIndex ) const


description: The total linear impulse applied by the constraint

code: [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetConstraintLinearImpulse ( int32 ConstraintIndex ) const


code: [EResimType](API\Runtime\Chaos\Chaos\Chaos__EResimType) GetConstraintResimType ( int32 ConstraintIndex ) const


description: Get the settings for a joint constraint by index

code: const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & GetConstraintSettings ( int32 ConstraintIndex ) const


description: Get the number of constraints in this container (includes inactive and disabled)

code: virtual int32 GetNumConstraints() const


description: Whether the constraint was broken this frame (transient flag for use by event system)

code: bool IsConstraintBreaking ( int32 ConstraintIndex ) const


description: Whether the constraint is broken

code: bool IsConstraintBroken ( int32 ConstraintIndex ) const


code: [ESyncState](API\Runtime\Chaos\Chaos\Chaos__ESyncState) GetConstraintSyncState ( int32 ConstraintIndex ) const


description: Whether the constraint is enabled

code: bool IsConstraintEnabled ( int32 ConstraintIndex ) const


description: Whether the drive target has changed

code: bool IsDriveTargetChanged ( int32 ConstraintIndex ) const


description: Get the number of constraints.

code: int32 NumConstraints() const


description: Called oncer per tick to initialize buffers required for the rest of the tick

code: virtual void PrepareTick()


description: Remove the specified constraint.

code: void RemoveConstraint ( int ConstraintIndex )


description: Empty the constraints (must be removed from the graph first, if required)

code: virtual void ResetConstraints()


description: Get the solver settings (used by FPBDJointContainerSolver)

code: const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & GetSettings() const


description: Deprecated* Joint Solver API moved to FPBDJointContainerSolver

code: void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void ScatterOutput ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void ScatterOutput ( const int32 ConstraintIndex, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Set the angular drive target for a constraint by index

code: void SetAngularDrivePositionTarget ( int32 ConstraintIndex, [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) InAngularDrivePositionTarget )


description: Set the break callback. This will be called once after the constraint solver phase on the \ tick when the constraint is broken. There is only one callback allowed - it is usually a method on the owner (e.g., the Evolution object) which will probably dispatch its own event.

code: void SetBreakCallback ( const [FJointBreakCallback](API\Runtime\Chaos\Chaos\FJointBreakCallback) & Callback )


description: Enable or disable a constraints

code: void SetConstraintEnabled ( int32 ConstraintIndex, bool bEnabled )


code: void SetConstraintEnabledDuringResim ( int32 ConstraintIndex, bool bEnabled )


code: void RemoveConstraints ( const [TSet](API\Runtime\Core\Containers\TSet)< [TGeometryParticleHandle](API\Runtime\Chaos\Chaos\TGeometryParticleHandle)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > * > & RemovedParticles )


description: Set the settings for a joint constraint by index

code: void SetConstraintSettings ( int32 ConstraintIndex, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & InConstraintSettings )


code: void SetConstraintSyncState ( int32 ConstraintIndex, [ESyncState](API\Runtime\Chaos\Chaos\Chaos__ESyncState) SyncState )


description: Set Drive Target Changed State

code: void SetDriveTargetChanged ( int32 ConstraintIndex, bool bTargetChanged )


description: Set the linear drive target for a constraint by index

code: void SetLinearDrivePositionTarget ( int32 ConstraintIndex, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InLinearDrivePositionTarget )


description: Modify the solver settings

code: void SetSettings ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & InSettings )


description: Called by the joint solver at the end of the constraint solver phase.

code: void SetSolverResults ( const int32 ConstraintIndex, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & LinearImpulse, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & AngularImpulse, const bool bIsBroken, const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) * SolverBody0, const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) * SolverBody1 )


description: Whether to sort the joints internally. Sort will be triggered on any tick when a joint was added. Only needed for RBAN.

code: void SetSortEnabled ( const bool bInEnable )


description: Whether to use a linear or non-linear joint solver. Non-linear is more stable but much more expensive. A linear solver is used by default (seeFPBDJointSolverSettings).

code: void SetUseLinearJointSolver ( const bool bInEnable )


description: Should undo any allocations in PrepareTick

code: virtual void UnprepareTick()


className: FPBDJointConstraints

description: A set of joint restricting up to 6 degrees of freedom, with linear and angular limits.

code: class FPBDJointConstraints : public [Chaos::FPBDConstraintContainer](API\Runtime\Chaos\Chaos\FPBDConstraintContainer)


code: typedef [TVector](API\Runtime\Chaos\Chaos\TVector)< [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3), 2 > FTransformPair


code: bool operator== ( const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & Other ) const


description: Ensure that settings are consistent and within valid ranges. Should be called whenever settings change.

code: void Sanitize()


className: FPBDJointSettings

code: class FPBDJointSettings

AngularBreakTorque

type: FReal

AngularDriveForceMode

type: EJointForceMode

AngularMotionTypes

type: TVector<EJoint...

bAngularSLerpPositionDriveEnabled

type: bool

bLinearPositionDriveEnabled

type: TVector< bool, ...

ConnectorTransforms

type: FTransformPair

LinearPlasticityType

type: EPlasticityType

UserData

type: void *


className: FPBDJointSolverSettings

code: class FPBDJointSolverSettings

bSolvePositionLast

description: Whether to solve rotation then position limits (true), or vice versa Solving position last leads to less separation at the joints when limits are being forced

bSortEnabled

description: Whether the joints need to be sorted (only required for RBAN - the world solver uses the constraint graph for ordering)

bUseLinearSolver

description: Whether to use the linear or non-linear joint solver.

bUsePositionBasedDrives

description: Whether joints are position-based or velocity-based in the solver.

MinParentMassRatio

description: Stability control.

MinSolverStiffness

description: Solver Stiffness (increases over iterations)

SwingTwistAngleTolerance

description: Tolerances.


className: FPBDJointState

description: Peristent variable state for a joint

code: class FPBDJointState

ResimType

type: EResimType

SyncState

type: ESyncState


description:
Increase the lower inertia components to ensure that the maximum ratio between any pair of elements is MaxRatio.
An altered inertia so that the minimum element is at least MaxElement/MaxRatio.

code: static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) ConditionInertia ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InI, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) MaxRatio )


code: static void ConditionInverseMassAndInertia ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) & InOutInvMParent, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & InOutInvMChild, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InOutInvIParent, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InOutInvIChild, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) MinParentMassRatio, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) MaxInertiaRatio )


code: static void ConditionInverseMassAndInertia ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) & InInvMParent, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) & InInvMChild, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InInvIParent, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InInvIChild, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) MinParentMassRatio, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) MaxInertiaRatio, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & OutInvMParent, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & OutInvMChild, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & OutInvIParent, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & OutInvIChild )


description:
Increase the IParent inertia so that its largest component is at least MinRatio times the largest IChild component. This is used to condition joint chains for more robust solving with low iteration counts or larger time steps.
The max/min ratio of InI elements.

code: static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) ConditionParentInertia ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & IParent, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & IChild, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) MinRatio )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) ConditionParentMass ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) MParent, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) MChild, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) MinRatio )


code: static void DecomposeSwingTwistLocal ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R1, [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R01Swing, [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R01Twist )


code: static bool GetAngularDriveAccelerationMode ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetAngularProjection ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetAngularSLerpDriveDamping ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetAngularSLerpDriveStiffness ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static bool GetAngularSoftAccelerationMode ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetAngularSwingDriveDamping ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetAngularSwingDriveStiffness ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetAngularTwistDriveDamping ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetAngularTwistDriveStiffness ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static void GetCircularConeAxisErrorLocal ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) SwingLimit, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & AxisLocal, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Error )


code: static void GetConeAxisAngleLocal ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) AngleTolerance, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & AxisLocal, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Angle )


code: static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetCylinderLimitedPositionError ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & CX, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Limit, const [EJointMotionType](API\Runtime\Chaos\Chaos\Chaos__EJointMotionType) AxisMotion )


code: static void GetCylindricalAxesDeltas ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & X0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & X1, const int32 CylinderAxisIndex, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & CylinderAxis, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & CylinderDelta, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & RadialAxis, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & RadialDelta )


code: static void GetDualConeSwingAxisAngle ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R1, const [EJointAngularConstraintIndex](API\Runtime\Chaos\Chaos\Chaos__EJointAngularConstraintIn-) SwingConstraintIndex, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Angle )


code: static void GetEllipticalConeAxisErrorLocal ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) SwingLimitY, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) SwingLimitZ, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & AxisLocal, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Error )


code: static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetLimitedPositionError ( const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & CX )


code: static bool GetLinearDriveAccelerationMode ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetLinearDriveDamping ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings, const int32 AxisIndex )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetConeAngleLimit ( const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & SwingAxisLocal, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) SwingAngle )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetLinearDriveStiffness ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings, const int32 AxisIndex )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetLinearProjection ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static bool GetLinearSoftAccelerationMode ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetLinearStiffness ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetLineLimitedPositionError ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & CX, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Limit, const [EJointMotionType](API\Runtime\Chaos\Chaos\Chaos__EJointMotionType) AxisMotion )


code: static void GetLockedRotationAxes ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R1, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis0, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis1, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis2 )


code: static void GetLockedSwingAxisAngle ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R1, const [EJointAngularConstraintIndex](API\Runtime\Chaos\Chaos\Chaos__EJointAngularConstraintIn-) SwingConstraintIndex, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Angle )


code: static void GetPlanarAxisDelta ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & X0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & X1, const int32 PlaneAxisIndex, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Delta )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetShockPropagationInvMassScale ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetSoftLinearDamping ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static bool GetSoftLinearLimitEnabled ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetSoftLinearStiffness ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetSoftSwingDamping ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static bool GetSoftSwingLimitEnabled ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetSoftSwingStiffness ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetSoftTwistDamping ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static bool GetSoftTwistLimitEnabled ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetSoftTwistStiffness ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetSphereLimitedPositionError ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & CX, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Radius )


code: static void GetSphericalAxisDelta ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & X0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & X1, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Delta )


code: static void GetSwingAxisAngle ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) AngleTolerance, const [EJointAngularConstraintIndex](API\Runtime\Chaos\Chaos\Chaos__EJointAngularConstraintIn-) SwingConstraintIndex, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Angle )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetSwingStiffness ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


code: static void GetSwingTwistAngles ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R1, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & TwistAngle, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Swing1Angle, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Swing2Angle )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetTwistAngle ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & InTwist )


code: static void GetTwistAxisAngle ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R0, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R1, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Axis, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & Angle )


code: static [FReal](API\Runtime\ChaosCore\Chaos\FReal) GetTwistStiffness ( const [FPBDJointSolverSettings](API\Runtime\Chaos\Chaos\FPBDJointSolverSettings) & SolverSettings, const [FPBDJointSettings](API\Runtime\Chaos\Chaos\FPBDJointSettings) & JointSettings )


className: FPBDJointUtilities

code: class FPBDJointUtilities


code: void Apply ( [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt ) const


code: static bool IsEnabled ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


description: Deprecated* UseSetProperties(const FCollectionPropertyConstFacade&, const TMap>&, FSolverReal)instead.

code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection )


code: void SetProperties ( const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MeshScale )


className: TetherScaleName

code: static const [FName](API\Runtime\Core\UObject\FName) TetherScaleName = TEXT("TetherScale");


className: TetherStiffnessName

code: static const [FName](API\Runtime\Core\UObject\FName) TetherStiffnessName = TEXT("TetherStiffness");


description: Deprecated* Use weight map constructor instead.

code: FPBDLongRangeConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const int32 InParticleOffset, const int32 InParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TConstArrayView< [TTuple](API\Runtime\Core\Misc\TTuple)< int32, int32, [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >>> & InTethers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & ScaleMultipliers, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MeshScale )


code: FPBDLongRangeConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const int32 InParticleOffset, const int32 InParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TConstArrayView< [TTuple](API\Runtime\Core\Misc\TTuple)< int32, int32, [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >>> & InTethers, const [TMap](API\Runtime\Core\Containers\TMap)< [FString](API\Runtime\Core\Containers\FString), TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >> & WeightMaps, const [FCollectionPropertyConstFacade](API\Runtime\Chaos\Chaos\FCollectionPropertyConstFacade) & PropertyCollection, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MeshScale )


code: FPBDLongRangeConstraints ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const int32 InParticleOffset, const int32 InParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TConstArrayView< [TTuple](API\Runtime\Core\Misc\TTuple)< int32, int32, [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >>> & InTethers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & ScaleMultipliers, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InScale, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MeshScale )


code: virtual ~FPBDLongRangeConstraints()


className: FPBDLongRangeConstraints

code: class FPBDLongRangeConstraints : public [Chaos::Softs::FPBDLongRangeConstraintsBase](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase)


description: Set stiffness offset and range, as well as the simulation stiffness exponent.

code: void ApplyProperties ( const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) Dt, const int32 NumIterations )


description: Part of ApplyProperties to update ScaleTable.

code: void ApplyScale()


className: FTether

code: typedef [TTuple](API\Runtime\Core\Misc\TTuple)< int32, int32, [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > FTether


description: Return a vector representing the amount of segment required for the tether to shrink back to its maximum target length constraint, or zero if the constraint is already met.

code: [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) GetDelta ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [FTether](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase\FTether) & Tether, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InScale ) const


description: Return a direction and length representing the amount of segment required for the tether to shrink back to its maximum target length constraint, or zero if the constraint is already met.

code: void GetDelta ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [FTether](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase\FTether) & Tether, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InScale, [FSolverVec3](API\Runtime\Chaos\Chaos\FSolverVec3) & OutDirection, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) & OutOffset ) const


description: Return the end index of the specified tether.

code: int32 GetEndIndex ( const [FTether](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase\FTether) & Tether ) const


description: Return the dynamic particle index of the specified tether.

code: int32 GetEndParticle ( const [FTether](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase\FTether) & Tether ) const


description: Return the minimum number of long range tethers in a batch to process in parallel.

code: static int32 GetMinParallelBatchSize()


description: Return the reference length of the specified tether.

code: [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) GetRefLength ( const [FTether](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase\FTether) & Tether ) const


description: Return the Tether scale for the specified tether.

code: [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) GetScale ( const [FTether](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase\FTether) & Tether ) const


description: Return the start index of the specified tether.

code: int32 GetStartIndex ( const [FTether](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase\FTether) & Tether ) const


description: Return the kinematic particle index of the specified tether.

code: int32 GetStartParticle ( const [FTether](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase\FTether) & Tether ) const


description: Return the stiffness input values used by the constraint.


description: Return the target length of the specified tether (= RefLength * Scale)

code: [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) GetTargetLength ( const [FTether](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase\FTether) & Tether ) const


description: Return the tethers, organized in concurent friendly batches.

code: const [TArray](API\Runtime\Core\Containers\TArray)< TConstArrayView< [FTether](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase\FTether) > > & GetTethers() const


description: Return whether the constraint has been setup with a weightmap to interpolate between two low and high values of scales

code: bool HasScaleWeightMap() const


className: MaxTetherScale

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MaxTetherScale = (FSolverReal)10.;


className: MinTetherScale

code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MinTetherScale = (FSolverReal)0.01;


code: [FPBDLongRangeConstraintsBase](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase) & operator= ( const [FPBDLongRangeConstraintsBase](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase) & )


code: [FPBDLongRangeConstraintsBase](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase) & operator= ( [FPBDLongRangeConstraintsBase](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase) && )


description: Set the stiffness and scale values used by the constraint.

code: void SetProperties ( const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InTetherScale, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MeshScale )


description: Set the scale low and high value of the scale weight map

code: void SetScale ( const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InScale )


description: Set the stiffness input values used by the constraint

code: void SetStiffness ( const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness )


className: TableSize

code: static constexpr int32 TableSize = 16;


code: FPBDLongRangeConstraintsBase ( [FPBDLongRangeConstraintsBase](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase) && )


code: FPBDLongRangeConstraintsBase ( const [FPBDLongRangeConstraintsBase](API\Runtime\Chaos\Chaos\FPBDLongRangeConstraintsBase) & )


code: FPBDLongRangeConstraintsBase ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const int32 InParticleOffset, const int32 InParticleCount, const [TArray](API\Runtime\Core\Containers\TArray)< TConstArrayView< [TTuple](API\Runtime\Core\Misc\TTuple)< int32, int32, [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) >>> & InTethers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & StiffnessMultipliers, const TConstArrayView< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) > & ScaleMultipliers, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InStiffness, const [FSolverVec2](API\Runtime\Chaos\Chaos\FSolverVec2) & InScale, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MaxStiffness, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) MeshScale )


className: FPBDLongRangeConstraintsBase

code: class FPBDLongRangeConstraintsBase

ParticleCount

type: const int32

Stiffness

type: FPBDStiffness

Tethers

type: constTArray< T...

TetherScale

type: FPBDWeightMap


code: FPBDNullConstraint ( const [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > & InConstrainedParticles )


className: FPBDNullConstraint

description: A dummy constraint used for unit testing.

code: class FPBDNullConstraint

ConstrainedParticles

type: FParticlePair


code: virtual [FParticlePair](API\Runtime\Chaos\Chaos\FParticlePair) GetConstrainedParticles() const


code: virtual void SetIsSleeping ( bool bInIsSleeping )


code: virtual void SetEnabled ( bool bInEnabled )


code: static const [FConstraintHandleTypeID](API\Runtime\Chaos\Chaos\FConstraintHandleTypeID) & StaticType()


code: FPBDNullConstraintHandle ( [FPBDNullConstraints](API\Runtime\Chaos\Chaos\FPBDNullConstraints) * InConstraintContainer, int32 ConstraintIndex )


description: TSimpleConstraintContainerSolverAPI - used by RBAN solvers

code: void AddBodies ( [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


className: FPBDNullConstraintHandle

code: class FPBDNullConstraintHandle : public [Chaos::TIndexedContainerConstraintHandle< FPBDNullConstraints >](API\Runtime\Chaos\Chaos\Evolution\TIndexedContainerConstraintHandl-)


description: TIndexedConstraintContainerSolverAPI - used by World solvers

code: void AddBodies ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


code: [FPBDNullConstraintHandle](API\Runtime\Chaos\Chaos\FPBDNullConstraintHandle) * AddConstraint ( const [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > & InConstraintedParticles )


description: Add all the constraints in the container to the graph

code: virtual void AddConstraintsToGraph ( [Private::FPBDIslandManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandManager) & IslandManager )


code: void ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyPositionConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyProjectionConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyVelocityConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void GatherInput ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: [FParticlePair](API\Runtime\Chaos\Chaos\FParticlePair) GetConstrainedParticles ( int32 ConstraintIndex ) const


code: [FPBDNullConstraint](API\Runtime\Chaos\Chaos\FPBDNullConstraint) & GetConstraint ( const int32 ConstraintIndex )


code: const [FPBDNullConstraint](API\Runtime\Chaos\Chaos\FPBDNullConstraint) & GetConstraint ( const int32 ConstraintIndex ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< [FPBDNullConstraintHandle](API\Runtime\Chaos\Chaos\FPBDNullConstraintHandle) * > & GetConstraintHandles()


description: FConstraintContainer Implementation

code: virtual int32 GetNumConstraints() const


description: Called oncer per tick to initialize buffers required for the rest of the tick

code: virtual void PrepareTick()


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FPBDNullConstraintHandle](API\Runtime\Chaos\Chaos\FPBDNullConstraintHandle) * > & GetConstraintHandles() const


description: Empty the constraints (must be removed from the graph first, if required)

code: virtual void ResetConstraints()


code: void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Should undo any allocations in PrepareTick

code: virtual void UnprepareTick()


code: void ScatterOutput ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


className: FPBDNullConstraints

description: Constraint Container with minimal API required to test the Graph.

code: class FPBDNullConstraints : public [Chaos::TPBDIndexedConstraintContainer< FPBDNullConstraints >](API\Runtime\Chaos\Chaos\Evolution\TPBDIndexedConstraintContainer)

Constraints

type: TArray<FPBDNul...

HandleAllocator

type: TConstraintHand...


className: FPBDParticles

code: typedef [TPBDParticles](API\Runtime\Chaos\Chaos\TPBDParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FPBDParticles


code: virtual [FParticlePair](API\Runtime\Chaos\Chaos\FParticlePair) GetConstrainedParticles() const


code: static const [FConstraintHandleTypeID](API\Runtime\Chaos\Chaos\FConstraintHandleTypeID) & StaticType()


code: FPBDPositionConstraintHandle ( [FConstraintContainer](API\Runtime\Chaos\Chaos\FPBDPositionConstraintHandle\FConstraintContainer) * InConstraintContainer, int32 InConstraintIndex )


className: FPBDPositionConstraintHandle

code: class FPBDPositionConstraintHandle : public [Chaos::TIndexedContainerConstraintHandle< FPBDPositionConstraints >](API\Runtime\Chaos\Chaos\Evolution\TIndexedContainerConstraintHandl-)


code: void AddBodies ( [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


code: void AddBodies ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


code: void AddBodies &40; const int32 ConstraintIndex, FSolverBodyContainer & SolverBodyContainer &41;


description: Add a constraint.

code: [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDPositionConstraints\FConstraintContainerHandle) * AddConstraint ( [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * Particle, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Position )


code: virtual void AddConstraintsToGraph ( [Private::FPBDIslandManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandManager) & IslandManager )


code: void ApplyPositionConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyProjectionConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyVelocityConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Disabled the specified constraint.

code: void DisableConstraints ( const [TSet](API\Runtime\Core\Containers\TSet)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > & RemovedParticles )


code: void ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


className: FHandles

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDPositionConstraints\FConstraintContainerHandle) * > FHandles


code: void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void GatherInput ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: const [FHandles](API\Runtime\Chaos\Chaos\FPBDPositionConstraints\FHandles) & GetConstConstraintHandles() const


code: const [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDPositionConstraints\FConstraintContainerHandle) * GetConstraintHandle ( int32 ConstraintIndex ) const


description: Get the particles that are affected by the specified constraint.

code: [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > GetConstrainedParticles ( int32 ConstraintIndex ) const


code: [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDPositionConstraints\FConstraintContainerHandle) * GetConstraintHandle ( int32 ConstraintIndex )


description: Constraint API


description: Get the world-space constraint positions for each body.

code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & GetConstraintPosition ( int ConstraintIndex ) const


description: FConstraintContainer Implementation

code: virtual int32 GetNumConstraints() const


description: Constraint Container API Get the number of constraints.

code: int32 NumConstraints() const


code: virtual void PrepareTick()


description: Remove a constraint.

code: void RemoveConstraint ( int ConstraintIndex )


code: void Replace ( const int32 ConstraintIndex, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Position )


code: virtual void ResetConstraints()


code: void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void ScatterOutput ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void UnprepareTick()


description: An opportunity to create/destroy constraints based on particle state.

code: virtual void UpdatePositionBasedState ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: FPBDPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InStiffness )


code: FPBDPositionConstraints ( [TArray](API\Runtime\Core\Containers\TArray)< [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) > && Locations, [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > && InConstrainedParticles, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InStiffness )


className: FPBDPositionConstraints

description: Constraint a single particle to a world-space position.

code: class FPBDPositionConstraints : public [Chaos::TPBDIndexedConstraintContainer< FPBDPositionConstraints >](API\Runtime\Chaos\Chaos\Evolution\TPBDIndexedConstraintContainer)


className: FPBDRigidClusteredParticles

code: typedef [TPBDRigidClusteredParticles](API\Runtime\Chaos\Chaos\TPBDRigidClusteredParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FPBDRigidClusteredParticles


className: FPBDRigidClusteredParticleHandle

code: typedef [TPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\TPBDRigidClusteredParticleHandle)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FPBDRigidClusteredParticleHandle


code: virtual [FParticlePair](API\Runtime\Chaos\Chaos\FParticlePair) GetConstrainedParticles() const


code: static const [FConstraintHandleTypeID](API\Runtime\Chaos\Chaos\FConstraintHandleTypeID) & StaticType()


code: FPBDRigidDynamicSpringConstraintHandle ( [FConstraintContainer](API\Runtime\Chaos\Chaos\FPBDRigidDynamicSpringConstraint-\FConstraintContainer) * InConstraintContainer, int32 InConstraintIndex )


className: FPBDRigidDynamicSpringConstraintHandle

code: class FPBDRigidDynamicSpringConstraintHandle : public [Chaos::TIndexedContainerConstraintHandle< FPBDRigidDynamicSpringConstraints >](API\Runtime\Chaos\Chaos\Evolution\TIndexedContainerConstraintHandl-)


code: void AddBodies ( [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


code: void AddBodies ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


code: void AddBodies &40; const int32 ConstraintIndex, FSolverBodyContainer & SolverBodyContainer &41;


description: Add a constraint initialized from current world-space particle positions. You would use this method when your objects are already positioned in the world.

code: [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDRigidDynamicSpringConstraint-_1\FConstraintConta-) * AddConstraint ( const [FConstrainedParticlePair](API\Runtime\Chaos\Chaos\FPBDRigidDynamicSpringConstraint-_1\FConstrainedPart-) & InConstrainedParticles )


code: virtual void AddConstraintsToGraph ( [Private::FPBDIslandManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandManager) & IslandManager )


code: void ApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyPositionConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyProjectionConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void ApplyVelocityConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Disabled the specified constraint.

code: void DisableConstraints ( const [TSet](API\Runtime\Core\Containers\TSet)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > & RemovedParticles )


className: FConstrainedParticlePair

code: typedef [TVec2](API\Runtime\ChaosCore\Chaos\TVec2)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > FConstrainedParticlePair


code: typedef [TArray](API\Runtime\Core\Containers\TArray)< [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDRigidDynamicSpringConstraint-_1\FConstraintConta-) * > FHandles


code: void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void GatherInput ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: const [FHandles](API\Runtime\Chaos\Chaos\FPBDRigidDynamicSpringConstraint-_1\FHandles) & GetConstConstraintHandles() const


code: const [FConstrainedParticlePair](API\Runtime\Chaos\Chaos\FPBDRigidDynamicSpringConstraint-_1\FConstrainedPart-) & GetConstrainedParticles ( int32 ConstraintIndex ) const


code: const [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDRigidDynamicSpringConstraint-_1\FConstraintConta-) * GetConstraintHandle ( int32 ConstraintIndex ) const


code: [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\FPBDRigidDynamicSpringConstraint-_1\FConstraintConta-) * GetConstraintHandle ( int32 ConstraintIndex )


description: Constraint API


description: FConstraintContainer Implementation

code: virtual int32 GetNumConstraints() const


code: int32 NumConstraints() const


code: virtual void PrepareTick()


description: Remove the specified constraint.

code: void RemoveConstraint ( int ConstraintIndex )


code: void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void ResetConstraints()


code: void ScatterOutput ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< int32 > & ConstraintIndices, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Set the distance threshold below which springs get created between particles.

code: void SetCreationThreshold ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InCreationThreshold )


description: Set the maximum number of springs

code: void SetMaxSprings ( const int32 InMaxSprings )


code: virtual void UnprepareTick()


code: virtual void UpdatePositionBasedState ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: FPBDRigidDynamicSpringConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InStiffness )


code: FPBDRigidDynamicSpringConstraints ( [TArray](API\Runtime\Core\Containers\TArray)< [FConstrainedParticlePair](API\Runtime\Chaos\Chaos\FPBDRigidDynamicSpringConstraint-_1\FConstrainedPart-) > && InConstraints, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InCreationThreshold, const int32 InMaxSprings, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InStiffness )


className: FPBDRigidDynamicSpringConstraints

code: class FPBDRigidDynamicSpringConstraints : public [Chaos::TPBDIndexedConstraintContainer< FPBDRigidDynamicSpringConstraints >](API\Runtime\Chaos\Chaos\Evolution\TPBDIndexedConstraintContainer)


className: FPBDRigidParticle

code: typedef [TPBDRigidParticle](API\Runtime\Chaos\Chaos\TPBDRigidParticle)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FPBDRigidParticle


className: FPBDRigidParticleHandle

code: typedef [TPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\TPBDRigidParticleHandle)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FPBDRigidParticleHandle


className: FPBDRigidParticleParameters

description: Deprecated* Deprecated. this class is to be deleted, useFKinematicGeometryParticleParametersinstead

code: template<typename T, int d> struct FPBDRigidParticleParameters : public [Chaos::FKinematicGeometryParticleParameters< T, d >](API\Runtime\Chaos\Chaos\FKinematicGeometryParticleParame-)


className: FPBDRigidParticles

code: typedef [TPBDRigidParticles](API\Runtime\Chaos\TPBDRigidParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FPBDRigidParticles


className: FPBDRigidsEvolution

description: The default evolution used by unreal.


description: we do not currently support removing containers. In a few places we assume the ContainerId is persistent and equal to the array index.

code: void AddConstraintContainer ( [FPBDConstraintContainer](API\Runtime\Chaos\Chaos\FPBDConstraintContainer) & InContainer, const int32 Priority )


code: void AddForceFunction ( [FForceRule](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FForceRule) ForceFunction )


code: void AddImpulseFunction ( [FForceRule](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FForceRule) ImpulseFunction )


code: void ApplyKinematicTargets ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) StepFraction )


code: void ApplyParticlePendingData ( const [FPendingSpatialData](API\Runtime\Chaos\Chaos\FPendingSpatialData) & PendingData, [FAccelerationStructure](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FAccelerationStructure) & SpatialAcceleration, bool bUpdateCache, bool bUpdateDynamicTrees )


description: Ticks computation of acceleration structures. Normally handled by Advance, but if not advancing can be called to incrementally build structures.

code: void ComputeIntermediateSpatialAcceleration ( bool bBlock )


code: static void CopyPristineAccelerationStructures ( const [TMap](API\Runtime\Core\Containers\TMap)< [FSpatialAccelerationIdx](API\Runtime\Chaos\Chaos\FSpatialAccelerationIdx), [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FSpatialAccelerationCache](API\Runtime\Chaos\Chaos\FSpatialAccelerationCache) >> & SpatialAccelerationCache, [FAccelerationStructure](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FAccelerationStructure) * FromStructure, [FAccelerationStructure](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FAccelerationStructure) * ToStructure, bool CheckPristine )


code: static void CopyUnBuiltDynamicAccelerationStructures ( const [TMap](API\Runtime\Core\Containers\TMap)< [FSpatialAccelerationIdx](API\Runtime\Chaos\Chaos\FSpatialAccelerationIdx), [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FSpatialAccelerationCache](API\Runtime\Chaos\Chaos\FSpatialAccelerationCache) >> & SpatialAccelerationCache, [FAccelerationStructure](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FAccelerationStructure) * InternalAcceleration, [FAccelerationStructure](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FAccelerationStructure) * AsyncInternalAcceleration, [FAccelerationStructure](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FAccelerationStructure) * AsyncExternalAcceleration )


code: [TArray](API\Runtime\Core\Containers\TArray)< [TPBDRigidClusteredParticleHandle](API\Runtime\Chaos\Chaos\TPBDRigidClusteredParticleHandle)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > * > CreateClusteredParticles ( int32 NumParticles, const [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) * ExistingIndices, const [FPBDRigidParticleParameters](API\Runtime\Chaos\Chaos\FPBDRigidParticleParameters) & Params )


code: [TArray](API\Runtime\Core\Containers\TArray)< [TPBDGeometryCollectionParticleHandle](API\Runtime\Chaos\Chaos\TPBDGeometryCollectionParticleHa-)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > * > CreateGeometryCollectionParticles ( int32 NumParticles, const [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) * ExistingIndices, const [FPBDRigidParticleParameters](API\Runtime\Chaos\Chaos\FPBDRigidParticleParameters) & Params )


code: [TArray](API\Runtime\Core\Containers\TArray)< [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * > CreateDynamicParticles ( int32 NumParticles, const [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) * ExistingIndices, const [FPBDRigidParticleParameters](API\Runtime\Chaos\Chaos\FPBDRigidParticleParameters) & Params )


code: [TArray](API\Runtime\Core\Containers\TArray)< [FKinematicGeometryParticleHandle](API\Runtime\Chaos\Chaos\FKinematicGeometryParticleHandle) * > CreateKinematicParticles ( int32 NumParticles, const [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) * ExistingIndices, const [FKinematicGeometryParticleParameters](API\Runtime\Chaos\Chaos\FKinematicGeometryParticleParame-) & Params )


code: [TArray](API\Runtime\Core\Containers\TArray)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > CreateStaticParticles ( int32 NumParticles, const [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) * ExistingIndices, const [FGeometryParticleParameters](API\Runtime\Chaos\Chaos\FGeometryParticleParameters) & Params )


code: void DestroyParticle ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


description: Destroy all transient constraints (collisions) involving the specified particle.

code: virtual void DestroyTransientConstraints ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


code: template<bool bPersistent> void DirtyParticle ( [TGeometryParticleHandleImp](API\Runtime\Chaos\Chaos\TGeometryParticleHandleImp)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3, bPersistent > & Particle, const [EPendingSpatialDataOperation](API\Runtime\Chaos\Chaos\Chaos__EPendingSpatialDataOperat-) Op )


description: DestroyTransientConstraints()

code: void DisableConstraints ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * ParticleHandle )


description: Disable a particle so that it is no longer simulated. This also disables all constraints connected to the particle.

code: void DisableParticle ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


code: void DisableParticles ( [TSet](API\Runtime\Core\Containers\TSet)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > & ParticlesIn )


code: void DisableParticles ( const [TSet](API\Runtime\Core\Containers\TSet)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > & InParticles )


code: void DisableParticleWithRemovalEvent ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


description: DestroyTransientConstraints()

code: void DisconnectConstraints ( const [TSet](API\Runtime\Core\Containers\TSet)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > & RemovedParticles )


description: This only applies to persistent constraints (joints etc), not transient constraints (collisons)

code: void EnableConstraints ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * ParticleHandle )


description: Enable a particle.Only enabled particles are simulated. If the particle has constraints connected to it they will also be enabled (assuming the other particles in the constraints are also enabled).

code: void EnableParticle ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


className: FCaptureRewindRule

code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([TParticleView](API\Runtime\Chaos\Chaos\TParticleView)< [FPBDRigidParticles](API\Runtime\Chaos\Chaos\FPBDRigidParticles) > &)> FCaptureRewindRule


code: void DoTask &40; ENamedThreads::Type CurrentThread, const FGraphEventRef & MyCompletionGraphEvent &41;


code: FChaosAccelerationStructureTask &40; ISpatialAccelerationCollectionFactory & InSpatialCollectionFactory, const TMap< FSpatialAccelerationIdx, TUniquePtr< FSpatialAccelerationCache >> & InSpatialAccelerationCache, FAccelerationStructure &42; InInternalAccelerationStructure, FAccelerationStructure &42; InExternalAccelerationStructure, bool InForceFullBuild, bool InIsSingleThreaded, bool bNeedsReset &41;


className: FChaosAccelerationStructureTask

code: class FChaosAccelerationStructureTask

ExternalStructure

type: FAccelerationSt...

SpatialAccelerationCache

type: constTMap<FSp...

SpatialCollectionFactory

type: ISpatialAcceler...


className: FForceRule

code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([TTransientPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\TTransientPBDRigidParticleHandle)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > &Particle, const [FReal](API\Runtime\ChaosCore\Chaos\FReal))> FForceRule


className: FKinematicUpdateRule

code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FPBDRigidParticles](API\Runtime\Chaos\Chaos\FPBDRigidParticles) &, const [FReal](API\Runtime\ChaosCore\Chaos\FReal), const [FReal](API\Runtime\ChaosCore\Chaos\FReal), const int32)> FKinematicUpdateRule


code: void FlushExternalAccelerationQueue ( [FAccelerationStructure](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FAccelerationStructure) & Acceleration, [FPendingSpatialDataQueue](API\Runtime\Chaos\Chaos\FPendingSpatialDataQueue) & ExternalQueue )


code: void FlushInternalAccelerationQueue()


description: Perform a blocking flush of the spatial acceleration structure for situations where we aren't simulating but must have an up to date structure

code: void FlushSpatialAcceleration()


code: void FreeSpatialAcceleration_External ( [FAccelerationStructure](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FAccelerationStructure) * Structure )


className: FUpdatePositionRule

code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void(const [TParticleView](API\Runtime\Chaos\Chaos\TParticleView)< [FPBDRigidParticles](API\Runtime\Chaos\Chaos\FPBDRigidParticles) > &, const [FReal](API\Runtime\ChaosCore\Chaos\FReal))> FUpdatePositionRule


className: FUpdateVelocityRule

code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void(const [TArray](API\Runtime\Core\Containers\TArray)< [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * > &, const [FReal](API\Runtime\ChaosCore\Chaos\FReal))> FUpdateVelocityRule


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FRemovalData](API\Runtime\Chaos\Chaos\FRemovalData) > & GetAllRemovals()


description: Deprecated* Renamed to GetIslandManager


description: Deprecated* Renamed to GetIslandManager

code: const [Private::FPBDIslandManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandManager) & GetConstraintGraph() const


code: const [Private::FPBDIslandGroupManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandGroupManager) & GetIslandGroupManager() const


code: const [Private::FPBDIslandManager](API\Runtime\Chaos\Chaos\Island\FPBDIslandManager) & GetIslandManager() const


description: Get the number of position iterations the solver is running

code: int32 GetNumPositionIterations() const


code: const [TParticleView](API\Runtime\Chaos\Chaos\TParticleView)< [FPBDRigidClusteredParticles](API\Runtime\Chaos\Chaos\FPBDRigidClusteredParticles) > & GetNonDisabledClusteredView() const


description: Get the number of projection iterations the solver is running


description: Get the number of velocity iterations the solver is running

code: int32 GetNumVelocityIterations() const


code: [TGeometryParticleHandles](API\Runtime\Chaos\Chaos\TGeometryParticleHandles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & GetParticleHandles()


code: const [TGeometryParticleHandles](API\Runtime\Chaos\Chaos\TGeometryParticleHandles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & GetParticleHandles() const


code: const [FPBDRigidsSOAs](API\Runtime\Chaos\Chaos\FPBDRigidsSOAs) & GetParticles() const


code: const [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FChaosPhysicsMaterial](API\Runtime\Chaos\Chaos\FChaosPhysicsMaterial) > & GetPerParticlePhysicsMaterial ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle ) const


code: [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FChaosPhysicsMaterial](API\Runtime\Chaos\Chaos\FChaosPhysicsMaterial) > GetPhysicsMaterial ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle ) const


description: To be called when a particle geometry changes. We must clear collisions and anything else that may reference the prior shapes.

code: void InvalidateParticle ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


code: bool IsUniqueIndexPendingRelease ( [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) UniqueIdx ) const


description: Rebuilds the spatial acceleration from scratch. This should only be used for perf testing


description: To be called after creating a particle in the Particles container

code: void RegisterParticle ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle )


code: void ReleaseIdx ( [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) Idx )


code: void ReleaseUniqueIdx ( [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) UniqueIdx )


description: Remove a constraint from the constraint graph

code: void RemoveConstraintFromConstraintGraph ( [FConstraintHandle](API\Runtime\Chaos\Chaos\FConstraintHandle) * ConstraintHandle )


description: Remove a list of constraints from the constraint graph

code: void RemoveConstraintsFromConstraintGraph ( const [FConstraintHandleArray](API\Runtime\Chaos\Chaos\FConstraintHandleArray) & Constraints )


code: template<bool bPersistent> void RemoveParticleFromAccelerationStructure ( [TGeometryParticleHandleImp](API\Runtime\Chaos\Chaos\TGeometryParticleHandleImp)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3, bPersistent > & ParticleHandle )


description: Preallocate buffers for creating `Num_ particles.

code: void ReserveParticles ( const int32 Num )


description: Reset the collisions warm starting when resimulate. Ideally we should store that in the RewindData history but probably too expensive for now

code: virtual void ResetCollisions()


description: Clear all constraints from the system reeady for shut down

code: void ResetConstraints()


code: void Serialize ( [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar )


code: void SetCanStartAsyncTasks ( bool bInCanStartAsyncTasks )


code: void SetCaptureRewindDataFunction ( [FCaptureRewindRule](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FCaptureRewindRule) Rule )


description: Set the number of iterations to perform in the constraint position-solve phase

code: void SetNumPositionIterations ( int32 InNumIterations )


description: Set the number of iterations to perform in the constraint projection phase

code: void SetNumProjectionIterations ( int32 InNumIterations )


description: Set the number of iterations to perform in the constraint velocity-solve phase

code: void SetNumVelocityIterations ( int32 InNumIterations )


description: Set the kinematic target for a particle. This will exist for only one tick - a new target must be set for the next tick if required.

code: void SetParticleKinematicTarget ( [FKinematicGeometryParticleHandle](API\Runtime\Chaos\Chaos\FKinematicGeometryParticleHandle) * KinematicHandle, const [FKinematicTarget](API\Runtime\Chaos\Chaos\FKinematicTarget) & NewKinematicTarget )


code: void SetParticleObjectState ( [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * Particle, [EObjectStateType](API\Runtime\Chaos\Chaos\Chaos__EObjectStateType) ObjectState )


code: void SetParticleSleepType ( [FPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\FPBDRigidParticleHandle) * Particle, [ESleepType](API\Runtime\Chaos\Chaos\Chaos__ESleepType) InSleepType )


code: void SetParticleUpdatePositionFunction ( [FUpdatePositionRule](API\Runtime\Chaos\Chaos\FPBDRigidsEvolutionBase\FUpdatePositionRule) ParticleUpdate )


code: void SetPerParticlePhysicsMaterial ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FChaosPhysicsMaterial](API\Runtime\Chaos\Chaos\FChaosPhysicsMaterial) > & InMaterial )


code: void SetPhysicsMaterial ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle, [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FChaosPhysicsMaterial](API\Runtime\Chaos\Chaos\FChaosPhysicsMaterial) > InMaterial )


code: void SetRewindData ( [FRewindData](API\Runtime\Chaos\FRewindData) * RewindData )


code: void UpdateConstraintPositionBasedState ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Make a copy of the acceleration structure to allow for external modification. This is needed for supporting sync operations on SQ structure from game thread. You probably want to go through solver which maintains PendingExternal

code: void UpdateExternalAccelerationStructure_External ( [ISpatialAccelerationCollection](API\Runtime\Engine\PhysicsEngine\ISpatialAccelerationCollection)< [FAccelerationStructureHandle](API\Runtime\Chaos\Chaos\FAccelerationStructureHandle), [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > *& ExternalStructure, [FPendingSpatialDataQueue](API\Runtime\Chaos\Chaos\FPendingSpatialDataQueue) & PendingExternal )


code: FPBDRigidsEvolutionBase ( [FPBDRigidsSOAs](API\Runtime\Chaos\Chaos\FPBDRigidsSOAs) & InParticles, [THandleArray](API\Runtime\Chaos\Chaos\Framework\THandleArray)< [FChaosPhysicsMaterial](API\Runtime\Chaos\Chaos\FChaosPhysicsMaterial) > & InSolverPhysicsMaterials, bool InIsSingleThreaded )


className: FPBDRigidsEvolutionBase

code: class FPBDRigidsEvolutionBase

AccelerationBackingBuffer

type: TArray<TUnique...

description: The backing buffer for all acceleration structures

AccelerationStructureTaskComplete

type: FGraphEventRef

AsyncAccelerationQueue

type: FPendingSpatial...

description: Pending operations for the acceleration structures being rebuilt asynchronously

bCanStartAsyncTasks

type: bool

description: Allows us to tell evolution to stop starting async tasks if we are trying to cleanup solver/evo.

CaptureRewindData

type: FCaptureRewindR...

Collided

type: TArrayCollectio...

ConstraintContainers

type: TArray<FPBDCon...

ExternalStructuresPool

type: TQueue<FAccele...

description: External thread will push into this when done with structure internal thread will pop from this to generate new structure

ExternalStructuresQueue

description: Internal thread will push into this and external thread will consume

ForceRules

type: TArray<FForceR...

InternalAccelerationQueue

description: Pending operations for the internal acceleration structure

KinematicUpdate

type: FKinematicUpdat...

description: The latest external timestamp we consumed inputs from, assigned to evolution when solver task executes, is used to stamp output data.

MAllRemovals

type: TArray<FRemova...

MRewindData

type: FRewindData...

Particles

type: FPBDRigidsSOAs...

ParticleToCacheInnerIdx

type: TArrayAsMap<FU...

description: Void SerializePendingMap(FChaosArchive& Ar, TMap& Map) { TArrayKeys; if (!Ar.IsLoading()) { Map.GenerateKeyArray(Keys); } Ar << AsAlwaysSerializableArray(Keys); for (auto Key : Keys) {FPendingSpatialData& PendingData = Map.FindOrAdd(Key); PendingData.Serialize(Ar); } /TODO: fix serialization } Used for async acceleration rebuild

ParticleUpdatePosition

type: FUpdatePosition...

PendingReleaseIndices

type: TArray<FUnique...

SolverPhysicsMaterials

type: THandleArray<F...

SpatialAccelerationCache

type: TMap<FSpatialA...

type: TUniquePtr<ISp...


className: FPBDRigidsEvolutionCallback

code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void()> FPBDRigidsEvolutionCallback


code: void Advance ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) MaxStepDt, const int32 MaxSteps )


code: void AdvanceOneTimeStep ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) dt, const [FSubStepInfo](API\Runtime\Chaos\Chaos\Framework\FSubStepInfo) & SubStepInfo )


code: void AdvanceOneTimeStepImpl ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) dt, const [FSubStepInfo](API\Runtime\Chaos\Chaos\Framework\FSubStepInfo) & SubStepInfo )


className: DefaultCollisionCullDistance

code: static constexpr [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) DefaultCollisionCullDistance = 3.0f;


code: [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [IResimCacheBase](API\Runtime\Chaos\Chaos\IResimCacheBase) > CreateExternalResimCache() const


className: DefaultCollisionMarginFraction

code: static constexpr [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) DefaultCollisionMarginFraction = 0.05f;


className: DefaultCollisionMarginMax

code: static constexpr [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) DefaultCollisionMarginMax = 10.0f;


className: DefaultCollisionMaxPushOutVelocity

code: static constexpr [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) DefaultCollisionMaxPushOutVelocity = 1000.0f;


className: DefaultNumPositionIterations

description: Default iteration counts.

code: static constexpr int32 DefaultNumPositionIterations = 8;


className: DefaultNumProjectionIterations

code: static constexpr int32 DefaultNumProjectionIterations = 1;


className: DefaultNumVelocityIterations

code: static constexpr int32 DefaultNumVelocityIterations = 1;


className: DefaultRestitutionThreshold

code: static constexpr int32 DefaultRestitutionThreshold = 1000;