Implement pop widget 🎉

This commit is contained in:
Héctor Ramón Jiménez 2025-01-26 04:21:44 +01:00
parent 3428a3d2af
commit e90ff41edb
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
4 changed files with 264 additions and 1 deletions

View file

@ -143,6 +143,20 @@ impl Rectangle<f32> {
&& point.y < self.y + self.height
}
/// Returns the minimum distance from the given [`Point`] to any of the edges
/// of the [`Rectangle`].
pub fn distance(&self, point: Point) -> f32 {
let center = self.center();
let distance_x =
((point.x - center.x).abs() - self.width / 2.0).max(0.0);
let distance_y =
((point.y - center.y).abs() - self.height / 2.0).max(0.0);
distance_x.hypot(distance_y)
}
/// Returns true if the current [`Rectangle`] is completely within the given
/// `container`.
pub fn is_within(&self, container: &Rectangle) -> bool {