Commit Graph

42 Commits

Author SHA1 Message Date
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