Navigation
API > API/Runtime > API/Runtime/Chaos
All the data required to solver a set of constraints. All constraints in the groups are solved in sequence in a single thread. We can create one of these for each Island (or group of Islands, or subset of a color of constraints) for parallelism.
| Name | FPBDConstraintGroupSolver |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/Evolution/ConstraintGroupSolver.h |
| Include Path | #include "Chaos/Evolution/ConstraintGroupSolver.h" |
Syntax
class FPBDConstraintGroupSolver
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Chaos/Evolution/ConstraintGroupSolver.h | |||
| Chaos/Evolution/ConstraintGroupSolver.h | |||
| Chaos/Evolution/ConstraintGroupSolver.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FPBDConstraintGroupSolver() |
Chaos/Evolution/ConstraintGroupSolver.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddConstraintsAndBodies() |
Set up the constraints solvers and body containers with pointers to their constraint and particles, but do not collect any data. | Chaos/Evolution/ConstraintGroupSolver.h | |
void ApplyPositionConstraints
(
const FReal Dt |
Apply positional constraints, and set the body velocities | Chaos/Evolution/ConstraintGroupSolver.h | |
void ApplyProjectionConstraints
(
const FReal Dt |
Apply projection to attempt to fix up any errors left over from the Position and Velocity saolver phases | Chaos/Evolution/ConstraintGroupSolver.h | |
void ApplyVelocityConstraints
(
const FReal Dt |
Apply any velocity constraints, and update the body velocities | Chaos/Evolution/ConstraintGroupSolver.h | |
void GatherBodies
(
const FReal Dt |
Collect all the data for all solver bodies from their respective particles. | Chaos/Evolution/ConstraintGroupSolver.h | |
void GatherBodies
(
const FReal Dt, |
Collect all the data for the specified range of solver bodies from their respective particles. | Chaos/Evolution/ConstraintGroupSolver.h | |
void GatherConstraints
(
const FReal Dt, |
Collect all the data for the specified range of constraint solvers from their respective constraints. | Chaos/Evolution/ConstraintGroupSolver.h | |
void GatherConstraints
(
const FReal Dt |
Collect all the data for all constraint solvers from their respective constraints. | Chaos/Evolution/ConstraintGroupSolver.h | |
FIterationSettings GetIterationSettings() |
Get the iterations settings for this group of islands | Chaos/Evolution/ConstraintGroupSolver.h | |
int32 GetNumSolverBodies () |
Get the number of solver bodies we have. | Chaos/Evolution/ConstraintGroupSolver.h | |
int32 GetNumSolverConstraints() |
Get the number of constraint solver we have, after AddConstraintsAndBodies() has been called. | Chaos/Evolution/ConstraintGroupSolver.h | |
void PreApplyPositionConstraints
(
const FReal Dt |
For additional processing after gathering all the data. | Chaos/Evolution/ConstraintGroupSolver.h | |
void PreApplyProjectionConstraints
(
const FReal Dt |
Chaos/Evolution/ConstraintGroupSolver.h | ||
void PreApplyVelocityConstraints
(
const FReal Dt |
Chaos/Evolution/ConstraintGroupSolver.h | ||
void Reset() |
Reset all state - called once per tick | Chaos/Evolution/ConstraintGroupSolver.h | |
void ScatterBodies
(
const FReal Dt, |
Push results from the specified range of solver bodies back to their respective particles. | Chaos/Evolution/ConstraintGroupSolver.h | |
void ScatterBodies
(
const FReal Dt |
Push results from all solver bodies back to their respective particles. | Chaos/Evolution/ConstraintGroupSolver.h | |
void ScatterConstraints
(
const FReal Dt, |
Push results from the specified range of constraint solvers back to their respective constraints.Will be called from multiple threads with different non-overlapping indices. | Chaos/Evolution/ConstraintGroupSolver.h | |
void ScatterConstraints
(
const FReal Dt |
Push results from all constraint solvers back to their respective constraints. | Chaos/Evolution/ConstraintGroupSolver.h | |
void SetConstraintSolver
(
const int32 ContainerId, |
Attach a constraint solver to the specified ContainerId. | Chaos/Evolution/ConstraintGroupSolver.h | |
void SetConstraintSolverPriority
(
const int32 ContainerId, |
Set the solver priority of the specified constraint type | Chaos/Evolution/ConstraintGroupSolver.h | |
virtual void SetIterationSettings
(
const FIterationSettings& InIterations |
Set the iterations settings for this group of islands | Chaos/Evolution/ConstraintGroupSolver.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddConstraintsImpl() |
Allow a derived class to add constraints solvers. | Chaos/Evolution/ConstraintGroupSolver.h | |
void ApplyToConstraintRange
(
const int32 BeginConstraintIndex, |
Loop over the range of constraints and apply the lambda. | Chaos/Evolution/ConstraintGroupSolver.h | |
virtual void GatherBodiesImpl
(
const FReal Dt, |
Allow a derived class to populate some of the SolverBody data (Level and Color) | Chaos/Evolution/ConstraintGroupSolver.h | |
virtual void ResetImpl() |
Allow a derived class to perform per-tick reset. | Chaos/Evolution/ConstraintGroupSolver.h | |
virtual void SetConstraintSolverImpl
(
const int32 ContainerId |
Allow a derived class to add data based on the number of constraint types we need to support. | Chaos/Evolution/ConstraintGroupSolver.h | |
void SortSolverContainers() |
Sort the solvers based on Level and other criteria for more stable solving. | Chaos/Evolution/ConstraintGroupSolver.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Chaos/Evolution/ConstraintGroupSolver.h | |||
FPBDConstraintGroupSolver & operator=
(
const FPBDConstraintGroupSolver& |
Chaos/Evolution/ConstraintGroupSolver.h |