diff options
| author | Sébastien Crozet <developer@crozet.re> | 2023-10-01 17:37:36 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-01 17:37:36 +0200 |
| commit | 82416e3ca66dcdc34c0f350cec570ef1019a199f (patch) | |
| tree | 5068000753484ee3d4d11b2964a2f2f6304ab33c | |
| parent | dfb4f2a1aa2ebd51df52ed6c2fcbf3fa348621a1 (diff) | |
| parent | 6c901d57742205de0ebe191cd2c1acd94532f2d9 (diff) | |
| download | rapier-82416e3ca66dcdc34c0f350cec570ef1019a199f.tar.gz rapier-82416e3ca66dcdc34c0f350cec570ef1019a199f.tar.bz2 rapier-82416e3ca66dcdc34c0f350cec570ef1019a199f.zip | |
Merge pull request #529 from Linentio/master
Use the absolute value of the up attribute when calculating up_extent and side_extent
| -rw-r--r-- | src/control/character_controller.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/control/character_controller.rs b/src/control/character_controller.rs index 8f9ef26..ca088b2 100644 --- a/src/control/character_controller.rs +++ b/src/control/character_controller.rs @@ -521,8 +521,8 @@ impl KinematicCharacterController { fn compute_dims(&self, character_shape: &dyn Shape) -> Vector2<Real> { let extents = character_shape.compute_local_aabb().extents(); - let up_extent = extents.dot(&self.up); - let side_extent = (extents - *self.up * up_extent).norm(); + let up_extent = extents.dot(&self.up.abs()); + let side_extent = (extents - (*self.up).abs() * up_extent).norm(); Vector2::new(side_extent, up_extent) } @@ -679,7 +679,7 @@ impl KinematicCharacterController { filter: QueryFilter, ) { let extents = character_shape.compute_local_aabb().extents(); - let up_extent = extents.dot(&self.up); + let up_extent = extents.dot(&self.up.abs()); let movement_to_transfer = *collision.toi.normal1 * collision.translation_remaining.dot(&collision.toi.normal1); let prediction = self.predict_ground(up_extent); |
