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