Commit Graph

658 Commits

Author SHA1 Message Date
Crozet Sébastien
d69b5876f3 Fix velocity constraints for ball joints involving bodies with non-uniform angular inertia.
Fix #86
2021-01-20 17:20:01 +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
28b7866aee Switch to [u32; DIM] instead of Point<u32> for element indices. 2021-01-20 15:40:00 +01:00
Crozet Sébastien
e2006599a8 Add 3D convex decomposition example. 2021-01-20 15:15:33 +01:00
Crozet Sébastien
87b56c38b6 Properly reset the BodySet::modified_all_bodies flag. 2021-01-12 15:07:39 +01:00
Crozet Sébastien
2231d0f6ea Add gravity scaling to rigid-bodies. 2021-01-06 18:09:21 +01:00
Crozet Sébastien
261ed1ebed Fix 2D compilation. 2021-01-06 12:53:26 +01:00
Crozet Sébastien
00da4aaa42 Add compound shape support. 2021-01-05 15:34:48 +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
a1aa8855f7 Query pipeline: add methods to collect all intersections with a point or a shape. 2020-12-31 18:23:14 +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
64507a68e1 Refactor the constraints solver code. 2020-12-31 10:32:34 +01:00
Crozet Sébastien
348a339fe3 Remove code related to point-point kinematics. 2020-12-31 10:02:51 +01:00
Crozet Sébastien
eea888af93 Fix broken position constraint. 2020-12-30 18:33:01 +01:00
Crozet Sébastien
5e35250183 Define the MAX_MANIFOLD_POINTS in this crate. 2020-12-30 17:46:22 +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
7545e06cb1 Attempt to combine the position constraints initialization with the velocity constraints initialization. 2020-12-30 12:03:25 +01:00
Crozet Sébastien
5876a262da Remove the useless manifold.data.pair field. 2020-12-30 11:44:08 +01:00
Crozet Sébastien
94c67a0c31 Support compound shapes. 2020-12-29 11:36:19 +01:00
Crozet Sébastien
8d925a02ef Add convex polygons support. 2020-12-29 11:31:59 +01:00
Crozet Sébastien
486fbd972f Add example for 3D convex polyhedron. 2020-12-29 11:31:59 +01:00
Crozet Sébastien
0fb4b4faef Use Isometry::inv_mul. 2020-12-29 11:31:59 +01:00
Crozet Sébastien
7488cd02e8 Remove unused constrants. 2020-12-29 11:31:59 +01:00
Crozet Sébastien
0d2eb5f2e0 Remove some commented code. 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
aada91966a Add a RigidBody::set_mass_properties method. 2020-12-02 11:26:20 +01:00
Crozet Sébastien
bde828cdab Fix a bug when applying the parallel axis theorem to the angular inertia matrix is incorrect if the mass is zero. 2020-12-02 11:12:26 +01:00
Crozet Sébastien
a072d4056a Rename RigidBodyBuilder::principal_inertia -> principal_angular_inertia for clarity. 2020-12-01 15:07:04 +01:00
Crozet Sébastien
1e0f76b02c Add a 2D demo for locking rotation. 2020-11-30 15:41:32 +01:00
Crozet Sébastien
715d0fe16e Update the changelog + make the boolean flags more intuitive. 2020-11-30 15:35:36 +01:00
Crozet Sébastien
c3e951f896 Add a simpler to lock the rotation or translation of a dynamic rigid-body. 2020-11-30 15:26:22 +01:00
Crozet Sébastien
340f614d32 Restore the previous sleeping pattern. 2020-11-26 12:49:35 +01:00
Crozet Sébastien
391bcf372a Fix collider insertion/removal tracking. 2020-11-26 11:41:54 +01:00
Crozet Sébastien
f293dc6024 Fix bogus collider removal in the broad-phase. 2020-11-26 11:40:59 +01:00
Crozet Sébastien
7541108746 Make the RigidBodyChanges values more readable. 2020-11-25 16:34:43 +01:00
Crozet Sébastien
2d4e14b869 Properly track some user-initiatied rigid-body modifications. 2020-11-25 16:28:49 +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
000aad0a3c Fix NaNs in unused WAABB lanes during the creation of the WAABBTree. 2020-11-22 16:35:59 +01:00