Navigation
API > API/Runtime > API/Runtime/Chaos
Notes on the implementation:
- Particles are nodes in the graph
- Constraints are edges in the graph
- Each island knows about the constraints and dynamic particle in it
- Islands do not track their kinematic particles (kinematics may be in multiple islands)
| Name | FPBDIslandManager |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/Island/IslandManager.h |
| Include Path | #include "Chaos/Island/IslandManager.h" |
Syntax
class FPBDIslandManager
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FPBDIslandManager
(
FPBDRigidsSOAs& InParticles |
Chaos/Island/IslandManager.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~FPBDIslandManager() |
Chaos/Island/IslandManager.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bAssignLevels | bool | Whether we should assign levels (for shock propagation) | Chaos/Island/IslandManager.h | |
| bIsDeterministic | bool | Whether we require determinism. | Chaos/Island/IslandManager.h | |
| ConstraintContainers | TArray< const FPBDConstraintContainer * > | All the constraint types registered with the graph. | Chaos/Island/IslandManager.h | |
| DisableCounterThreshold | int32 | Chaos/Island/IslandManager.h | ||
| Edges | TPoolBackedArray< FPBDIslandConstraint > | Chaos/Island/IslandManager.h | ||
| Gravity | const FPerParticleGravity * | Chaos/Island/IslandManager.h | ||
| Islands | TPoolBackedArray< FPBDIsland > | Chaos/Island/IslandManager.h | ||
| MergeSets | TPoolBackedArray< FPBDIslandMergeSet > | For tracking what islands need to be merged each tick. | Chaos/Island/IslandManager.h | |
| NextLevelSortKey | int32 | A monotonically increasing key used to sort edges at the same level. | Chaos/Island/IslandManager.h | |
| NextVisitEpoch | int32 | A counter used to check if a node or edge has been visited in a loop. | Chaos/Island/IslandManager.h | |
| Nodes | TPoolBackedArray< FPBDIslandParticle > | The nodes, edges and islands in the graph. | Chaos/Island/IslandManager.h | |
| Particles | FPBDRigidsSOAs & | Ideally the island manager would not know about the particles, materials etc, but it is currently required for particle sleep management | Chaos/Island/IslandManager.h | |
| PerParticlePhysicsMaterials | const TArrayCollectionArray< TUniquePtr< FChaosPhysicsMaterial > > * | Chaos/Island/IslandManager.h | ||
| PhysicsMaterials | const TArrayCollectionArray< TSerializablePtr< FChaosPhysicsMaterial > > * | Chaos/Island/IslandManager.h | ||
| SimMaterials | const THandleArray< FChaosPhysicsMaterial > * | Chaos/Island/IslandManager.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddConstraint
(
const int32 ContainerId, |
Chaos/Island/IslandManager.h | ||
void AddConstraintContainer
(
const FPBDConstraintContainer& Container |
Chaos/Island/IslandManager.h | ||
void AddContainerConstraints
(
ConstraintContainerType& ConstraintContainer |
Chaos/Island/IslandManager.h | ||
void AddParticle
(
FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
void DebugDrawSleepState
(
const DebugDraw::FChaosDebugDrawSettings* DebugDrawSettings |
Debug draw. | Chaos/Island/IslandManager.h | |
void EndTick() |
Chaos/Island/IslandManager.h | ||
TArray< const FConstraintHandle * > FindConstraintsInIslands
(
const TArray< const FPBDIsland* > Islands, |
Chaos/Island/IslandManager.h | ||
void FindParticleIslands
(
const FGeometryParticleHandle* Particle, |
Chaos/Island/IslandManager.h | ||
TArray< const FPBDIsland * > FindParticleIslands
(
const FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
void FindParticlesInIslands
(
const TArray< const FPBDIsland* >& InIslands, |
Chaos/Island/IslandManager.h | ||
TArray< const FGeometryParticleHandle * > FindParticlesInIslands
(
const TArray< const FPBDIsland* > Islands |
Chaos/Island/IslandManager.h | ||
void FlagParticleTransformSetExplicitly
(
const FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
void FlagParticleUpdated
(
const FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
int32 GetConstraintColor
(
const FPBDIslandConstraint* Edge |
Chaos/Island/IslandManager.h | ||
const FPBDIsland * GetConstraintIsland
(
const FConstraintHandle* Constraint |
Chaos/Island/IslandManager.h | ||
int32 GetConstraintLevel
(
const FPBDIslandConstraint* Edge |
Chaos/Island/IslandManager.h | ||
FPBDIsland * GetIsland
(
const int32 IslandIndex |
The following is intended for testing, debugging and visualization only and is not considered part of the API. | Chaos/Island/IslandManager.h | |
const FPBDIsland * GetIsland
(
const int32 IslandIndex |
Chaos/Island/IslandManager.h | ||
int32 GetIslandArrayIndex
(
const FPBDIslandConstraint* Edge |
Chaos/Island/IslandManager.h | ||
int32 GetIslandIndex
(
const FPBDIsland* Island |
Chaos/Island/IslandManager.h | ||
int32 GetNumConstraintContainers() |
The number of registered constraint containers. | Chaos/Island/IslandManager.h | |
int32 GetNumConstraints() |
Constraint management. | Chaos/Island/IslandManager.h | |
int32 GetNumIslands() |
Access to Islands. | Chaos/Island/IslandManager.h | |
int32 GetNumParticles() |
Particles management. | Chaos/Island/IslandManager.h | |
int32 GetParticleColor
(
const FPBDIslandParticle* Node |
Chaos/Island/IslandManager.h | ||
const FPBDIsland * GetParticleIsland
(
const FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
int32 GetParticleLevel
(
FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
int32 GetParticleLevel
(
const FPBDIslandParticle* Node |
Levels and Colors for sorting an parallelization. | Chaos/Island/IslandManager.h | |
int32 GetParticleResimFrame
(
const FGeometryParticleHandle* Particle |
Resim functionality. | Chaos/Island/IslandManager.h | |
void RemoveAllConstraints() |
Chaos/Island/IslandManager.h | ||
void RemoveConstraint
(
FConstraintHandle* ConstraintHandle |
Chaos/Island/IslandManager.h | ||
void RemoveConstraintContainer
(
const FPBDConstraintContainer& Container |
Chaos/Island/IslandManager.h | ||
void RemoveContainerConstraints
(
const int32 ContainerId |
Chaos/Island/IslandManager.h | ||
void RemoveParticle
(
FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
void RemoveParticleConstraints
(
FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
void RemoveParticleContainerConstraints
(
FGeometryParticleHandle* Particle, |
Chaos/Island/IslandManager.h | ||
int32 ReserveParticles
(
const int32 InNumParticles |
Chaos/Island/IslandManager.h | ||
void Reset() |
Setup and update. | Chaos/Island/IslandManager.h | |
void ResetParticleResimFrame
(
const int32 ResetFrame |
Chaos/Island/IslandManager.h | ||
void SetAssignLevels
(
const bool bInAssignLevels |
Chaos/Island/IslandManager.h | ||
void SetDisableCounterThreshold
(
const int32 InDisableCounterThreshold |
Chaos/Island/IslandManager.h | ||
void SetGravityForces
(
const FPerParticleGravity* InGravity |
Chaos/Island/IslandManager.h | ||
void SetIsDeterministic
(
const bool bInIsDeterministic |
Chaos/Island/IslandManager.h | ||
void SetMaterialContainers
(
const TArrayCollectionArray< TSerializablePtr< FChaosPhysicsMaterial > >* InPhysicsMaterials, |
Chaos/Island/IslandManager.h | ||
void SetParticleResimFrame
(
FGeometryParticleHandle* Particle, |
Chaos/Island/IslandManager.h | ||
void SleepParticle
(
FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
void UpdateDisable
(
TFunctionRef< void(FPBDRigidParticleHandle*)> ParticleDisableFunctor |
Chaos/Island/IslandManager.h | ||
void UpdateExplicitSleep() |
Chaos/Island/IslandManager.h | ||
void UpdateIslands() |
Chaos/Island/IslandManager.h | ||
void UpdateParticleMaterial
(
FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
void UpdateParticles() |
Chaos/Island/IslandManager.h | ||
void UpdateSleep
(
const FReal Dt |
Chaos/Island/IslandManager.h | ||
void VisitAwakeConstConstraints
(
const int32 ContainerId, |
Chaos/Island/IslandManager.h | ||
void VisitAwakeConstraints
(
const int32 ContainerId, |
Visit all the awake constraints from the specified container. | Chaos/Island/IslandManager.h | |
void VisitConstConstraints
(
const int32 ContainerId, |
Chaos/Island/IslandManager.h | ||
void VisitConstraints
(
const int32 ContainerId, |
Visit all the constraints from the specified container | Chaos/Island/IslandManager.h | |
void WakeConstraintIsland
(
FConstraintHandle* Constraint |
Chaos/Island/IslandManager.h | ||
void WakeParticleIslands
(
FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h | ||
bool WasParticleTransformSetExplicitly
(
const FGeometryParticleHandle* Particle |
Chaos/Island/IslandManager.h |