virtualx-engine/servers
PouleyKetchoupp cff7a69aa0 Fix test_body_motion recovery
This change makes test_body_motion more reliable when the kinematic body
recovers from being stuck.

- When recovery occurs, the rest information is generated, in order to
make sure collision results from test_move, move_and_collide and
move_and_slide are consistent and return a collision in case of overlap.

- The new calculation for recovery vector makes sure the recovery is
never more than the overlap depth between shapes.
This can help with cases where the kinematic body overlaps with several
shapes.
Recovery is made iteratively, without forcing a full overlap at each
step. This helps with getting proper rest information when recovery
occurs.

- One Way Collision:
When attempting motion, contact direction is checked against motion
before skipping in order to solve cases where kinematic bodies can sink
into one-way collision shapes.
Rest info now sets max contact depth in order to properly handle one-way
collision.

- Low speed motion is now handled in the rest info, by never setting
min_allowed_depth lower than motion length.
Separation is always applied with full margin, otherwise contact is lost
when low speed motion occurs right after higher speed motion.

- Similar changes are applied to 3D in order to make 2D and 3D
consistent.
2021-02-17 19:02:59 -07:00
..
audio Add AudioEffectCapture 2021-02-02 09:22:16 -08:00
camera Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
physics_2d Fix test_body_motion recovery 2021-02-17 19:02:59 -07:00
physics_3d Fix test_body_motion recovery 2021-02-17 19:02:59 -07:00
rendering Merge pull request #45859 from Kayomn/master 2021-02-12 09:26:14 +01:00
xr Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
audio_server.cpp Make audio bus channels' peak volume consistent 2021-02-02 11:30:32 +01:00
audio_server.h Make audio bus channels' peak volume consistent 2021-02-02 11:30:32 +01:00
camera_server.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
camera_server.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
display_server.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
display_server.h Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
navigation_server_2d.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
navigation_server_2d.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
navigation_server_3d.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
navigation_server_3d.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
physics_server_2d.cpp Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
physics_server_2d.h Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
physics_server_3d.cpp Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
physics_server_3d.h Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
register_server_types.cpp Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
register_server_types.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
rendering_server.cpp Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
rendering_server.h Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
SCsub Renaming all ARVR nodes to XR 2020-04-09 15:33:01 +10:00
server_wrap_mt_common.h Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
text_server.cpp [TextServer] Restore character and space extra spacing support. 2021-02-15 10:46:23 +02:00
text_server.h [TextServer] Restore character and space extra spacing support. 2021-02-15 10:46:23 +02:00
xr_server.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
xr_server.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00