summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Buring <ricardo.buring@gmail.com>2023-01-26 12:09:35 +0100
committerRicardo Buring <ricardo.buring@gmail.com>2023-01-26 12:09:35 +0100
commited54f4dce8c1d8811a37c3dedfcf200bd4d7e223 (patch)
tree864a35be8d77a23c5b56daa18b7b4944472bd794
parent4368191a9f9c6290805dd4094c36379776128338 (diff)
Fix separation ray normal direction
-rw-r--r--servers/physics_3d/godot_collision_solver_3d.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/servers/physics_3d/godot_collision_solver_3d.cpp b/servers/physics_3d/godot_collision_solver_3d.cpp
index fb5a67c008..2de1d86de1 100644
--- a/servers/physics_3d/godot_collision_solver_3d.cpp
+++ b/servers/physics_3d/godot_collision_solver_3d.cpp
@@ -127,11 +127,10 @@ bool GodotCollisionSolver3D::solve_separation_ray(const GodotShape3D *p_shape_A,
}
if (p_result_callback) {
+ Vector3 normal = (support_B - support_A).normalized();
if (p_swap_result) {
- Vector3 normal = (support_B - support_A).normalized();
- p_result_callback(support_B, 0, support_A, 0, normal, p_userdata);
+ p_result_callback(support_B, 0, support_A, 0, -normal, p_userdata);
} else {
- Vector3 normal = (support_A - support_B).normalized();
p_result_callback(support_A, 0, support_B, 0, normal, p_userdata);
}
}