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);
        }
Example #2
0
        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);
        }
Example #3
0
 public override void DrawGraphics(IRenderPackage package, TessellationParameters parameters, List <Node> allNodes)
 => GeometryRender.DrawLine(
     package,
     allNodes[NodeIndices[0]].Position,
     allNodes[NodeIndices[1]].Position,
     Color);