Add conversion functions to Size and Vector
This commit is contained in:
parent
d3b04bf892
commit
9090fa6a22
@ -1,3 +1,4 @@
|
|||||||
|
use super::vector::Vector;
|
||||||
use std::f32;
|
use std::f32;
|
||||||
|
|
||||||
/// An amount of space in 2 dimensions.
|
/// An amount of space in 2 dimensions.
|
||||||
@ -57,6 +58,15 @@ impl From<[u16; 2]> for Size {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<Vector<f32>> for Size {
|
||||||
|
fn from(vector: Vector<f32>) -> Self {
|
||||||
|
Size {
|
||||||
|
width: vector.x,
|
||||||
|
height: vector.y,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl From<Size> for [f32; 2] {
|
impl From<Size> for [f32; 2] {
|
||||||
fn from(size: Size) -> [f32; 2] {
|
fn from(size: Size) -> [f32; 2] {
|
||||||
[size.width, size.height]
|
[size.width, size.height]
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
use super::size::Size;
|
||||||
|
|
||||||
/// A 2D vector.
|
/// A 2D vector.
|
||||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||||
pub struct Vector<T = f32> {
|
pub struct Vector<T = f32> {
|
||||||
@ -65,3 +67,24 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<T> From<[T; 2]> for Vector<T> {
|
||||||
|
fn from([x, y]: [T; 2]) -> Self {
|
||||||
|
Self::new(x, y)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T> From<Vector<T>> for [T; 2]
|
||||||
|
where
|
||||||
|
T: Copy,
|
||||||
|
{
|
||||||
|
fn from(other: Vector<T>) -> Self {
|
||||||
|
[other.x, other.y]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<Size> for Vector<f32> {
|
||||||
|
fn from(size: Size) -> Self {
|
||||||
|
Vector::new(size.width, size.height)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user