aboutsummaryrefslogtreecommitdiff
path: root/src/control
diff options
context:
space:
mode:
authorLinentio <96549149+Linentio@users.noreply.github.com>2023-09-30 12:37:45 +0200
committerLinentio <96549149+Linentio@users.noreply.github.com>2023-09-30 12:37:45 +0200
commitfa2be3fc9c4b646756d5cf7eb5b00a906d9b2362 (patch)
tree97e3a0bc27098121fd6f0adde6e00399eae03472 /src/control
parentdfb4f2a1aa2ebd51df52ed6c2fcbf3fa348621a1 (diff)
downloadrapier-fa2be3fc9c4b646756d5cf7eb5b00a906d9b2362.tar.gz
rapier-fa2be3fc9c4b646756d5cf7eb5b00a906d9b2362.tar.bz2
rapier-fa2be3fc9c4b646756d5cf7eb5b00a906d9b2362.zip
Use the absolute value of the up attribute when calculating up_extent
Diffstat (limited to 'src/control')
-rw-r--r--src/control/character_controller.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/control/character_controller.rs b/src/control/character_controller.rs
index 8f9ef26..3a8aa40 100644
--- a/src/control/character_controller.rs
+++ b/src/control/character_controller.rs
@@ -521,7 +521,7 @@ 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 up_extent = extents.dot(&self.up.abs());
let side_extent = (extents - *self.up * 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);