Commit Graph

59 Commits

Author SHA1 Message Date
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
Crozet Sébastien
4ca32a9546 Add one-way platform + conveyor belt demos. 2021-02-23 15:43:43 +01:00
Crozet Sébastien
00706e8b36 Introduce the PhysicsHook trait used for both contact filtering and contact modification. 2021-02-23 11:24:54 +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
85bc81d4fc Make clippy a bit happier 2021-02-04 13:11:04 +01:00
Crozet Sébastien
8ff2bcc3ec Add all the missing docs. 2021-01-27 14:20:14 +01:00
Crozet Sébastien
8f7220f03d Rename cdl to parry. 2021-01-24 11:13:44 +01:00
Crozet Sébastien
90db26eb50 Fix warnings in tests and testbed. 2021-01-23 13:34:03 +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
Sébastien Crozet
e6fc8f67fa Merge pull request #88 from EmbarkStudios/refactor-params
Small refactor of IntegrationParameters
2021-01-22 15:53:08 +01:00
Emil Ernerfeldt
315493ebfb IntegrationParameters: deprectate dt() and inv_dt() methods 2021-01-22 13:38:59 +01:00
Emil Ernerfeldt
f9fe6f2e8d fix cargo test -p rapier3d 2021-01-21 21:31:09 +01:00
Crozet Sébastien
261ed1ebed Fix 2D compilation. 2021-01-06 12:53:26 +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
967145a949 Perform contact sorting in the narrow-phase directly. 2020-12-31 11:16:03 +01:00
Crozet Sébastien
94c67a0c31 Support compound shapes. 2020-12-29 11:36:19 +01:00
Crozet Sébastien
29717c2887 Externalize the proximity code (renamed intersection). 2020-12-29 11:31:59 +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
2d4e14b869 Properly track some user-initiatied rigid-body modifications. 2020-11-25 16:28:49 +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
5ce3606582 Add explicit wake_up parameter to method setting the position and velocity of a rigid-body. 2020-11-19 18:13:39 +01:00
Crozet Sébastien
0cf59d78bd Implement Clone for everything that can be cloned. 2020-11-03 14:43:21 +01:00
Crozet Sébastien
3bfa407999 ContactPairFilter: don't overwrite the effect of the solver groups.
This is more consistent with the fact that the effect of collision groups is not overwritten either.
2020-10-27 16:49:24 +01:00
Crozet Sébastien
cc44b65094 Added user-implementable traits for collision/proximity pair filtering. 2020-10-27 16:12:40 +01:00
Crozet Sébastien
b4d322a6ca Take collision groups into account for ray-casting. 2020-10-27 14:35:01 +01:00
Crozet Sébastien
865ce8a8e5 Collider shape: use a trait-object instead of an enum. 2020-10-20 11:56:09 +02:00
Crozet Sébastien
fc72aa6845 Fix examples. 2020-10-06 16:38:34 +02:00
Crozet Sébastien
e87b73a2a2 Fix compilation in 2D. 2020-10-06 15:49:22 +02:00
Crozet Sébastien
682ff61f94 Don't let the PubSub internal offsets overflow + fix some warnings. 2020-10-06 15:23:48 +02:00
Crozet Sébastien
17c31bcc57 WQuadtree query: reduce the amount of allocations. 2020-10-06 11:22:51 +02:00
Crozet Sébastien
8e432b298b Make the WQuadTree more generic and use it as the trimesh acceleration structure. 2020-10-06 10:46:59 +02:00
Crozet Sébastien
721db2d49e Fix crash when deleting a collider. 2020-10-06 10:02:21 +02:00
Crozet Sébastien
93aa7b6e1e Use the publish-subscribe mechanism to handle collider removals across pipelines. 2020-10-05 19:04:18 +02:00
Crozet Sébastien
2d0a888484 Make the query pipeline serializable. 2020-10-05 16:52:09 +02:00