Merge pull request #529 from Linentio/master
Use the absolute value of the up attribute when calculating up_extent and side_extent
This commit is contained in:
@@ -521,8 +521,8 @@ impl KinematicCharacterController {
|
|||||||
|
|
||||||
fn compute_dims(&self, character_shape: &dyn Shape) -> Vector2<Real> {
|
fn compute_dims(&self, character_shape: &dyn Shape) -> Vector2<Real> {
|
||||||
let extents = character_shape.compute_local_aabb().extents();
|
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();
|
let side_extent = (extents - (*self.up).abs() * up_extent).norm();
|
||||||
Vector2::new(side_extent, up_extent)
|
Vector2::new(side_extent, up_extent)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -679,7 +679,7 @@ impl KinematicCharacterController {
|
|||||||
filter: QueryFilter,
|
filter: QueryFilter,
|
||||||
) {
|
) {
|
||||||
let extents = character_shape.compute_local_aabb().extents();
|
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 =
|
let movement_to_transfer =
|
||||||
*collision.toi.normal1 * collision.translation_remaining.dot(&collision.toi.normal1);
|
*collision.toi.normal1 * collision.translation_remaining.dot(&collision.toi.normal1);
|
||||||
let prediction = self.predict_ground(up_extent);
|
let prediction = self.predict_ground(up_extent);
|
||||||
|
|||||||
Reference in New Issue
Block a user