pub struct CubicalCell {
pub coordinates: Vec<usize>,
pub dimension: usize,
}Expand description
A single cell in a cubical complex.
Cells are identified by their grid coordinates and dimension.
- 0-cell (vertex): coordinates are integer grid indices
[x, y] - 1-cell (edge): one coordinate is half-integer (encoded as doubled + 1)
- 2-cell (face): two coordinates are half-integer
- 3-cell (voxel): three coordinates are half-integer
To avoid floating point, we use “doubled coordinates”: each coordinate is
stored as 2*k for integers (vertices) and 2*k+1 for half-integers (edge midpoints).
Fields§
§coordinates: Vec<usize>Doubled coordinates: even entries are integer, odd entries are half-integer.
dimension: usizeDimension of the cell (number of coordinates that are odd / half-integer).
Implementations§
Trait Implementations§
Source§impl Clone for CubicalCell
impl Clone for CubicalCell
Source§fn clone(&self) -> CubicalCell
fn clone(&self) -> CubicalCell
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CubicalCell
impl Debug for CubicalCell
Source§impl Hash for CubicalCell
impl Hash for CubicalCell
Source§impl PartialEq for CubicalCell
impl PartialEq for CubicalCell
impl Eq for CubicalCell
impl StructuralPartialEq for CubicalCell
Auto Trait Implementations§
impl Freeze for CubicalCell
impl RefUnwindSafe for CubicalCell
impl Send for CubicalCell
impl Sync for CubicalCell
impl Unpin for CubicalCell
impl UnsafeUnpin for CubicalCell
impl UnwindSafe for CubicalCell
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§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 moreSource§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).Source§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.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.