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

Kinematics should not be added to constraint batch handle sets #17

Closed
RossNordby opened this issue Oct 22, 2017 · 2 comments
Closed

Kinematics should not be added to constraint batch handle sets #17

RossNordby opened this issue Oct 22, 2017 · 2 comments

Comments

@RossNordby
Copy link
Member

Given that a kinematic body's velocities cannot be modified by constraints, there is no danger in allowing multiple references to the same kinematic body within a constraint batch.

This can be important- imagine five hundred dynamics sitting inside a big kinematic spaceship. Without making this change, there would be five hundred constraint batches (at least until #15 exists, but even if it did, there's no good reason to trigger that fallback with kinematics).

This is pretty easy to implement- the only difficulty is keeping everything synchronized when a body shifts from kinematic to dynamic. All of its constraints would need to be reallocated.

@RossNordby
Copy link
Member Author

With sleeping/waking now implemented, the complexity penalty for handling this special case has increased a bit.

Given that the jacobi fallback solver is essentially required anyway, I'm leaning towards just relying on it for this. Only consider doing this after the jacobi fallback is implemented, and only if performance demands it.

@RossNordby
Copy link
Member Author

With the jacobi fallback implemented, I'm going to drop this for the foreseeable future; it's a lot of complexity for vanishingly little benefit.

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

No branches or pull requests

1 participant