[][src]Enum arctk::geom::dom::tree::Tree

pub enum Tree<'a, T> {
    Branch {
        boundary: Cube,
        children: Box<[Tree<'a, T>; 8]>,
    },
    Leaf {
        boundary: Cube,
        tris: Vec<(&'a SmoothTriangle, &'a T)>,
    },
}

Tree cell enumeration.

Variants

Branch

Branching cell.

Fields of Branch

boundary: Cube

Boundary.

children: Box<[Tree<'a, T>; 8]>

Children.

Leaf

Terminal populated cell.

Fields of Leaf

boundary: Cube

Boundary.

tris: Vec<(&'a SmoothTriangle, &'a T)>

Intersecting triangles and their corresponding mesh index.

Implementations

impl<'a, T> Tree<'a, T>[src]

#[must_use]pub fn new(sett: &TreeSettings, surfs: &'a Set<Surface<'_, T>>) -> Self[src]

Construct a new instance.

#[must_use]pub fn boundary(&self) -> &Cube[src]

Reference the cell's boundary.

#[must_use]pub fn num_cells(&self) -> usize[src]

Determine the total number of cells used by this cell. This cell is included in the count.

#[must_use]pub fn num_leaves(&self) -> usize[src]

Determine the number leaf of cells contained used by this cell. This cell is potentially included in the count.

#[must_use]pub fn num_tris(&self) -> usize[src]

Determine the number of triangle collision references used by this cell.

#[must_use]pub fn depth(&self) -> usize[src]

Determine the maximum depth from this cell to a terminal cell.

#[must_use]pub fn try_find_leaf(&self, pos: &Pos3) -> Option<&Self>[src]

If a given position is contained within the cell to being with, determine the terminal leaf cell containing the given position.

#[must_use]pub fn find_leaf(&self, pos: &Pos3) -> &Self[src]

Determine the terminal leaf cell containing the given position.

#[must_use]pub fn scan(
    &self,
    ray: Ray,
    bump_dist: f64,
    max_dist: f64
) -> Option<Hit<'_, T>>
[src]

Determine what a given Ray would observe. The maximum distance provided does not guarantee that any hit retrieved is less than the given distance.

Auto Trait Implementations

impl<'a, T> RefUnwindSafe for Tree<'a, T> where
    T: RefUnwindSafe

impl<'a, T> Send for Tree<'a, T> where
    T: Sync

impl<'a, T> Sync for Tree<'a, T> where
    T: Sync

impl<'a, T> Unpin for Tree<'a, T>

impl<'a, T> UnwindSafe for Tree<'a, T> where
    T: RefUnwindSafe

Blanket Implementations

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
    D: AdaptFrom<S, Swp, Dwp, T>,
    Dwp: WhitePoint,
    Swp: WhitePoint,
    T: Component + Float
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Background for T[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T, U> ConvertInto<U> for T where
    U: ConvertFrom<T>, 
[src]

impl<T> Foreground for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,