Пример #1
0
    private void CalculateFinalPositions(DependencyViewerNode node, DependencyViewerNode.NodeInputSide treeSide, float modSum = 0)
    {
        node.SetPositionY(node.Position.y + modSum);
        modSum += node.Mod;

        foreach (var child in node.GetChildren(treeSide))
        {
            CalculateFinalPositions(child, treeSide, modSum);
        }
    }
    private void ForeachChildrenRecursively(NodeInputSide treeSide, DependencyViewerNode node, Action <DependencyViewerNode> onEachNodeCallback)
    {
        var children = node.GetChildren(treeSide);

        for (int i = 0; i < children.Count; ++i)
        {
            ForeachChildrenRecursively(treeSide, children[i], onEachNodeCallback);
        }

        onEachNodeCallback(node);
    }
Пример #3
0
    private void CenterTreeToRoot(DependencyViewerNode.NodeInputSide side)
    {
        var children = _refTargetNode.GetChildren(side);

        if (children.Count > 1)
        {
            float size     = _refTargetNode.GetLastChild(side).Position.y - _refTargetNode.GetFirstChild(side).Position.y;
            float actualY  = _refTargetNode.GetFirstChild(side).Position.y;
            float desiredY = _refTargetNode.Position.y - size / 2.0f;
            float shiftY   = desiredY - actualY;

            for (int i = 0; i < children.Count; ++i)
            {
                children[i].ForeachChildrenRecursively(side, (node) => node.SetPositionY(node.Position.y + shiftY));
            }
        }
    }