[][src]Struct nannou::ui::graph::depth_order::DepthOrder

pub struct DepthOrder {
    pub indices: Vec<NodeIndex<u32>>,
    // some fields omitted
}

Contains Node indices in order of depth, starting with the deepest.

Fields

indices: Vec<NodeIndex<u32>>

The primary Vec storing the DepthOrder's ordered indices.

Methods

impl DepthOrder[src]

pub fn new() -> DepthOrder[src]

Construct a new empty DepthOrder.

pub fn with_node_capacity(n_nodes: usize) -> DepthOrder[src]

Construct a new empty DepthOrder.

There can be at most two indices per widget (the widget and the widget's scrollbar). Thus we'll reserve double the number of nodes given.

pub fn update(
    &mut self,
    graph: &Graph,
    root: NodeIndex<u32>,
    updated_widgets: &HashSet<NodeIndex<u32>, BuildHasherDefault<FnvHasher>>
)
[src]

Update the DepthOrder (starting with the deepest) for all nodes in the given Graph.

FIXME: This likely needs to be re-written, and will probably fail for graphs with many floating widgets instantiated upon other floating widgets.

The proper algorithm should be a full toposort where the neighbours of each node are visited in the order specified within visit_by_depth.

The visit_by_depth algorithm should not be recursive and instead use either looping, walking or iteration.

Trait Implementations

impl Debug for DepthOrder[src]

Auto Trait Implementations

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> 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> From<T> for T[src]

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

impl<T> SetParameter for T

impl<T> SetParameter for T

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