Implement division operation for Rectangle, Size and Vector
This commit is contained in:
parent
5195a59e20
commit
6f9b7a9005
3 changed files with 54 additions and 0 deletions
|
|
@ -354,6 +354,19 @@ impl std::ops::Mul<f32> for Rectangle<f32> {
|
|||
}
|
||||
}
|
||||
|
||||
impl std::ops::Div<f32> for Rectangle<f32> {
|
||||
type Output = Self;
|
||||
|
||||
fn div(self, scale: f32) -> Self {
|
||||
Self {
|
||||
x: self.x / scale,
|
||||
y: self.y / scale,
|
||||
width: self.width / scale,
|
||||
height: self.height / scale,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Rectangle<u32>> for Rectangle<f32> {
|
||||
fn from(rectangle: Rectangle<u32>) -> Rectangle<f32> {
|
||||
Rectangle {
|
||||
|
|
@ -410,3 +423,19 @@ where
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> std::ops::Div<Vector<T>> for Rectangle<T>
|
||||
where
|
||||
T: std::ops::Div<Output = T> + Copy,
|
||||
{
|
||||
type Output = Rectangle<T>;
|
||||
|
||||
fn div(self, scale: Vector<T>) -> Self {
|
||||
Rectangle {
|
||||
x: self.x / scale.x,
|
||||
y: self.y / scale.y,
|
||||
width: self.width / scale.x,
|
||||
height: self.height / scale.y,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -150,6 +150,20 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl<T> std::ops::Div<T> for Size<T>
|
||||
where
|
||||
T: std::ops::Div<Output = T> + Copy,
|
||||
{
|
||||
type Output = Size<T>;
|
||||
|
||||
fn div(self, rhs: T) -> Self::Output {
|
||||
Size {
|
||||
width: self.width / rhs,
|
||||
height: self.height / rhs,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> std::ops::Mul<Vector<T>> for Size<T>
|
||||
where
|
||||
T: std::ops::Mul<Output = T> + Copy,
|
||||
|
|
|
|||
|
|
@ -64,6 +64,17 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl<T> std::ops::Div<T> for Vector<T>
|
||||
where
|
||||
T: std::ops::Div<Output = T> + Copy,
|
||||
{
|
||||
type Output = Self;
|
||||
|
||||
fn div(self, scale: T) -> Self {
|
||||
Self::new(self.x / scale, self.y / scale)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> Default for Vector<T>
|
||||
where
|
||||
T: Default,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue