Skip to content

Fix fixed bodies remaining in the active set - #1063

Open
matthew-walters wants to merge 1 commit into
dimforge:masterfrom
matthew-walters:fix-1049-fixed-body-active-set
Open

matthew-walters wants to merge 1 commit into
dimforge:masterfrom
matthew-walters:fix-1049-fixed-body-active-set

Conversation

@matthew-walters

Copy link
Copy Markdown

Fixes #1049.

When an awake dynamic body was changed to Fixed, it was removed from its persistent island but remained in the active body set indefinitely.

This routes the type change through the existing full island-removal path, which removes both persistent and active membership and repairs indices affected by swap-removal.

The regression verifies that:

  • fixed bodies leave both island representations
  • the surviving active-body entry remains valid
  • bodies changed back to dynamic are registered exactly once and respond to gravity.

Validation:

  • cargo test -p rapier3d --test persistent_islands
  • cargo test -p rapier2d --lib
  • cargo fmt --all -- --check
  • RUSTFLAGS="-D warnings" cargo clippy -p rapier2d -p rapier3d
  • git diff --check

@matthew-walters
matthew-walters force-pushed the fix-1049-fixed-body-active-set branch from 56f6145 to 5ddbef4 Compare November 4, 2026 19:24

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A body switched to Fixed while awake stays in the active set forever

1 participant