Crozet Sébastien
705876f5e5
Restore the collision pipeline
2021-04-29 10:26:44 +02:00
Crozet Sébastien
c32da78f2a
Split rigid-bodies and colliders into multiple components
2021-04-26 18:00:50 +02:00
Crozet Sébastien
8173e7ada2
Allow collider modification after its insersion to the ColliderSet.
2021-03-29 14:54:54 +02:00
Crozet Sébastien
dec3e4197f
Small refactoring of the PhysicsPipeline.
2021-03-28 11:54:33 +02:00
Crozet Sébastien
7306821c46
Attenuate the warmstart impulse for CCD contacts.
...
CCD contacts result in very strong, instantaneous, impulses. So it is preferable to attenuate their contribution to subsequent timesteps to avoid overshooting.
2021-03-28 11:27:07 +02:00
Crozet Sébastien
97157c9423
First working version of non-linear CCD based on single-substep motion-clamping.
2021-03-26 18:16:27 +01:00
Crozet Sébastien
f53d0438ed
Contact modification: make the contact normal modifiable too.
2021-02-25 15:40:54 +01:00
Crozet Sébastien
96ecb877e2
Implement dominance.
2021-02-24 13:26:51 +01:00
Crozet Sébastien
babcab0bed
Update the testbed to use PhysicsHooks.
2021-02-23 15:49:23 +01:00
Crozet Sébastien
00706e8b36
Introduce the PhysicsHook trait used for both contact filtering and contact modification.
2021-02-23 11:24:54 +01:00
Crozet Sébastien
ad5c10672e
Use contact ids instead of contact reordering in order to identify the impulse writeback location.
2021-02-22 17:52:03 +01:00
Emil Ernerfeldt
f2d9225101
Add ColliderHandle:s to PairFilterContext
...
This makes it easy to write custom filters based on the handles.
For instance, a user can add pairs of `ColliderHandle`s into a `HashSet` and
do a lookup in a `ContactPairFilter` to easily (if maybe not efficiently)
disable collisions between pairs of colliders.
The same could be accomplished by using the `user_data: u128` field of the
`Collider`, but it would be less ergonomic, and also with this PR that
`user_data` space can be saved for more important things.
2021-02-17 11:19:51 +01:00
Emil Ernerfeldt
85bc81d4fc
Make clippy a bit happier
2021-02-04 13:11:04 +01:00
Crozet Sébastien
8f7220f03d
Rename cdl to parry.
2021-01-24 11:13:44 +01:00
Crozet Sébastien
98d3980db7
Allow several rules for combining friction/restitution coefficients.
2021-01-21 16:03:27 +01:00
Crozet Sébastien
0ade350b5f
Use newtypes for collider, rigid-body and joint handles.
2021-01-20 16:33:42 +01:00
Crozet Sébastien
00da4aaa42
Add compound shape support.
2021-01-05 15:34:48 +01:00
Crozet Sébastien
aa61fe65e3
Add support of 64-bits reals.
2021-01-04 15:14:25 +01:00
Crozet Sébastien
7b098606c2
QueryPipeline: add shape casting, point projection, and intersection queries.
2020-12-31 16:30:38 +01:00
Crozet Sébastien
1feac2e02d
Restore contact events.
2020-12-31 11:37:42 +01:00
Crozet Sébastien
967145a949
Perform contact sorting in the narrow-phase directly.
2020-12-31 11:16:03 +01:00
Crozet Sébastien
43628c8846
Try using solver contacts again, but in a more cache-coherent way.
2020-12-30 17:30:07 +01:00
Crozet Sébastien
5876a262da
Remove the useless manifold.data.pair field.
2020-12-30 11:44:08 +01:00
Crozet Sébastien
0fb4b4faef
Use Isometry::inv_mul.
2020-12-29 11:31:59 +01:00
Crozet Sébastien
a0c2a2c309
Fix compilation when serde is enabled.
2020-12-29 11:31:59 +01:00
Crozet Sébastien
5c38113690
Fix compilation when serde isn't enabled.
2020-12-29 11:31:59 +01:00
Crozet Sébastien
8fe2df126a
Remove some irrelevant code.
2020-12-29 11:31:59 +01:00
Crozet Sébastien
29717c2887
Externalize the proximity code (renamed intersection).
2020-12-29 11:31:59 +01:00
Crozet Sébastien
e231bacec6
Move all the contact manifold computations out of Rapier.
2020-12-29 11:31:00 +01:00
Crozet Sébastien
cc6d1b9730
Outsource the Shape trait, wquadtree, and shape types.
2020-12-29 11:31:00 +01:00
Crozet Sébastien
9bf1321f8f
Outsource the contact manifold, SAT, and some shapes.
2020-12-29 11:31:00 +01:00
Crozet Sébastien
d98be2359d
Add methods to iterate through all the contact and proximity pairs.
2020-11-24 16:39:09 +01:00
Crozet Sébastien
437748096d
Allow retrieving one specific contact pair or proximity pair.
2020-11-24 15:21:27 +01:00
Crozet Sébastien
dc63c28f56
Fix crash when removing a collider with no graph ID.
2020-11-24 14:57:37 +01:00
Crozet Sébastien
af39ec54d3
Remove the narrow-phase graph indices from the collider.
...
They are on the narrow-phase now.
2020-11-23 15:56:53 +01:00
Crozet Sébastien
0cf59d78bd
Implement Clone for everything that can be cloned.
2020-11-03 14:43:21 +01:00
Crozet Sébastien
01af6c09a7
Fix simulation reaching different states when started from different snaphots.
2020-11-02 15:08:46 +01:00
Crozet Sébastien
74f0297221
Fix performance regression due to sleeping objects pairs no longer being ignored by the narrow-phase.
2020-10-27 17:17:14 +01:00
Crozet Sébastien
3bfa407999
ContactPairFilter: don't overwrite the effect of the solver groups.
...
This is more consistent with the fact that the effect of collision groups is not overwritten either.
2020-10-27 16:49:24 +01:00
Crozet Sébastien
24bd97636e
Rename SolverFlags::COMPUTE_FORCES to SolverFlags::COMPUTE_IMPULSES.
...
This is closer to what the solver actually does.
2020-10-27 16:21:33 +01:00
Crozet Sébastien
cc44b65094
Added user-implementable traits for collision/proximity pair filtering.
2020-10-27 16:12:40 +01:00
Crozet Sébastien
5a5ba9cf59
Take the solver flags into account when collecting contact manifolds to solve.
2020-10-27 14:35:01 +01:00
Crozet Sébastien
cb6a7ff946
Add solver flags for controlling whether or not some contacts should be taken into account by the constraints solver.
2020-10-27 14:35:01 +01:00
Crozet Sébastien
3def91d62e
Add collision groups to filter collision pairs.
2020-10-27 14:35:01 +01:00
Crozet Sébastien
865ce8a8e5
Collider shape: use a trait-object instead of an enum.
2020-10-20 11:56:09 +02:00
Crozet Sébastien
682ff61f94
Don't let the PubSub internal offsets overflow + fix some warnings.
2020-10-06 15:23:48 +02:00
Crozet Sébastien
93aa7b6e1e
Use the publish-subscribe mechanism to handle collider removals across pipelines.
2020-10-05 19:04:18 +02:00
Crozet Sébastien
7b8e322446
Make kinematic bodies properly wake up dynamic bodies.
2020-09-28 15:27:25 +02:00
Sébastien Crozet
03b437f278
Disallow contacts between two colliders attached to the same parent.
2020-08-31 19:05:14 +02:00
Sébastien Crozet
754a48b7ff
First public release of Rapier.
2020-08-25 22:10:25 +02:00