[−][src]Struct conrod_core::graph::depth_order::DepthOrder
Contains Node indices in order of depth, starting with the deepest.
Fields
indices: Vec<Id>
The primary Vec storing the DepthOrder's ordered indices.
Implementations
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: Id,
updated_widgets: &FnvHashSet<Id>
)
[src]
&mut self,
graph: &Graph,
root: Id,
updated_widgets: &FnvHashSet<Id>
)
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
Auto Trait Implementations
impl RefUnwindSafe for DepthOrder
impl Send for DepthOrder
impl Sync for DepthOrder
impl Unpin for DepthOrder
impl UnwindSafe for DepthOrder
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,