Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[broadphase] update() should be no-op for the dynamic axis-aligned bounding-box tree when no collision object changes its bounding volume. #368

Open
DamrongGuoy opened this issue Feb 4, 2019 · 0 comments

Comments

@DamrongGuoy
Copy link
Contributor

Currently the update() function of DynamicAABBTreeCollisionManager<> changes the structure of the tree even though no collision objects changes its bounding volume. The updated tree is still valid; however, it can switch the order of the two potential colliding objects (A,B) to (B,A). As a result, the subsequent narrowphase algorithm may give a different answer within a certain tolerance.

The update() function involves removing and inserting the same leaf nodes in HierarchyTree. As a result, it is non-trivial to maintain exactly the same node ordering in the tree. One possible solution is to add a dirty bit in the node to decide whether the tree needs updating.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant