From 8b0f16e74cb908da604ba187d02b268c1f940e45 Mon Sep 17 00:00:00 2001 From: Adesh Gupta <148623820+4adex@users.noreply.github.com> Date: Wed, 9 Apr 2025 11:45:31 +0530 Subject: [PATCH] =?UTF-8?q?Make=20GRS=20rotation=20(R)=20angle=20overlay?= =?UTF-8?q?=20label=20show=20values=20between=20-360=C2=B0=20and=20360?= =?UTF-8?q?=C2=B0=20(#2473)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixes issues * Revert changes * Viewing angle using R * Revert other fix so it can be its own PR --------- Co-authored-by: Keavon Chambers --- .../transform_layer/transform_layer_message_handler.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs b/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs index bbb3fa4b..b09db5fe 100644 --- a/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs +++ b/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs @@ -298,7 +298,15 @@ impl MessageHandler> for TransformLayer let radius = start_mouse.distance(pivot); let arc_radius = ANGLE_MEASURE_RADIUS_FACTOR * width; let radius = radius.clamp(ARC_MEASURE_RADIUS_FACTOR_RANGE.0 * width, ARC_MEASURE_RADIUS_FACTOR_RANGE.1 * width); - let text = format!("{}°", format_rounded(angle.to_degrees(), 2)); + let angle_in_degrees = angle.to_degrees(); + let display_angle = if angle_in_degrees.is_sign_positive() { + angle_in_degrees - (angle_in_degrees / 360.).floor() * 360. + } else if angle_in_degrees.is_sign_negative() { + angle_in_degrees - ((angle_in_degrees / 360.).floor() + 1.) * 360. + } else { + angle_in_degrees + }; + let text = format!("{}°", format_rounded(display_angle, 2)); let text_texture_width = overlay_context.get_width(&text) / 2.; let text_texture_height = 12.; let text_angle_on_unit_circle = DVec2::from_angle((angle % TAU) / 2. + offset_angle);