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

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

Tree cell enumeration.

Variants

Root

Root cell.

Fields of Root

boundary: Cube

Boundary.

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

Children.

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<(T, &'a SmoothTriangle)>

Intersecting triangles.

Empty

Terminal empty cell.

Fields of Empty

boundary: Cube

Boundary.

Implementations

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

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

Determine the number of cells contained within the cell. This cell is included in the count.

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

Determine the number leaf of cells contained within the cell. This cell is included in the count.

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

Determine the number of reference pairs contained within this cell and all child cells.

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

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

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

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

Determine what a ray would observe within the cell.

#[must_use]pub fn hit_scan(&self, ray: &Ray, bump_dist: f64) -> Scan<T>[src]

Scan for hits within the cell.

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

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

Determine the terminal cell containing the given position.

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

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

Reference the cell's boundary.

Auto Trait Implementations

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

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

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

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

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

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>,