Struct myelin_geometry::Aabb
source · pub struct Aabb {
pub upper_left: Point,
pub lower_right: Point,
}
Expand description
An axix-aligned bounding box
┼─────────────────────────────────────── x
│
│ Upper left → ┌─────────────┐
│ │ │
│ │ │
│ └─────────────┘ ← Lower right
│
y
Fields§
§upper_left: Point
The coordinates of the upper left corner of the box
lower_right: Point
The coordinates of the lower right corner of the box
Implementations§
source§impl Aabb
impl Aabb
sourcepub fn try_new<P1, P2>(upper_left: P1, lower_right: P2) -> Result<Self, ()>
pub fn try_new<P1, P2>(upper_left: P1, lower_right: P2) -> Result<Self, ()>
Creates a new Aabb
from two points.
§Examples
§From tuples
use myelin_geometry::Aabb;
let area = Aabb::try_new((10.0, 0.0), (20.0, 10.0)).expect("Invalid aabb");
§From points
use myelin_geometry::{Aabb, Point};
let area =
Aabb::try_new(Point { x: 0.0, y: 10.0 }, Point { x: 20.0, y: 20.0 }).expect("Invalid aabb");
§Errors
Returns an error when both points are the same.
Trait Implementations§
source§impl Intersects for Aabb
impl Intersects for Aabb
source§fn intersects(&self, other: &Aabb) -> bool
fn intersects(&self, other: &Aabb) -> bool
Returns wether the bounds of another Aabb
are touching or
inside this Aabb
.
┼─────────────────────────────────────── x
│
│ ┌─────────────┐
│ │ │
│ │ ┌──│───────┐
│ └─────────────┘ │
│ └──────────┘
y
source§impl PartialEq for Aabb
impl PartialEq for Aabb
impl Copy for Aabb
impl StructuralPartialEq for Aabb
Auto Trait Implementations§
impl Freeze for Aabb
impl RefUnwindSafe for Aabb
impl Send for Aabb
impl Sync for Aabb
impl Unpin for Aabb
impl UnwindSafe for Aabb
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more