Skip to content

Commit 8b0f16e

Browse files
4adexKeavon
andauthored
Make GRS rotation (R) angle overlay label show values between -360° and 360° (#2473)
* Fixes issues * Revert changes * Viewing angle using R * Revert other fix so it can be its own PR --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
1 parent b38d725 commit 8b0f16e

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,15 @@ impl MessageHandler<TransformLayerMessage, TransformData<'_>> for TransformLayer
298298
let radius = start_mouse.distance(pivot);
299299
let arc_radius = ANGLE_MEASURE_RADIUS_FACTOR * width;
300300
let radius = radius.clamp(ARC_MEASURE_RADIUS_FACTOR_RANGE.0 * width, ARC_MEASURE_RADIUS_FACTOR_RANGE.1 * width);
301-
let text = format!("{}°", format_rounded(angle.to_degrees(), 2));
301+
let angle_in_degrees = angle.to_degrees();
302+
let display_angle = if angle_in_degrees.is_sign_positive() {
303+
angle_in_degrees - (angle_in_degrees / 360.).floor() * 360.
304+
} else if angle_in_degrees.is_sign_negative() {
305+
angle_in_degrees - ((angle_in_degrees / 360.).floor() + 1.) * 360.
306+
} else {
307+
angle_in_degrees
308+
};
309+
let text = format!("{}°", format_rounded(display_angle, 2));
302310
let text_texture_width = overlay_context.get_width(&text) / 2.;
303311
let text_texture_height = 12.;
304312
let text_angle_on_unit_circle = DVec2::from_angle((angle % TAU) / 2. + offset_angle);

0 commit comments

Comments
 (0)