Esempio n. 1
0
        private void DoLayout(IDiagram diagram)
        {
            var nodes      = diagram.Nodes.Where(i => !i.HasParent).ToArray();
            var connectors = nodes.SelectMany(i => diagram.GetConnectorsByNode(i.Id)).Distinct();

            var oldRects     = GetRects(nodes);
            var newRects     = _layoutAlgorithm.Calculate(nodes, connectors);
            var changedRects = GetChanges(oldRects, newRects);

            Debug.WriteLine($"ChangedRects.Count={changedRects.Count}");

            ApplyChanges(changedRects, diagram);
        }