Fix Image::bounds when rotation present in iced_graphics

This commit is contained in:
Héctor Ramón Jiménez 2024-05-03 07:04:57 +02:00
parent 568ac66486
commit eac5bcb64f
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
5 changed files with 37 additions and 17 deletions

View file

@ -1,4 +1,4 @@
use crate::Vector;
use crate::{Radians, Vector};
/// An amount of space in 2 dimensions.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
@ -51,6 +51,19 @@ impl Size {
height: self.height + other.height,
}
}
/// Rotates the given [`Size`] and returns the minimum [`Size`]
/// containing it.
pub fn rotate(self, rotation: Radians) -> Size {
let radians = f32::from(rotation);
Size {
width: (self.width * radians.cos()).abs()
+ (self.height * radians.sin()).abs(),
height: (self.width * radians.sin()).abs()
+ (self.height * radians.cos()).abs(),
}
}
}
impl<T> From<[T; 2]> for Size<T> {