pub struct Cell {
pub x: i32,
pub y: i32,
}
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§
source§impl 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§
source§impl Ord for Cell
impl Ord for Cell
source§impl PartialEq<Cell> for Cell
impl PartialEq<Cell> for Cell
source§impl PartialOrd<Cell> for Cell
impl PartialOrd<Cell> for Cell
1.0.0 · source§fn 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 moreimpl Copy for Cell
impl Eq for Cell
impl StructuralEq 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§
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, 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
.§fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
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.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.