Struct nannou::ui::graph::depth_order::DepthOrder [−][src]
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]
impl DepthOrder
pub fn new() -> DepthOrder
[src]
pub fn new() -> DepthOrder
Construct a new empty DepthOrder.
pub fn with_node_capacity(n_nodes: usize) -> DepthOrder
[src]
pub fn with_node_capacity(n_nodes: usize) -> 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.
pub fn update(
&mut self,
graph: &Graph,
root: NodeIndex<u32>,
updated_widgets: &HashSet<NodeIndex<u32>, BuildHasherDefault<FnvHasher>>
)
[src]
pub fn update(
&mut self,
graph: &Graph,
root: NodeIndex<u32>,
updated_widgets: &HashSet<NodeIndex<u32>, BuildHasherDefault<FnvHasher>>
)
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.
Auto Trait Implementations
impl Send for DepthOrder
impl Send for DepthOrder
impl Sync for DepthOrder
impl Sync for DepthOrder