Commit Graph

95 Commits

Author SHA1 Message Date
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
4454a845e9 Merge pull request #276 from dimforge/lock-translation-axis
Allow locking individual translational axes
2022-01-16 07:52:19 -08:00
Sébastien Crozet
0ccd15c4b1 Merge pull request #270 from tjamaan/fix_RigidBodyVelocity_rotation_center
fix the parameter used for local center of mass
2022-01-10 11:38:43 -08:00
Sébastien Crozet
b631fe9193 Allow locking individual translational axes 2022-01-09 22:15:36 +01:00
Sébastien Crozet
87ec0ced40 Address issues with the genral-case for multibody joints 2022-01-08 21:09:11 +01:00
Turki Jamaan
367fc3405f remove unnecessary comment
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2022-01-08 21:37:13 +03:00
Turki Jamaan
e41fccb9fb fix the parameter used for local center of mass 2022-01-08 20:04:22 +03:00
Sébastien Crozet
1308db8994 Merge pull request #267 from dimforge/multibody
Implement multibody joints, and new velocity-based constraints solver
2022-01-02 18:05:50 +01:00
Sébastien Crozet
9f9d329360 Fix tests 2022-01-02 17:43:38 +01:00
Sébastien Crozet
f74b8401ad Implement multibody joints and the new solver 2022-01-02 16:58:36 +01:00
Sébastien Crozet
8fa6653820 Remove useless ref 2021-11-05 10:47:03 +01:00
Sébastien Crozet
b45d4b5ac2 Track the change of effective dominance of a rigid-body. 2021-10-26 15:38:54 +02:00
Jamen Marz
7aa94e994f Impl Default for a few structs 2021-09-25 13:50:12 +02:00
Sébastien Crozet
b364a2b052 Fix velocity computation for position-based kinematic bodies 2021-09-12 01:49:09 -07:00
Benjamin Saunders
291be142a5 Clarify coordinate space of TOI query results 2021-08-30 10:12:59 +02:00
Kane Rogers
3f223aaf9e Fix bug with colliders without rigid bodies
- When `NarrowPhase` adds a collision pair, it checks to make sure that they don't have the same parent
- In the case where the colliders have no parents (eg. they are not attached to a `RigidBody`) this yields a false positive.
- The fix is to ensure that colliders have a parent before ignoring the pair.
2021-08-26 10:29:24 +02:00
Crozet Sébastien
77a6cd3f26 Release v0.10.0 2021-07-11 19:21:50 +02:00
Crozet Sébastien
bccb7d4c66 Track the rigid-body graph IDs inside of the JointSet instead of RigidBodyIds 2021-06-08 18:23:40 +02:00
Crozet Sébastien
bde6657287 Fix tests and wasm build. 2021-06-02 16:22:40 +02:00
Crozet Sébastien
7153eb7779 Add ActiveCollisionTypes to easily enable collision-detection between two non-static rigid-body. 2021-06-01 17:59:07 +02:00
Crozet Sébastien
dbb3c8f43b CCD: take collision groups into account 2021-06-01 14:56:24 +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
Crozet Sébastien
2dfbd9ae92 Add comments. 2021-04-30 11:37:58 +02:00
Crozet Sébastien
ac8ec8e351 Fix tests. 2021-04-29 13:03:54 +02:00
Crozet Sébastien
5cf805075e Fix compilation of the parallel version 2021-04-29 12:09:35 +02:00
Crozet Sébastien
705876f5e5 Restore the collision pipeline 2021-04-29 10:26:44 +02:00
Crozet Sébastien
83cb981a88 Fix regression in CCD resolution. 2021-04-27 16:43:24 +02:00
Crozet Sébastien
3cab54b880 Fix some warnings. 2021-04-27 14:37:39 +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
5492736863 Remove useless comment. 2021-04-03 12:13:41 +02:00
Crozet Sébastien
5a0e6471cd Fix crash caused by a collider being remove before the first timestep. 2021-04-03 12:03:49 +02:00
Crozet Sébastien
e66740e950 Release v0.7.0 2021-04-02 14:20:51 +02:00
Crozet Sébastien
2006919347 Add the ability to pass a custom filter to all the QueryPipeline queries. 2021-04-01 11:02:48 +02:00
Crozet Sébastien
a6b8b4b638 Fix tests. 2021-03-31 17:46:59 +02:00
Crozet Sébastien
4e84c122df Fix more warnings. 2021-03-31 16:55:18 +02:00
Crozet Sébastien
e9f6384081 Fix the parallel solver to work properly with CCD. 2021-03-31 10:53:44 +02:00
Crozet Sébastien
88933bd431 Run the position solver after the CCD motion clamping. 2021-03-30 17:11:52 +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
dec3e4197f Small refactoring of the PhysicsPipeline. 2021-03-28 11:54:33 +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
Crozet Sébastien
3a1502be74 First complete implementation of the hierarchical SAP. 2021-03-13 18:00:58 +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
Crozet Sébastien
f53d0438ed Contact modification: make the contact normal modifiable too. 2021-02-25 15:40:54 +01:00
Crozet Sébastien
a60c6e5fdd Fix the compilation of tests. 2021-02-23 16:26:02 +01:00
Crozet Sébastien
0f0f2c344f Rename modify_contacts -> modify_solver_contacts. 2021-02-23 16:02:19 +01:00
Crozet Sébastien
babcab0bed Update the testbed to use PhysicsHooks. 2021-02-23 15:49:23 +01:00
Crozet Sébastien
f8bf96fdc8 Add a helper function for one-way platforms. 2021-02-23 15:48:04 +01:00