Struct nannou::geom::graph::node::Dfs[][src]

pub struct Dfs<S = Default> where
    S: BaseFloat
{ /* fields omitted */ }

A depth-first-search over nodes in the graph, yielding each node’s unique index alongside its absolute transform.

The traversal may start at any given node.

Note: The algorithm may not behave correctly if nodes are removed during iteration. It may not necessarily visit added nodes or edges.

Implementations

impl<S> Dfs<S> where
    S: BaseFloat
[src]

pub fn new(graph: &Graph<S>) -> Self[src]

Create a new Dfs starting from the graph’s origin.

pub fn start_from(graph: &Graph<S>, start: Index) -> Self[src]

Create a new Dfs starting from the node at the given node.

pub fn reset(&mut self, graph: &Graph<S>)[src]

Clears the visit state.

pub fn move_to(&mut self, start: Index)[src]

Keep the discovered map but clear the visit stack and restart the dfs from the given node.

pub fn next_transform(
    &mut self,
    graph: &Graph<S>
) -> Option<(Index, Transform<S>)>
[src]

Return the tranform for the next node in the DFS.

Returns None if the traversal is finished.

pub fn next_vertices<F, I>(
    &mut self,
    graph: &Graph<S>,
    vertices_fn: F
) -> Option<(Index, TransformedVertices<I::IntoIter, S>)> where
    F: FnOnce(&Index) -> I,
    I: IntoIterator,
    I::Item: ApplyTransform<S>, 
[src]

Return the vertices for the next node in the DFS.

Uses Dfs::next_transform internally.

Returns None if the traversal is finished.

pub fn next_triangles<F, I, V>(
    &mut self,
    graph: &Graph<S>,
    triangles_fn: F
) -> Option<(Index, TransformedTriangles<I::IntoIter, V, S>)> where
    F: FnOnce(&Index) -> I,
    I: IntoIterator<Item = Tri<V>>,
    V: Vertex + ApplyTransform<S>, 
[src]

Return the triangles for the next node in the DFS.

Uses Dfs::next_transform and Node::triangles internally.

Returns None if the traversal is finished.

Trait Implementations

impl<S: Clone> Clone for Dfs<S> where
    S: BaseFloat
[src]

impl<S: Debug> Debug for Dfs<S> where
    S: BaseFloat
[src]

impl<'a, S> Walker<&'a Graph<S>> for Dfs<S> where
    S: BaseFloat
[src]

type Item = (Index, Transform<S>)

Auto Trait Implementations

impl<S> RefUnwindSafe for Dfs<S> where
    S: RefUnwindSafe

impl<S> Send for Dfs<S> where
    S: Send

impl<S> Sync for Dfs<S> where
    S: Sync

impl<S> Unpin for Dfs<S> where
    S: Unpin

impl<S> UnwindSafe for Dfs<S> where
    S: UnwindSafe

Blanket Implementations

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
    T: Component + Float,
    D: AdaptFrom<S, Swp, Dwp, T>,
    Swp: WhitePoint,
    Dwp: WhitePoint
[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> Downcast<T> for T

impl<T> From<T> for T[src]

impl<T> Instrument 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> SetParameter for T

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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<T> Upcast<T> for T

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,