示例#1
0
        private void Arrange()
        {
            if (left != null)
            {
                left.Arrange();
            }

            if (right != null)
            {
                right.Arrange();
            }

            if (left != null && right != null)
            {
                int overlapped = left.xMax - right.xMin + TreeRenderer.SquareSize + TreeRenderer.DefaultDistance;

                if (overlapped > 0)
                {
                    left.xOffset -= overlapped / 2;
                    MergeBounds(left, true);

                    right.xOffset += overlapped / 2;
                    MergeBounds(right, true);
                }
            }
        }
示例#2
0
        public static RenderNode ConvertFromNode(Node root)
        {
            RenderNode newNode = MakeNode(root, 0, 0);

            newNode.isRoot = true;
            newNode.EstimateXBounds();
            newNode.Arrange();
            newNode.ApplyXOffset();

            return(newNode);
        }