private Diagram( [NotNull] ILayoutGroup rootLayoutGroup, [NotNull] IImmutableDictionary <ModelRelationshipId, IDiagramConnector> crossLayoutGroupConnectors) { RootLayoutGroup = rootLayoutGroup; _crossLayoutGroupConnectors = crossLayoutGroupConnectors; Nodes = RootLayoutGroup.NodesRecursive; Connectors = RootLayoutGroup.ConnectorsRecursive.Union(CrossLayoutGroupConnectors); _allShapesGraph = DiagramGraph.Create(Nodes, Connectors); }
private Diagram( [NotNull] IModel model, [NotNull] IImmutableDictionary <ModelNodeId, IDiagramNode> nodes, [NotNull] IImmutableDictionary <ModelRelationshipId, IDiagramConnector> connectors) { Model = model; _nodes = nodes; _connectors = connectors; Nodes = nodes.Values.ToImmutableHashSet(); Connectors = connectors.Values.ToImmutableHashSet(); Rect = CalculateRect(); _allShapesGraph = DiagramGraph.Create(Nodes, Connectors); }
public LayoutGroup(ModelNodeId?layoutGroupNodeId, [NotNull] IDiagramGraph graph) { _graph = graph; _layoutGroupNodeId = layoutGroupNodeId; }
private ILayoutGroup CreateInstance([NotNull] IDiagramGraph graph) => new LayoutGroup(_layoutGroupNodeId, graph);