summaryrefslogtreecommitdiffstats
path: root/core/src/rectangle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/rectangle.rs')
-rw-r--r--core/src/rectangle.rs33
1 files changed, 17 insertions, 16 deletions
diff --git a/core/src/rectangle.rs b/core/src/rectangle.rs
index 8bc89a44..aa23372e 100644
--- a/core/src/rectangle.rs
+++ b/core/src/rectangle.rs
@@ -125,17 +125,29 @@ impl Rectangle<f32> {
None
}
}
+
+ /// Rounds the [`Rectangle`] to __unsigned__ integer coordinates.
+ ///
+ /// [`Rectangle`]: struct.Rectangle.html
+ pub fn round(self) -> Rectangle<u32> {
+ Rectangle {
+ x: self.x as u32,
+ y: self.y as u32,
+ width: (self.width + 0.5).round() as u32,
+ height: (self.height + 0.5).round() as u32,
+ }
+ }
}
-impl std::ops::Mul<f32> for Rectangle<u32> {
+impl std::ops::Mul<f32> for Rectangle<f32> {
type Output = Self;
fn mul(self, scale: f32) -> Self {
Self {
- x: (self.x as f32 * scale).round() as u32,
- y: (self.y as f32 * scale).round() as u32,
- width: (self.width as f32 * scale).round() as u32,
- height: (self.height as f32 * scale).round() as u32,
+ x: self.x as f32 * scale,
+ y: self.y as f32 * scale,
+ width: self.width * scale,
+ height: self.height * scale,
}
}
}
@@ -151,17 +163,6 @@ impl From<Rectangle<u32>> for Rectangle<f32> {
}
}
-impl From<Rectangle<f32>> for Rectangle<u32> {
- fn from(rectangle: Rectangle<f32>) -> Rectangle<u32> {
- Rectangle {
- x: rectangle.x as u32,
- y: rectangle.y as u32,
- width: (rectangle.width + 0.5).round() as u32,
- height: (rectangle.height + 0.5).round() as u32,
- }
- }
-}
-
impl<T> std::ops::Add<Vector<T>> for Rectangle<T>
where
T: std::ops::Add<Output = T>,