From a5bde6194ab67134850bc4aa71659b9329c52b01 Mon Sep 17 00:00:00 2001 From: Daniel Bross Date: Tue, 22 Jul 2025 11:00:19 +0200 Subject: [PATCH] Fixed problem with rotated transform gizmo --- editor/editor.jai | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/editor/editor.jai b/editor/editor.jai index 9f9fd5f..d2b360f 100644 --- a/editor/editor.jai +++ b/editor/editor.jai @@ -207,18 +207,32 @@ update_transform_gizmo :: (ray: Ray, mouse_position: Vector2) -> bool { // Move the currently selected entity along the selected axis axis_vec : Vector3; - if engine.editor.transform_gizmo.selected_axis == { - case .UP; - axis_vec.y = 1; - case .FORWARD; - axis_vec.z = 1; - case .RIGHT; - axis_vec.x = 1; + if engine.editor.transform_gizmo.space == { + case .WORLD; { + if engine.editor.transform_gizmo.selected_axis == { + case .UP; + axis_vec.y = 1; + case .FORWARD; + axis_vec.z = 1; + case .RIGHT; + axis_vec.x = 1; + } + } + case .LOCAL; { + if engine.editor.transform_gizmo.selected_axis == { + case .UP; + axis_vec = get_up(selected_entity.transform); + case .FORWARD; + axis_vec = get_forward(selected_entity.transform); + case .RIGHT; + axis_vec = get_right(selected_entity.transform); + } + } } r1 : Ray; r1.origin = selected_entity.transform.position; - r1.direction = rotate(axis_vec, engine.editor.transform_gizmo.transform.orientation); + r1.direction = axis_vec;//rotate(axis_vec, engine.editor.transform_gizmo.transform.orientation); r2 := normalized_screen_to_ray(*engine.editor.camera, mouse_position);