private void traverseClusters(ClusterConvexHull parent, Cluster cluster, double padding) { ClusterConvexHull hull = new ClusterConvexHull(cluster, parent); hulls.Add(hull); foreach (var v in cluster.nodes) { hulls.Add(new RCHull(hull, v, padding)); } foreach (var c in cluster.clusters) { traverseClusters(hull, c, padding); } }
public RCHull(ClusterConvexHull parent, Node mNode, double padding) { //var node = (FastIncrementalLayout.Node)mNode.AlgorithmData; //this.w2 = node.width / 2.0 + padding; //this.h2 = node.height / 2.0 + padding; this.w2 = mNode.Width / 2.0 + padding; this.h2 = mNode.Height / 2.0 + padding; this.Parent = parent; boundary = new Polyline(new Point[] { new Point(-w2, -h2), new Point(-w2, h2), new Point(w2, h2), new Point(w2, -h2) }); boundary.Closed = true; translatedBoundary = new Polyline(boundary); translatedBoundary.Closed = true; this.mNode = mNode; }
/// <summary> /// The convex hull of the constituents of a Cluster /// </summary> /// <param name="cluster"></param> /// <param name="parent"></param> public ClusterConvexHull(Cluster cluster, ClusterConvexHull parent) { this.cluster = cluster; this.Parent = parent; }
private void traverseClusters(ClusterConvexHull parent, Cluster cluster, double padding) { ClusterConvexHull hull = new ClusterConvexHull(cluster, parent); hulls.Add(hull); foreach (var v in cluster.nodes) { hulls.Add(new RCHull(hull, v, padding)); } foreach (var c in cluster.clusters) { traverseClusters(hull, c, padding); } }
/// <summary> /// The convex hull of the constituents of a Cluster /// </summary> /// <param name="cluster"></param> /// <param name="parent"></param> public ClusterConvexHull(Cluster cluster, ClusterConvexHull parent) { this.cluster = cluster; this.Parent = parent; }
public RCHull(ClusterConvexHull parent, Node mNode, double padding) { //var node = (FastIncrementalLayout.Node)mNode.AlgorithmData; //this.w2 = node.width / 2.0 + padding; //this.h2 = node.height / 2.0 + padding; this.w2 = mNode.Width / 2.0 + padding; this.h2 = mNode.Height / 2.0 + padding; this.Parent = parent; boundary = new Polyline(new Point[]{ new Point(-w2, -h2), new Point(-w2, h2), new Point(w2, h2), new Point(w2, -h2) }); boundary.Closed = true; translatedBoundary = new Polyline(boundary); translatedBoundary.Closed = true; this.mNode = mNode; }