Module islands

Source
Expand description

Persistent simulation islands for sleeping and waking.

Islands are retained across time steps. Each dynamic body starts with its own island, and when a constraint between two dynamic bodies is created, the islands are merged with union find.

Splitting is deferred and done using depth-first search (DFS). Only one island is split per time step, choosing the sleepiest island with one or more constraints removed as the candidate.

Islands are only used for sleeping and waking. Solver parallelism is achieved with graph coloring using the ConstraintGraph.

If simulation islands are not needed, the IslandPlugin can be omitted.

§References

Structs§

BodyIslandNode
A component that stores PhysicsIsland connectivity data for a rigid body.
IslandId
A stable identifier for a PhysicsIsland.
IslandNode
A node in a linked list in a PhysicsIsland.
IslandPlugin
A plugin for managing PhysicsIslands.
IslandSleepingPlugin
A plugin for managing sleeping and waking of PhysicsIslands.
PhysicsIsland
A simulation island that contains bodies, contacts, and joints. Used for sleeping and waking.
PhysicsIslands
A resource for the PhysicsIslands in the simulation.
SleepBody
A Command that forces a RigidBody and its PhysicsIsland to be Sleeping.
SleepIslands
A Command that makes the PhysicsIslands with the given IDs sleep if they are not already sleeping.
WakeBody
A Command that wakes up a RigidBody and its PhysicsIsland if it is Sleeping.
WakeIslands
A Command that wakes up the PhysicsIslands with the given IDs if they are sleeping.
WakeUpBodyDeprecated
A deprecated alias for WakeBody.