Exemplo n.º 1
0
 public IInspectTree3DNode <T> Build3D <T> (IInspectTree3DNode <T> node3D, InspectTreeState state)
 {
     node3D.BuildPrimaryPlane(state);
     state.PushGeneration();
     foreach (var child in GetRenderedChildren(state))
     {
         var child3d = node3D.BuildChild(child, state);
         node3D.Add(child3d);
     }
     state.PopGeneration();
     return(node3D);
 }
Exemplo n.º 2
0
        IEnumerable <InspectTreeNode> GetRenderedChildren(InspectTreeState state)
        {
            // exploit the fact that Layers can't have Subview or Layer set
            // to walk the children in collapsed layer format
            var layer    = View.Layer;
            var children = Children.OfType <InspectTreeNode>();

            foreach (var child in children)
            {
                if (state.CollapseLayers && layer != null && child.View == layer)
                {
                    foreach (var sublayer in child.Children.OfType <InspectTreeNode> ())
                    {
                        yield return(sublayer);
                    }

                    yield break;
                }
                else
                {
                    yield return(child);
                }
            }
        }