
This gets rid of multiple unsafe blocks that we had to maintain ourselves, and instead depends on library that's commonly used and supported by the ecosystem. We also get support for glam types for free. There is still some things to clear up with the `Bytes` trait, but that is a bit more substantial change and can be done separately. Also there are already separate efforts to use `crevice` crate, so I've just added that as a TODO.
24 lines
538 B
Rust
24 lines
538 B
Rust
use bevy_core::{Pod, Zeroable};
|
|
use bevy_math::Vec2;
|
|
|
|
/// A rectangle defined by two points. There is no defined origin, so 0,0 could be anywhere
|
|
/// (top-left, bottom-left, etc)
|
|
#[repr(C)]
|
|
#[derive(Default, Clone, Copy, Debug, Pod, Zeroable)]
|
|
pub struct Rect {
|
|
/// The beginning point of the rect
|
|
pub min: Vec2,
|
|
/// The ending point of the rect
|
|
pub max: Vec2,
|
|
}
|
|
|
|
impl Rect {
|
|
pub fn width(&self) -> f32 {
|
|
self.max.x - self.min.x
|
|
}
|
|
|
|
pub fn height(&self) -> f32 {
|
|
self.max.y - self.min.y
|
|
}
|
|
}
|