Navigation
API > API/Runtime > API/Runtime/Chaos
Assigns Islands to IslandGroups, attempting to have a roughly equal number of constraints per IslandGroup. Each Island Group may be solved in parallel with the others and contains its own set of ConstraintContainerSolvers (one for each type of constraint) so that solver data access may be cache efficient during the solver phases.
| Name | FPBDIslandGroupManager |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/Island/IslandGroupManager.h |
| Include Path | #include "Chaos/Island/IslandGroupManager.h" |
Syntax
class FPBDIslandGroupManager
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FPBDIslandGroupManager
(
FPBDIslandManager& InIslandManager |
Chaos/Island/IslandGroupManager.h | ||
FPBDIslandGroupManager
(
const FPBDIslandGroupManager& |
Chaos/Island/IslandGroupManager.h | ||
| Chaos/Island/IslandGroupManager.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~FPBDIslandGroupManager() |
Chaos/Island/IslandGroupManager.h |
Structs
| Name | Remarks |
|---|---|
| FIslandGroupRange | Used to specify a range of bodies or constraints in an island group for more even parallelization of Gather and Scatter. |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| IslandGroups | TArray< TUniquePtr< FPBDIslandConstraintGroupSolver > > | Chaos/Island/IslandGroupManager.h | ||
| IslandManager | FPBDIslandManager & | Chaos/Island/IslandGroupManager.h | ||
| Iterations | FIterationSettings | Chaos/Island/IslandGroupManager.h | ||
| NumActiveGroups | int32 | Chaos/Island/IslandGroupManager.h | ||
| NumWorkerThreads | int32 | Chaos/Island/IslandGroupManager.h | ||
| TargetNumBodiesPerTask | int32 | Chaos/Island/IslandGroupManager.h | ||
| TargetNumConstraintsPerTask | int32 | Chaos/Island/IslandGroupManager.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddConstraintContainer
(
FPBDConstraintContainer& ConstraintContainer, |
Register a constraint type with the manager. | Chaos/Island/IslandGroupManager.h | |
int32 BuildGroups
(
const bool bIsResimming |
Pull all the active islands from the IslandManager and assign to groups. | Chaos/Island/IslandGroupManager.h | |
FPBDIslandConstraintGroupSolver * GetGroup
(
const int32 GroupIndex |
Get the specified group | Chaos/Island/IslandGroupManager.h | |
FIterationSettings GetIslandGroupIterations
(
const int32 GroupIndex |
Chaos/Island/IslandGroupManager.h | ||
const FIterationSettings & GetIterationSettings () |
Get the default iteration settings. | Chaos/Island/IslandGroupManager.h | |
int32 GetNumActiveGroups() |
The number of groups with at least one constraint in them | Chaos/Island/IslandGroupManager.h | |
void RemoveConstraintContainer
(
FPBDConstraintContainer& ConstraintContainer |
Remove a previously-added container. | Chaos/Island/IslandGroupManager.h | |
void SetConstraintContainerPriority
(
const int32 ContainerId, |
Set the priority for the specified container (that must have been pre-registered with AddConstraintContainer). | Chaos/Island/IslandGroupManager.h | |
void SetIterationSettings
(
const FIterationSettings& InIterations |
Set the default number of iterations to perform in the Solve step (can be increased on a per-island basis by any dynamic body). | Chaos/Island/IslandGroupManager.h | |
void SetNumPositionIterations
(
const int32 InNumIterations |
Chaos/Island/IslandGroupManager.h | ||
void SetNumProjectionIterations
(
const int32 InNumIterations |
Chaos/Island/IslandGroupManager.h | ||
void SetNumVelocityIterations
(
const int32 InNumIterations |
Chaos/Island/IslandGroupManager.h | ||
void Solve
(
const FReal Dt |
Solve all constraints. | Chaos/Island/IslandGroupManager.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Chaos/Island/IslandGroupManager.h | |||
FPBDIslandGroupManager & operator=
(
const FPBDIslandGroupManager& |
Chaos/Island/IslandGroupManager.h |