Esempio n. 1
0
 private static void PopulateClusters(Subgraph cluster, GeometryCluster c)
 {
     foreach (GeometryNode n in c.Nodes)
         cluster.AddNode(localMap[n]);
     foreach (GeometryCluster c2 in c.Clusters)
     {
         Subgraph cluster2 = new Subgraph(counter++.ToString());
         cluster2.GeometryNode = c2;
         localMap[c2] = cluster2;
         cluster.AddSubgraph(cluster2);
         PopulateClusters(cluster2, c2);
     }
 }
 private static void PopulateClusters(Subgraph cluster, GeometryCluster c)
 {
     foreach (GeometryNode n in c.Nodes)
     {
         cluster.AddNode(localMap[n]);
     }
     foreach (GeometryCluster c2 in c.Clusters)
     {
         Subgraph cluster2 = new Subgraph(counter++.ToString());
         cluster2.GeometryNode = c2;
         localMap[c2]          = cluster2;
         cluster.AddSubgraph(cluster2);
         PopulateClusters(cluster2, c2);
     }
 }
 private static void PopulateClusterEdges(Subgraph cluster, GeometryCluster c)
 {
     foreach (GeometryEdge e in c.InEdges)
     {
         Edge edge = new Edge(localMap[e.Source], localMap[e.Target], ConnectionToGraph.Disconnected);
         edge.Attr.ArrowheadAtSource = e.ArrowheadAtSource ? ArrowStyle.Normal : ArrowStyle.None;
         edge.Attr.ArrowheadAtTarget = e.ArrowheadAtTarget ? ArrowStyle.Normal : ArrowStyle.None;
         edge.GeometryEdge           = e;
         dg.AddPrecalculatedEdge(edge);
         localMap[e.Source].AddOutEdge(edge);
         localMap[e.Target].AddInEdge(edge);
     }
     foreach (GeometryEdge e in c.OutEdges)
     {
         if (e.Target is GeometryCluster)
         {
             continue;
         }
         Edge edge = new Edge(localMap[e.Source], localMap[e.Target], ConnectionToGraph.Disconnected);
         edge.Attr.ArrowheadAtSource = e.ArrowheadAtSource ? ArrowStyle.Normal : ArrowStyle.None;
         edge.Attr.ArrowheadAtTarget = e.ArrowheadAtTarget ? ArrowStyle.Normal : ArrowStyle.None;
         edge.GeometryEdge           = e;
         dg.AddPrecalculatedEdge(edge);
         localMap[e.Source].AddOutEdge(edge);
         localMap[e.Target].AddInEdge(edge);
     }
     foreach (GeometryEdge e in c.SelfEdges)
     {
         Edge edge = new Edge(localMap[e.Source], localMap[e.Target], ConnectionToGraph.Disconnected);
         edge.Attr.ArrowheadAtSource = e.ArrowheadAtSource ? ArrowStyle.Normal : ArrowStyle.None;
         edge.Attr.ArrowheadAtTarget = e.ArrowheadAtTarget ? ArrowStyle.Normal : ArrowStyle.None;
         edge.GeometryEdge           = e;
         dg.AddPrecalculatedEdge(edge);
         localMap[e.Source].AddSelfEdge(edge);
     }
     foreach (GeometryCluster c2 in c.Clusters)
     {
         PopulateClusterEdges(localMap[c2] as Subgraph, c2);
     }
 }
Esempio n. 4
0
 private static void PopulateClusterEdges(Subgraph cluster, GeometryCluster c)
 {
     foreach (GeometryEdge e in c.InEdges)
     {
         Edge edge = new Edge(localMap[e.Source], localMap[e.Target], ConnectionToGraph.Disconnected);
         edge.Attr.ArrowheadAtSource = e.ArrowheadAtSource ? ArrowStyle.Normal : ArrowStyle.None;
         edge.Attr.ArrowheadAtTarget = e.ArrowheadAtTarget ? ArrowStyle.Normal : ArrowStyle.None;
         edge.GeometryEdge = e;
         dg.AddPrecalculatedEdge(edge);
         localMap[e.Source].AddOutEdge(edge);
         localMap[e.Target].AddInEdge(edge);
     }
     foreach (GeometryEdge e in c.OutEdges)
     {
         if (e.Target is GeometryCluster)
             continue;
         Edge edge = new Edge(localMap[e.Source], localMap[e.Target], ConnectionToGraph.Disconnected);
         edge.Attr.ArrowheadAtSource = e.ArrowheadAtSource ? ArrowStyle.Normal : ArrowStyle.None;
         edge.Attr.ArrowheadAtTarget = e.ArrowheadAtTarget ? ArrowStyle.Normal : ArrowStyle.None;
         edge.GeometryEdge = e;
         dg.AddPrecalculatedEdge(edge);
         localMap[e.Source].AddOutEdge(edge);
         localMap[e.Target].AddInEdge(edge);
     }
     foreach (GeometryEdge e in c.SelfEdges)
     {
         Edge edge = new Edge(localMap[e.Source], localMap[e.Target], ConnectionToGraph.Disconnected);
         edge.Attr.ArrowheadAtSource = e.ArrowheadAtSource ? ArrowStyle.Normal : ArrowStyle.None;
         edge.Attr.ArrowheadAtTarget = e.ArrowheadAtTarget ? ArrowStyle.Normal : ArrowStyle.None;
         edge.GeometryEdge = e;
         dg.AddPrecalculatedEdge(edge);
         localMap[e.Source].AddSelfEdge(edge);
     }
     foreach (GeometryCluster c2 in c.Clusters)
         PopulateClusterEdges(localMap[c2] as Subgraph, c2);
 }