Commit Graph

677 Commits

Author SHA1 Message Date
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 710dd8d71e Fix bug wher ethe broad-phase could miss some contacts pairs. 2021-03-26 18:16:51 +01: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 326469a1df Fix the last few bugs and unbounded memory usage. 2021-03-17 09:34:56 +01:00
Crozet Sébastien d82a675b46 Experiment with a smaller region power basis. 2021-03-13 19:32:27 +01:00
Crozet Sébastien b2c0f62003 Some tunning of the way layers are attributed to a collider. 2021-03-13 19:19:12 +01:00
Crozet Sébastien 3a1502be74 First complete implementation of the hierarchical SAP. 2021-03-13 18:00:58 +01:00
Crozet Sébastien a967ace7d4 Start implementing SAPLayer creation and insertion. 2021-03-08 18:27:06 +01:00
Crozet Sébastien 7983c25606 Start introducing SAP layers. 2021-03-08 15:32:04 +01:00
Crozet Sébastien 0b80bc827c Split the broad-phase code into multiple files. 2021-03-08 15:32:04 +01:00
Crozet Sébastien 8dab63bda1 Fix regression in the WASM version of the velocity solver. 2021-03-08 15:14:54 +01:00
Sébastien Crozet 808ea02672 Merge pull request #141 from EmbarkStudios/per-collider-mass-props
Per collider mass props
2021-03-08 10:38:31 +01:00
Emil Ernerfeldt 0370e7e37d Store either density or mass properties but not both 2021-03-08 10:12:12 +01:00
Emil Ernerfeldt 05614dc471 docstring/spelling
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-03-08 10:04:28 +01:00
Emil Ernerfeldt 22a402983c docstring/spelling
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-03-08 10:04:21 +01:00
Emil Ernerfeldt 5154233176 docstring/spelling
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-03-08 10:04:13 +01:00
Emil Ernerfeldt 018cc23639 docstring/spelling
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-03-08 10:04:07 +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 0909077094 Use Box<Option<MassProperties>> instead to save on memory 2021-03-05 12:04:27 +01:00
Emil Ernerfeldt 64af425227 Add ability to set MassProperties for each ColliderBuilder
Fix https://github.com/dimforge/rapier/issues/132
2021-03-05 11:57:08 +01:00
Waridley 5592daf7fa Derive Clone for JointSet 2021-03-04 18:05:26 -06:00
Emil Ernerfeldt 589c6ce834 Call update_world_mass_properties from RigidBody::set_mass_properties 2021-03-04 09:09:29 +01:00
Crozet Sébastien 1609d93243 Fix missing sqrt when setting the angular inertia of a rigid-body. 2021-03-03 10:20:14 +01:00
Sébastien Crozet a74097b4c6 Merge pull request #116 from EmbarkStudios/corrective-velocity-solve
Optional violation correction in velocity solver
2021-03-02 15:54:16 +01:00
Crozet Sébastien e45342d365 Fix determinism issue after restoring a snapshot. 2021-03-02 11:24:56 +01:00
Emil Ernerfeldt 115bae172d fix the body-body revolute angle velocity erp 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt f517601e17 Final cleanup 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt 54eae9bb7b simplify prismatic limits 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt 4ef7b1cefe Fix primatic wide 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt a0824772c9 fix the revolute wide 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt 9bbb081539 fix narrow revolute velocity 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt 4ee09a8bc9 Fix the narrow pismatic velocity constraint 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt 59796e4767 fix 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt b94cdfa782 Implement ground wide 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt 48afbac6ce Implement revolute wide 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt 89de6903dc Implement prismatic wide 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt 27366e27ff Implement fixed wide 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt 48708d9a76 Implement revolute narrow 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt d3f39a9bab Implemented prismatic narrow. Needs testing and close review 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt ede4f0f770 cleanup 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt 3f26b46196 Implement ball wide 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
Sébastien Crozet 1c5601c84b Merge pull request #124 from dimforge/modify_contact_normal
Contact modification: make the contact normal modifiable too.
2021-02-25 15:53:06 +01:00
Crozet Sébastien f53d0438ed Contact modification: make the contact normal modifiable too. 2021-02-25 15:40:54 +01:00
Sébastien Crozet f41a6fb76d Merge pull request #122 from dimforge/dominance
Implement dominance groups
2021-02-25 15:38:10 +01:00
Emil Ernerfeldt 277d74fb18 less mut
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-02-24 15:59:11 +01:00