public override void DrawGraphics(IRenderPackage package, TessellationParameters parameters, List <Node> allNodes) { List <Triple> vertices = new List <Triple>(); for (int i = 0; i < NodeCount; i++) { vertices.Add(allNodes[NodeIndices[i]].Position); } GeometryRender.DrawPolyline(package, vertices, Color); }
private void ViewTreemap() { var polygonTable = Vis.BuildVisualTable("poly", Display, 1); polygonTable.AddColumn <Brush>(Styles.StrokeBrush, BrushLib.FromColor(Colors.Black)); polygonTable.AddColumn <Brush>(Styles.FillBrush, BrushLib.FromColor(Colors.White)); polygonTable.EnsureStyles(Styles.X, Styles.Y, Styles.Opacity, Styles.StrokeWidth); polygonTable.AddColumn <List <double> >("polygon", null); polygonTable.AddColumn <double>("depth", 0); //polygonTable.AddColumn<INode>("node", null); int depth_idx = polygonTable.GetColumnIndex("depth"); int polygon_idx = polygonTable.GetColumnIndex("polygon"); //int node_idx = polygonTable.GetColumnIndex("node"); var node_list = Treemap.BFS(Treemap.Root).Reverse <INode>(); foreach (INode i in node_list) { int depth = Treemap.GetDepth(i); if (depth > 0) { int height = MaxDepth - depth + 1; int row = polygonTable.AddRow(); polygonTable.Set <List <double> >(row, polygon_idx, i.Get <Polygon>("attribute").ToListDouble()); //polygonTable.Set<INode>(row, node_idx, i); polygonTable.Set <double>(row, Styles.StrokeWidth, 1.5 * height / MaxDepth); if (depth > 2) { polygonTable.Set <Brush>(row, Styles.StrokeBrush, BrushLib.FromColor(ColorLib.NewAlpha(Colors.Black, 0.4))); } polygonTable.Set <Brush>(row, Styles.FillBrush, BrushLib.FromColor(Color.FromArgb(Convert.ToByte(40 + 20 * height / MaxDepth), Convert.ToByte(30 * depth / MaxDepth), 0, Convert.ToByte(255 * height / MaxDepth)))); //polygonTable.Set<Brush>(row, Styles.FillBrush, BrushLib.FromColor(ColorLib.NewAlpha(ColorLib.Category10[0], 0.3))); } } //polygonTable.AutoRepaint = true; var polygonRender = new GeometryRender(vi => { var polygon = GeometryLib.Polygon(vi.Get <List <double> >(polygon_idx), true, true); return(polygon); }); polygonTable.SetupRender(polygonRender); }
public override void DrawGraphics(IRenderPackage package, TessellationParameters parameters, List <Node> allNodes) => GeometryRender.DrawLine( package, allNodes[NodeIndices[0]].Position, allNodes[NodeIndices[1]].Position, Color);