Commit Graph

86 Commits

Author SHA1 Message Date
Sébastien Crozet
4025f62314 Rename allowed_translation/rotation to enabled_translation/rotation 2022-07-08 17:16:44 +02:00
Sébastien Crozet
72c2da5554 Fix 2D build 2022-07-08 12:01:04 +02:00
Sébastien Crozet
8c707ef02d cargo fmt 2022-07-08 11:55:44 +02:00
Sébastien Crozet
efaf16aaea Rename restrict_translation/rotation to set_allowed_translation/rotation 2022-07-08 11:48:31 +02:00
Sébastien Crozet
7831ebfc31 Add methods to read the mass or volume of a collider. 2022-07-05 15:15:17 +02:00
Sébastien Crozet
ba081fb6f5 Improve the API for initializing/setting mass-properties 2022-07-05 14:59:14 +02:00
Sébastien Crozet
5063f3bb4f Add the ability to disable contacts between two rigid-bodies attached by joints 2022-07-03 13:55:41 +02:00
Sébastien Crozet
6ce26f3818 CCD improvements
- Fix bug where the CCD thickness wasn’t initialized properly.
- Fix bug where the contact compliance would result in unwanted tunelling, despite CCD being enabled.
2022-05-30 18:29:18 +02:00
Sébastien Crozet
95418c218b Rename RigidBody::set_mass_properties -> set_additional_mass_properties 2022-04-28 13:03:55 +02:00
Sébastien Crozet
2b1374c596 First round deleting the component sets. 2022-04-20 19:02:49 +02:00
Sébastien Crozet
ee679427cd Fix mass-properties update after collider change 2022-04-20 17:11:06 +02:00
Sébastien Crozet
c26c8e4932 Type fix 2022-03-20 21:49:16 +01:00
Sébastien Crozet
a9e3441ecd Rename rigid-body static to fixed 2022-03-20 21:49:16 +01:00
Sébastien Crozet
db6a8c526d Fix warnings and add comments. 2022-03-20 21:49:16 +01:00
Sébastien Crozet
8e07d8799f Rigid-body: don’t clear forces at end of timestep + don’t wake-up a rigid-body if the modified property is equal to the old value. 2022-03-20 21:49:16 +01:00
Sébastien Crozet
fb20d72ee2 Joint API and joint motors improvements 2022-03-20 21:49:16 +01:00
Sébastien Crozet
0703e5527f Fix some solver issues
- Fix the wrong codepath taken  by the solver for contacts involving a collider without parent.
- Properly adress the non-linear treatment of the friction direction
- Simplify the sleeping strategy
- Add an impulse resolution multiplier
2022-01-16 16:52:40 +01:00
Sébastien Crozet
b631fe9193 Allow locking individual translational axes 2022-01-09 22:15:36 +01:00
Dmitry Stepanov
8e7da5ad45 fixed restrict_rotations 2021-12-31 10:05:46 +01:00
Jakub Arnold
64e5a98833 Minor documentation fixes 2021-12-31 10:04:29 +01:00
Sébastien Crozet
b45d4b5ac2 Track the change of effective dominance of a rigid-body. 2021-10-26 15:38:54 +02:00
Benjamin Saunders
f73e68d34a Note CCD interpenetration behavior 2021-10-24 13:35:10 +02:00
Jamen Marz
7aa94e994f Impl Default for a few structs 2021-09-25 13:50:12 +02:00
Sébastien Crozet
c7b876e2f7 Merge pull request #173 from DasEtwas/must-use-pub
Add #[must_use] to builders, expose more fields
2021-06-02 17:37:13 +02:00
Crozet Sébastien
5ef81cda40 Add velocity-based kinematic bodies 2021-06-01 14:55:50 +02:00
Crozet Sébastien
826ce5f014 Rework the event system 2021-06-01 12:36:01 +02:00
Crozet Sébastien
1bef66fea9 Add prelude + use vectors for setting linvel/translation in builders 2021-05-25 11:00:13 +02:00
DasEtwas
810c39d427 Remove Copy from RigidBodyBuilder 2021-05-06 22:39:55 +02:00
DasEtwas
2817fb0acb Added documentation to newly public fields derived from setters 2021-05-06 20:42:24 +02:00
DasEtwas
716c343979 Add #[must_use] to builders, expose more fields 2021-05-06 20:41:13 +02:00
Crozet Sébastien
2dfbd9ae92 Add comments. 2021-04-30 11:37:58 +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
2a21f47136 Add getters indicating if the translation or rotation dofs of a rigid-body are locked. 2021-04-01 15:43:47 +02:00
Crozet Sébastien
0ecc302971 Some small performance improvements. 2021-04-01 10:11:32 +02:00
Crozet Sébastien
4fb898c77c Remove useless rigid-body fields. 2021-04-01 09:46:13 +02:00
Crozet Sébastien
3412e9ddbf Fix some warnings. 2021-03-31 12:35:54 +02:00
Crozet Sébastien
d82fc0d23d Fix body status modification. 2021-03-31 12:09:09 +02:00
Crozet Sébastien
1187ef796d Rename some RigidBodyBuilder mass-related setters to include "additional". 2021-03-31 10:55:36 +02:00
Crozet Sébastien
d2ee642053 CCD: take angular motion and penetration depth into account in various thresholds. 2021-03-30 17:10:50 +02:00
Crozet Sébastien
a733f97028 Implement the ability to run multiple CCD substeps. 2021-03-29 17:21:49 +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
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
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
Crozet Sébastien
96ecb877e2 Implement dominance. 2021-02-24 13:26:51 +01:00
Emil Ernerfeldt
e870acf011 Omit integrate_accelerations in feature = parallel 2021-02-08 17:15:31 +01:00
Emil Ernerfeldt
d999e0e8c6 Apply accelerations during velocity solver
Closes https://github.com/dimforge/rapier/issues/97

Instead of applying accelerations from gravity and external forces
as a separate step, this PR switches to applying them in the velocity solver.
2021-02-08 17:15:28 +01:00
Emil Ernerfeldt
17ef7e10f9 Replace linacc/angacc with force/torque inside of RigidBody
I also improved the documentation for the various force/impulse applying functions.
2021-02-08 15:54:17 +01:00
Sébastien Crozet
a272f4ce9e Merge pull request #104 from EmbarkStudios/clippy-fixes
Make clippy a bit happier
2021-02-04 18:20:27 +01:00