37 lines
732 B
Rust
37 lines
732 B
Rust
//! Tipos geométricos mínimos en `f32`.
|
|
|
|
#[derive(Debug, Clone, Copy, PartialEq)]
|
|
pub struct Point {
|
|
pub x: f32,
|
|
pub y: f32,
|
|
}
|
|
|
|
impl Point {
|
|
pub const fn new(x: f32, y: f32) -> Self {
|
|
Self { x, y }
|
|
}
|
|
}
|
|
|
|
#[derive(Debug, Clone, Copy, PartialEq)]
|
|
pub struct Rect {
|
|
pub x: f32,
|
|
pub y: f32,
|
|
pub w: f32,
|
|
pub h: f32,
|
|
}
|
|
|
|
impl Rect {
|
|
pub const fn new(x: f32, y: f32, w: f32, h: f32) -> Self {
|
|
Self { x, y, w, h }
|
|
}
|
|
pub fn right(&self) -> f32 {
|
|
self.x + self.w
|
|
}
|
|
pub fn bottom(&self) -> f32 {
|
|
self.y + self.h
|
|
}
|
|
pub fn contains(&self, p: Point) -> bool {
|
|
p.x >= self.x && p.x <= self.right() && p.y >= self.y && p.y <= self.bottom()
|
|
}
|
|
}
|