Expand description
0 1 2 3 4 B C D
0┌─┬─┬─┬─┐ A┌─┬─┬─┬─┐E
1├─┼─┼─┼─┤ │ │ │ │ │
2├─┼─┼─┼─┤ F├─G─H─I─┤J
3├─┼─┼─┼─┤ │ │ │ │ │
4├─┼─┼─┼─┤ K├─L─M─N─┤O
5├─┼─┼─┼─┤ │ │ │ │ │
6├─┼─┼─┼─┤ P├─Q─R─S─┤T
7├─┼─┼─┼─┤ │ │ │ │ │
8└─┴─┴─┴─┘ U└─┴─┴─┴─┘Y
``` V W X
A single element in the terminal that
can fit 1 character.
Describe the exact location of a point/subcell in a grid.
Fields
x: i32
y: i32
Implementations
sourceimpl Cell
impl Cell
pub fn b(&self) -> Point
pub fn c(&self) -> Point
pub fn d(&self) -> Point
pub fn e(&self) -> Point
pub fn f(&self) -> Point
pub fn g(&self) -> Point
pub fn h(&self) -> Point
pub fn i(&self) -> Point
pub fn j(&self) -> Point
pub fn k(&self) -> Point
pub fn l(&self) -> Point
pub fn m(&self) -> Point
pub fn n(&self) -> Point
pub fn o(&self) -> Point
pub fn p(&self) -> Point
pub fn q(&self) -> Point
pub fn r(&self) -> Point
pub fn s(&self) -> Point
pub fn t(&self) -> Point
pub fn u(&self) -> Point
pub fn v(&self) -> Point
pub fn w(&self) -> Point
pub fn x(&self) -> Point
pub fn y(&self) -> Point
pub fn new(x: i32, y: i32) -> Self
sourcepub fn is_adjacent(&self, other: &Self) -> bool
pub fn is_adjacent(&self, other: &Self) -> bool
returns true if the other cell is at: top_left, top, top_right, left, right, bottom_left, bottom, bottom_right of self
sourcepub fn snap_point(point: Point) -> (Self, Point)
pub fn snap_point(point: Point) -> (Self, Point)
Derive which cell this points falls into and snap the point closes to any intersection in the cell grid. FIXME: need to find a way to snap a group of point that lies in boundaries to snap together to a common cell.
pub fn snap_group(points: &[Point]) -> Self
sourcepub fn top_left_most(&self) -> Point
pub fn top_left_most(&self) -> Point
The point at the top right of this cell
pub fn bottom_right_most(&self) -> Point
sourcepub fn localize_point(&self, point: Point) -> Point
pub fn localize_point(&self, point: Point) -> Point
turn point into relative distance from the top-left of this cell by simply deducting the point p with this cell’s top_left_most point
pub fn localize_cell(&self, cell: Cell) -> Cell
pub fn width() -> f32
pub fn height() -> f32
pub fn unit(l: i32) -> f32
sourcepub fn is_intersected(&self, start: Point, end: Point) -> bool
pub fn is_intersected(&self, start: Point, end: Point) -> bool
test whether this cell is intersected with the line segment
with point start
and end
sourcepub fn is_bounded(&self, bound1: Cell, bound2: Cell) -> bool
pub fn is_bounded(&self, bound1: Cell, bound2: Cell) -> bool
check if this cell is bounded by the lower bound and upper bound
pub fn clip_line_snap(&self, start: Point, end: Point) -> Option<(Point, Point)>
sourcepub fn clip_line_localize(
&self,
start: Point,
end: Point
) -> Option<(Point, Point)>
pub fn clip_line_localize(
&self,
start: Point,
end: Point
) -> Option<(Point, Point)>
clip line then localize the points and snap to the nearest cell grid intersection
pub fn top(&self) -> Self
pub fn top_right(&self) -> Self
pub fn right(&self) -> Self
pub fn bottom_left(&self) -> Self
pub fn bottom(&self) -> Self
pub fn bottom_right(&self) -> Self
Trait Implementations
sourceimpl Ord for Cell
impl Ord for Cell
sourceimpl PartialOrd<Cell> for Cell
impl PartialOrd<Cell> for Cell
sourcefn partial_cmp(&self, other: &Cell) -> Option<Ordering>
fn partial_cmp(&self, other: &Cell) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Copy for Cell
impl Eq for Cell
impl StructuralPartialEq for Cell
Auto Trait Implementations
impl RefUnwindSafe for Cell
impl Send for Cell
impl Sync for Cell
impl Unpin for Cell
impl UnwindSafe for Cell
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
pub fn to_subset_unchecked(&self) -> SS
pub fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
pub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more