Skip to content

Commit

Permalink
Simplify pick_rounded_rect (#15065)
Browse files Browse the repository at this point in the history
# Objective

Simplify `pick_rounded_rect` with multiple `if` statements to make it
more readable and efficient([Godbolt
link](https://godbolt.org/z/W5vPEvT5c)).

Co-authored-by: WX\shixi <shixi1@cnwxsoft.com>
  • Loading branch information
CrazyboyQCD and WX\shixi authored Sep 9, 2024
1 parent 7b217a9 commit bca228f
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions crates/bevy_ui/src/focus.rs
Original file line number Diff line number Diff line change
Expand Up @@ -352,12 +352,12 @@ pub(crate) fn pick_rounded_rect(
size: Vec2,
border_radius: ResolvedBorderRadius,
) -> bool {
let s = point.signum();
let r = (border_radius.top_left * (1. - s.x) * (1. - s.y)
+ border_radius.top_right * (1. + s.x) * (1. - s.y)
+ border_radius.bottom_right * (1. + s.x) * (1. + s.y)
+ border_radius.bottom_left * (1. - s.x) * (1. + s.y))
/ 4.;
let [top, bottom] = if point.x < 0. {
[border_radius.top_left, border_radius.bottom_left]
} else {
[border_radius.top_right, border_radius.bottom_right]
};
let r = if point.y < 0. { top } else { bottom };

let corner_to_point = point.abs() - 0.5 * size;
let q = corner_to_point + r;
Expand Down

0 comments on commit bca228f

Please sign in to comment.