Table of Contents

Class TreeTraverser

Namespace
HelixToolkit.SharpDX
Assembly
HelixToolkit.SharpDX.dll
public static class TreeTraverser
Inheritance
TreeTraverser
Inherited Members

Methods

ForceUpdateTransformsAndBounds(SceneNode)

Forces to update transform and bounds.

public static void ForceUpdateTransformsAndBounds(this SceneNode root)

Parameters

root SceneNode

The root.

ForceUpdateTransformsAndBounds(IEnumerable<SceneNode>)

Forces the update transform and bounds.

public static void ForceUpdateTransformsAndBounds(this IEnumerable<SceneNode> nodes)

Parameters

nodes IEnumerable<SceneNode>

The nodes.

PreorderDFT(IEnumerable<SceneNode>, Func<SceneNode, bool>, Stack<IEnumerator<SceneNode>>?)

Pre-ordered depth first traverse

public static IEnumerable<SceneNode> PreorderDFT(this IEnumerable<SceneNode> nodes, Func<SceneNode, bool> condition, Stack<IEnumerator<SceneNode>>? stackCache = null)

Parameters

nodes IEnumerable<SceneNode>
condition Func<SceneNode, bool>
stackCache Stack<IEnumerator<SceneNode>>

Returns

IEnumerable<SceneNode>

PreorderDFT(IList<SceneNode>, RenderContext, Func<SceneNode, RenderContext, bool>, IList<KeyValuePair<int, SceneNode>>, Stack<KeyValuePair<int, IList<SceneNode>>>?)

Preorders the DFT without using Linq.

public static void PreorderDFT(this IList<SceneNode> nodes, RenderContext context, Func<SceneNode, RenderContext, bool> condition, IList<KeyValuePair<int, SceneNode>> results, Stack<KeyValuePair<int, IList<SceneNode>>>? stackCache = null)

Parameters

nodes IList<SceneNode>

The nodes.

context RenderContext

The context.

condition Func<SceneNode, RenderContext, bool>

The condition.

results IList<KeyValuePair<int, SceneNode>>

The results.

stackCache Stack<KeyValuePair<int, IList<SceneNode>>>

The stack cache.

PreorderDFTGetCores(IEnumerable<SceneNode>, Func<SceneNode, bool>, Stack<IEnumerator<SceneNode>>?)

Get render cores by Pre-ordered depth first traverse

public static IEnumerable<RenderCore> PreorderDFTGetCores(this IEnumerable<SceneNode> nodes, Func<SceneNode, bool> condition, Stack<IEnumerator<SceneNode>>? stackCache = null)

Parameters

nodes IEnumerable<SceneNode>
condition Func<SceneNode, bool>
stackCache Stack<IEnumerator<SceneNode>>

Returns

IEnumerable<RenderCore>

PreorderDFTGetCores(IEnumerable<SceneNode2D>, Func<SceneNode2D, bool>, Stack<IEnumerator<SceneNode2D>>?)

Get render cores by Pre-ordered depth first traverse

public static IEnumerable<RenderCore2D?> PreorderDFTGetCores(this IEnumerable<SceneNode2D> nodes, Func<SceneNode2D, bool> condition, Stack<IEnumerator<SceneNode2D>>? stackCache = null)

Parameters

nodes IEnumerable<SceneNode2D>
condition Func<SceneNode2D, bool>
stackCache Stack<IEnumerator<SceneNode2D>>

Returns

IEnumerable<RenderCore2D>

PreorderDFTRun(IList<SceneNode2D>, Func<SceneNode2D, bool>, Stack<KeyValuePair<int, IList<SceneNode2D>>>?)

Preorders the DFT without Linq;

public static void PreorderDFTRun(this IList<SceneNode2D> nodes, Func<SceneNode2D, bool> condition, Stack<KeyValuePair<int, IList<SceneNode2D>>>? stackCache = null)

Parameters

nodes IList<SceneNode2D>

The nodes.

condition Func<SceneNode2D, bool>

The condition.

stackCache Stack<KeyValuePair<int, IList<SceneNode2D>>>

The stack cache.

Traverse(SceneNode, bool, Stack<IEnumerator<SceneNode>>?)

Traverses the specified only rendering.

public static IEnumerable<SceneNode> Traverse(this SceneNode root, bool onlyRendering = false, Stack<IEnumerator<SceneNode>>? stackCache = null)

Parameters

root SceneNode

The root.

onlyRendering bool

if set to true [only rendering].

stackCache Stack<IEnumerator<SceneNode>>

The stack cache.

Returns

IEnumerable<SceneNode>

Traverse(IEnumerable<SceneNode>, bool, Stack<IEnumerator<SceneNode>>?)

Traverses the specified condition.

public static IEnumerable<SceneNode> Traverse(this IEnumerable<SceneNode> nodes, bool onlyRendering = false, Stack<IEnumerator<SceneNode>>? stackCache = null)

Parameters

nodes IEnumerable<SceneNode>

The nodes.

onlyRendering bool

Only the node is currently rendering. The nodes set to be Visible = false or IsRendering = false will not be traversed.

stackCache Stack<IEnumerator<SceneNode>>

The stack cache.

Returns

IEnumerable<SceneNode>

TraverseUp(SceneNode?)

Traverses up to the root

public static IEnumerable<SceneNode> TraverseUp(this SceneNode? node)

Parameters

node SceneNode

The node.

Returns

IEnumerable<SceneNode>