OctantMask

Struct OctantMask 

Source
pub struct OctantMask { /* private fields */ }
Expand description

A set of Octants (or equivalently, one bool for each cube of a 2×2×2 volume).

Internally represented as a u8 bit-set.

This type may be used for culling or other calculations relating to the axis-aligned volumes surrounding a point. If more data than bool is needed, use OctantMap.

Implementations§

Source§

impl OctantMask

Source

pub const ALL: OctantMask

The mask including all octants (all bits set).

Source

pub const NONE: OctantMask

The mask including no octants (no bits set).

Source

pub fn get(self, octant: Octant) -> bool

Get the flag for the given octant.

Source

pub fn set(&mut self, octant: Octant)

Set the flag for the given octant.

Source

pub fn clear(&mut self, octant: Octant)

Clear the flat for the given octant.

Source

pub fn shift(self, direction: Face6) -> OctantMask

Shift the data in the specified direction, discarding overflows and filling with false/clear.

Trait Implementations§

Source§

impl<'arbitrary> Arbitrary<'arbitrary> for OctantMask

Source§

fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<OctantMask, Error>

Generate an arbitrary value of Self from the given unstructured data. Read more
Source§

fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<OctantMask, Error>

Generate an arbitrary value of Self from the entirety of the given unstructured data. Read more
Source§

fn size_hint(depth: usize) -> (usize, Option<usize>)

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
Source§

fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
Source§

impl BitAnd for OctantMask

Source§

type Output = OctantMask

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: OctantMask) -> <OctantMask as BitAnd>::Output

Performs the & operation. Read more
Source§

impl BitAndAssign for OctantMask

Source§

fn bitand_assign(&mut self, rhs: OctantMask)

Performs the &= operation. Read more
Source§

impl BitOr for OctantMask

Source§

type Output = OctantMask

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: OctantMask) -> <OctantMask as BitOr>::Output

Performs the | operation. Read more
Source§

impl BitOrAssign for OctantMask

Source§

fn bitor_assign(&mut self, rhs: OctantMask)

Performs the |= operation. Read more
Source§

impl Clone for OctantMask

Source§

fn clone(&self) -> OctantMask

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OctantMask

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Exhaust for OctantMask

Source§

type Iter = ExhaustOctantMaskIter

Iterator type returned by Self::exhaust_factories(). See the trait documentation for what properties this iterator should have. Read more
Source§

type Factory = ExhaustOctantMaskFactory

Data which can be used to construct Self. Read more
Source§

fn exhaust_factories() -> <OctantMask as Exhaust>::Iter

Returns an iterator over factories for all values of this type. Read more
Source§

fn from_factory(factory: <OctantMask as Exhaust>::Factory) -> OctantMask

Construct a concrete value of this type from a Self::Factory value produced by its Self::Iter. Read more
Source§

fn exhaust() -> Iter<Self>

Returns an iterator over all values of this type. Read more
Source§

impl From<Octant> for OctantMask

Source§

fn from(octant: Octant) -> OctantMask

Converts to this type from the input type.
Source§

impl FromIterator<Octant> for OctantMask

Source§

fn from_iter<T>(iter: T) -> OctantMask
where T: IntoIterator<Item = Octant>,

Creates a value from an iterator. Read more
Source§

impl Hash for OctantMask

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Not for OctantMask

Source§

type Output = OctantMask

The resulting type after applying the ! operator.
Source§

fn not(self) -> <OctantMask as Not>::Output

Performs the unary ! operation. Read more
Source§

impl PartialEq for OctantMask

Source§

fn eq(&self, other: &OctantMask) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for OctantMask

Source§

impl Eq for OctantMask

Source§

impl StructuralPartialEq for OctantMask

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynEq for T
where T: Any + Eq,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Casts the type to dyn Any.
Source§

fn dyn_eq(&self, other: &(dyn DynEq + 'static)) -> bool

This method tests for self and other values to be equal. Read more
Source§

impl<T> DynHash for T
where T: DynEq + Hash,

Source§

fn as_dyn_eq(&self) -> &(dyn DynEq + 'static)

Casts the type to dyn Any.
Source§

fn dyn_hash(&self, state: &mut dyn Hasher)

Feeds this value into the given Hasher.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ConditionalSend for T
where T: Send,