Fixed problem with rotated transform gizmo
This commit is contained in:
@@ -207,18 +207,32 @@ update_transform_gizmo :: (ray: Ray, mouse_position: Vector2) -> bool {
|
|||||||
// Move the currently selected entity along the selected axis
|
// Move the currently selected entity along the selected axis
|
||||||
axis_vec : Vector3;
|
axis_vec : Vector3;
|
||||||
|
|
||||||
if engine.editor.transform_gizmo.selected_axis == {
|
if engine.editor.transform_gizmo.space == {
|
||||||
case .UP;
|
case .WORLD; {
|
||||||
axis_vec.y = 1;
|
if engine.editor.transform_gizmo.selected_axis == {
|
||||||
case .FORWARD;
|
case .UP;
|
||||||
axis_vec.z = 1;
|
axis_vec.y = 1;
|
||||||
case .RIGHT;
|
case .FORWARD;
|
||||||
axis_vec.x = 1;
|
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 : Ray;
|
||||||
r1.origin = selected_entity.transform.position;
|
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);
|
r2 := normalized_screen_to_ray(*engine.editor.camera, mouse_position);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user