using System; using System.Collections.Generic; using System.Drawing; namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views { interface ILayoutEngine where T : class { int NodeWidth { get; set; } int NodeHeight { get; set; } int HorizontalSpacing { get; set; } int VerticalSpacing { get; set; } void CalculateLayout(); void CalculateLayout(float width, float height); void Initialize(T root, Func> getChildren, Func getLength = null, Func getDepth = null); void Clear(); void Reset(); // function members necessary to navigate the tree structure Func> GetChildren { get; set; } Func GetLength { get; set; } Func GetDepth { get; set; } IEnumerable GetContentNodes(); IEnumerable> GetVisualNodes(); Dictionary GetCoordinates(); } }