Struct conrod::graph::depth_order::DepthOrder [] [src]

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

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

Fields

The primary Vec storing the DepthOrder's ordered indices.

Methods

impl DepthOrder
[src]

Construct a new empty DepthOrder.

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.

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.