/// <summary> /// Determine size (max width). This matches the max (width + x position) of all nodes in tree /// </summary> /// <param name="rootNode">root node of the tree</param> /// <param name="treeType">ICustomTreeType instance</param> /// <param name="drawer">ICustomTreeDrawer instance</param> /// <param name="nodeSize">node size from settings</param> /// <returns>max size/width</returns> public static double DetermineSize(CustomTreeNode rootNode, ICustomTreeType treeType, ICustomTreeDrawer drawer, double nodeSize) { double maxSize = 0; foreach (var node in rootNode.TraverseBreadthFirst()) { double x, y; treeType.GetXY(node, out x, out y); double size = x + drawer.GetSizeOf(node, nodeSize, false); if (size > maxSize) { maxSize = size; } } return(maxSize - nodeSize / 2.0f); }
public CustomTree(ICustomTreeType nodeDrawer) { this.nodeDrawer = nodeDrawer; }