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§
- Body
Island Node - A component that stores
PhysicsIsland
connectivity data for a rigid body. - Island
Id - A stable identifier for a
PhysicsIsland
. - Island
Node - A node in a linked list in a
PhysicsIsland
. - Island
Plugin - A plugin for managing
PhysicsIsland
s. - Island
Sleeping Plugin - A plugin for managing sleeping and waking of
PhysicsIsland
s. - Physics
Island - A simulation island that contains bodies, contacts, and joints. Used for sleeping and waking.
- Physics
Islands - A resource for the
PhysicsIsland
s in the simulation. - Sleep
Body - A
Command
that forces aRigidBody
and itsPhysicsIsland
to beSleeping
. - Sleep
Islands - A
Command
that makes thePhysicsIsland
s with the given IDs sleep if they are not already sleeping. - Wake
Body - A
Command
that wakes up aRigidBody
and itsPhysicsIsland
if it isSleeping
. - Wake
Islands - A
Command
that wakes up thePhysicsIsland
s with the given IDs if they are sleeping. - Wake
UpBody Deprecated - A deprecated alias for
WakeBody
.