Commit Graph

27 Commits

Author SHA1 Message Date
Crozet Sébastien
8dab63bda1 Fix regression in the WASM version of the velocity solver. 2021-03-08 15:14:54 +01:00
Crozet Sébastien
152ada67ec Fix regression causing invalid contacts to be solved. 2021-03-07 17:34:54 +01:00
Crozet Sébastien
0e4393ba9e Reduce code duplication between the SIMD and non-SIMD contact solve and warmstart. 2021-03-07 17:15:32 +01:00
Crozet Sébastien
4cb1f5c692 Fix warning when targetting wasm. 2021-03-07 11:55:10 +01:00
Crozet Sébastien
bed47a82e7 Projection friction impulses on an implicit cone instead of a pyramidal approximation. 2021-03-07 11:44:19 +01:00
Emil Ernerfeldt
ede4f0f770 cleanup 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
4162aed2a0 Add params.velocity_based_erp_inv_dt() helper 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
21247a1236 Add restorative impulse in velocity solver 2021-02-26 11:06:29 +01:00
Crozet Sébastien
96ecb877e2 Implement dominance. 2021-02-24 13:26:51 +01:00
Crozet Sébastien
3cc2738e5f Fix warnings in the WASM build. 2021-02-23 16:47:48 +01:00
Crozet Sébastien
3fdb4cd6d3 Properly take the tangent_velocity into account in the velocity solver. 2021-02-23 15:47:24 +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
5e7eedc3fd Always apply the predictive contact term, even for bouncing contacts 2021-02-18 17:58:17 +01:00
Emil Ernerfeldt
f9e3d382d2 New contacts are bouncy, old are resting
If a contact is new (previous impluse = 0), then we treat it as bouncy (respecting restitution).
If the contact is old we treat it as resting.

Exceptions for restitutions <=0 and >= 1.
2021-02-18 15:41:46 +01:00
Crozet Sébastien
e45e5f109c Fix WASM build. 2021-01-23 13:11:00 +01:00
Crozet Sébastien
cf52e01308 Merge branch 'master' into split_geom
# Conflicts:
#	examples2d/sensor2.rs
#	examples3d/sensor3.rs
#	src/dynamics/integration_parameters.rs
#	src/dynamics/solver/parallel_island_solver.rs
#	src/dynamics/solver/velocity_constraint.rs
#	src/dynamics/solver/velocity_ground_constraint.rs
#	src_testbed/nphysics_backend.rs
#	src_testbed/physx_backend.rs
#	src_testbed/testbed.rs
2021-01-22 16:10:24 +01:00
Emil Ernerfeldt
95c6199a9a Remove IntegrationParameters::inv_dt and make dt pub 2021-01-22 13:32:18 +01:00
Crozet Sébastien
8f330b2a00 Rotation locking: apply filter only to the world inertia properties to fix the multi-collider case. 2021-01-21 14:58:40 +01:00
Crozet Sébastien
c28b14d31c Refactor the parallel solver code the same way we did with the non-parallel solver. 2021-01-04 17:59:56 +01:00
Crozet Sébastien
aa61fe65e3 Add support of 64-bits reals. 2021-01-04 15:14:25 +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
9bf1321f8f Outsource the contact manifold, SAT, and some shapes. 2020-12-29 11:31:00 +01:00
Crozet Sébastien
502be0245c Add restitution. 2020-11-03 11:22:30 +01:00
Sébastien Crozet
9622827dc6 Fix constraints resolution with non-identity relative collider position. 2020-09-01 14:02:59 +02:00
Sébastien Crozet
c286f44c4e Constraint solver: properly take non-zero center of masses into account. 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