Skip to main content

Rectangle

Type Alias Rectangle 

Source
pub type Rectangle = Hypercuboid<2>;
Expand description

An axis-aligned rectangle.

§Examples

Basic construction and methods:

use hoomd_geometry::{Volume, shape::Rectangle};

let rectangle = Rectangle {
    edge_lengths: [2.0.try_into()?, 4.0.try_into()?],
};
assert_eq!(rectangle.volume(), 8.0);

Intersection tests:

use hoomd_geometry::{Convex, IntersectsAt, shape::Rectangle};
use hoomd_vector::{Angle, Cartesian};
use std::f64::consts::PI;

let rectangle = Rectangle {
    edge_lengths: [4.0.try_into()?, 2.0.try_into()?],
};
let rectangle = Convex(rectangle);

assert!(!rectangle.intersects_at(
    &rectangle,
    &[0.0, 2.1].into(),
    &Angle::default()
));
assert!(rectangle.intersects_at(
    &rectangle,
    &[0.0, 2.1].into(),
    &Angle::from(PI / 2.0)
));

Aliased Type§

pub struct Rectangle {
    pub edge_lengths: [PositiveReal; 2],
}

Fields§

§edge_lengths: [PositiveReal; 2]

The lengths of each edge of the cuboid.