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> {
|
impl From<Rectangle<u32>> for Rectangle<f32> {
|
||||||
fn from(rectangle: Rectangle<u32>) -> Rectangle<f32> {
|
fn from(rectangle: Rectangle<u32>) -> Rectangle<f32> {
|
||||||
Rectangle {
|
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>
|
impl<T> std::ops::Mul<Vector<T>> for Size<T>
|
||||||
where
|
where
|
||||||
T: std::ops::Mul<Output = T> + Copy,
|
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>
|
impl<T> Default for Vector<T>
|
||||||
where
|
where
|
||||||
T: Default,
|
T: Default,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue