public IVisio.Shape AddShape(TextBlock block) { // Remember this Block this.Blocks.Add(block); // Calculate the Correct Full Rectangle var ll = new VA.Drawing.Point(this.InsertionPoint.X, this.InsertionPoint.Y - block.Size.Height); var tr = new VA.Drawing.Point(this.InsertionPoint.X + block.Size.Width, this.InsertionPoint.Y); var rect = new VA.Drawing.Rectangle(ll, tr); // Draw the Shape var newshape = this.page.DrawRectangle(rect); block.VisioShape = newshape; block.VisioShapeID = newshape.ID; block.Rectangle = rect; // Handle Text If Needed if (block.Text != null) { newshape.Text = block.Text; } this.AdjustInsertionPoint(block.Size); return newshape; }
public static void FontGlyphComparision2(IVisio.Document doc, string[] fontnames, List <string> samplechars) { double w = 2.0; double h = 1; double th = 1; int chunksize = 12; var chunks = LinqUtil.Split(samplechars, chunksize); foreach (var chunk in chunks) { var domshapescol = new VA.DOM.ShapeList(); for (int j = 0; j < fontnames.Count(); j++) { string fontname = fontnames[j]; double x0 = j * w; var r = new VA.Drawing.Rectangle(x0, 0 - th, x0 + w, 0); var n1 = domshapescol.Drop("Rectangle", "basic_u.vss", r); n1.Text = new VA.Text.Markup.TextElement(fontname.ToUpper()); n1.Cells.FillForegnd = "rgb(255,255,255)"; n1.Cells.LineWeight = 0.0; n1.Cells.LinePattern = 0; n1.Cells.CharSize = "16pt"; } for (int j = 0; j < fontnames.Count(); j++) { for (int i = 0; i < chunksize; i++) { double x0 = j * w; double y0 = i * h * -1 - th - h; var r = new VA.Drawing.Rectangle(x0, y0, x0 + w, y0 + h); var n1 = domshapescol.Drop("Rectangle", "basic_u.vss", r); if (i < chunk.Count) { n1.Text = new VA.Text.Markup.TextElement(chunk[i]); } else { // empty } n1.CharFontName = fontnames[j]; n1.Cells.CharSize = "36pt"; n1.Cells.FillForegnd = "rgb(255,255,255)"; n1.Cells.LineWeight = 0.0; n1.Cells.LinePattern = 0; } } var page = doc.Pages.Add(); domshapescol.Render(page); var bordersize = new VA.Drawing.Size(0.5, 0.5); page.ResizeToFitContents(bordersize); } }
public void Page_Draw_RoundedRectangle() { var page1 = this.GetNewPage(); var rect = new VA.Drawing.Rectangle(1, 1, 3, 2); // draw an inital framing rectangle so the coordinates are easy to calculate var s0 = page1.DrawRectangle(rect); double width = rect.Width; double height = rect.Height; double delta = 1.0/8.0; var o = new VA.Drawing.Point(0, 0); var a = new VA.Drawing.Point(o.X + delta, o.Y); var b = new VA.Drawing.Point(o.X, o.Y + delta); var c = new VA.Drawing.Point(o.X, o.Y + height - delta); var d = new VA.Drawing.Point(o.X + delta, o.Y + height); var e = new VA.Drawing.Point(o.X + width - delta, o.Y + height); var f = new VA.Drawing.Point(o.X + width, o.Y + height - delta); var g = new VA.Drawing.Point(o.X + width, o.Y + delta); var h = new VA.Drawing.Point(o.X + width - delta, o.Y); var bottom_left_curve = s0.DrawQuarterArc(a, b, IVisio.VisArcSweepFlags.visArcSweepFlagConcave); var left_side = s0.DrawLine(b, c); var top_left_curve = s0.DrawQuarterArc(c, d, IVisio.VisArcSweepFlags.visArcSweepFlagConvex); var top_side = s0.DrawLine(d, e); var top_right_curve = s0.DrawQuarterArc(e, f, IVisio.VisArcSweepFlags.visArcSweepFlagConcave); var right_side = s0.DrawLine(f, g); var bottom_right_curve = s0.DrawQuarterArc(g, h, IVisio.VisArcSweepFlags.visArcSweepFlagConvex); var bottom_side = s0.DrawLine(h, a); // delete the framing rectangle s0.DeleteSection((short) IVisio.VisSectionIndices.visSectionFirstComponent); page1.Delete(0); }
public IVisio.Shape RenderPie(IVisio.Page page) { if (this.Angle == 0.0) { var p1 = this.GetPointAtRadius(this.Center, this.Radius, this.SectorStartAngle); return(page.DrawLine(this.Center, p1)); } else if (this.Angle >= 2 * System.Math.PI) { var A = this.Center.Add(-this.Radius, -this.Radius); var B = this.Center.Add(this.Radius, this.Radius); var rect = new VA.Drawing.Rectangle(A, B); var shape = page.DrawOval(rect); return(shape); } else { int degree; var pie_bez = this.GetShapeBezierForPie(out degree); // Render the bezier var doubles_array = VA.Drawing.Point.ToDoubles(pie_bez).ToArray(); var pie_slice = page.DrawBezier(doubles_array, (short)degree, 0); return(pie_slice); } }
public IVisio.Shape AddShape(TextBlock block) { // Remember this Block this.Blocks.Add(block); // Calculate the Correct Full Rectangle var ll = new VA.Drawing.Point(this.InsertionPoint.X, this.InsertionPoint.Y - block.Size.Height); var tr = new VA.Drawing.Point(this.InsertionPoint.X + block.Size.Width, this.InsertionPoint.Y); var rect = new VA.Drawing.Rectangle(ll, tr); // Draw the Shape var newshape = this.page.DrawRectangle(rect); block.VisioShape = newshape; block.VisioShapeID = newshape.ID; block.Rectangle = rect; // Handle Text If Needed if (block.Text != null) { newshape.Text = block.Text; } this.AdjustInsertionPoint(block.Size); return(newshape); }
public void Scripting_Draw_BarChart() { var client = GetScriptingClient(); client.Document.New(); client.Page.New(new VA.Drawing.Size(4, 4), false); var rect1 = new VA.Drawing.Rectangle(0, 0, 4, 4); var chart1 = new VA.Models.Charting.BarChart(rect1); chart1.DataPoints.Add(new VA.Models.Charting.DataPoint(1.0)); chart1.DataPoints.Add(new VA.Models.Charting.DataPoint(2.0)); chart1.DataPoints.Add(new VA.Models.Charting.DataPoint(3.0)); chart1.DataPoints.Add(new VA.Models.Charting.DataPoint(4.0)); client.Draw.BarChart(chart1); var rect2 = new VA.Drawing.Rectangle(5, 0, 9, 4); var chart2= new VA.Models.Charting.BarChart(rect2); chart2.DataPoints.Add(new VA.Models.Charting.DataPoint(1.0)); chart2.DataPoints.Add(new VA.Models.Charting.DataPoint(2.0)); chart2.DataPoints.Add(new VA.Models.Charting.DataPoint(-3.0)); chart2.DataPoints.Add(new VA.Models.Charting.DataPoint(4.0)); client.Draw.BarChart(chart2); var rect3 = new VA.Drawing.Rectangle(10, 0, 14, 4); var chart3 = new VA.Models.Charting.BarChart(rect3); chart3.DataPoints.Add(new VA.Models.Charting.DataPoint(-1.0)); chart3.DataPoints.Add(new VA.Models.Charting.DataPoint(-2.0)); chart3.DataPoints.Add(new VA.Models.Charting.DataPoint(-3.0)); chart3.DataPoints.Add(new VA.Models.Charting.DataPoint(-4.0)); client.Draw.BarChart(chart3); client.Page.Get().ResizeToFitContents(new VA.Drawing.Size(1.0,1.0)); client.Document.Close(true); }
public Rectangle DrawRectangle(VA.Drawing.Rectangle r) { var rectangle = new Rectangle(r); this.Add(rectangle); return(rectangle); }
public void Page_Draw_RoundedRectangle() { var page1 = this.GetNewPage(); var rect = new VA.Drawing.Rectangle(1, 1, 3, 2); // draw an inital framing rectangle so the coordinates are easy to calculate var s0 = page1.DrawRectangle(rect); double width = rect.Width; double height = rect.Height; double delta = 1.0 / 8.0; var o = new VA.Drawing.Point(0, 0); var a = new VA.Drawing.Point(o.X + delta, o.Y); var b = new VA.Drawing.Point(o.X, o.Y + delta); var c = new VA.Drawing.Point(o.X, o.Y + height - delta); var d = new VA.Drawing.Point(o.X + delta, o.Y + height); var e = new VA.Drawing.Point(o.X + width - delta, o.Y + height); var f = new VA.Drawing.Point(o.X + width, o.Y + height - delta); var g = new VA.Drawing.Point(o.X + width, o.Y + delta); var h = new VA.Drawing.Point(o.X + width - delta, o.Y); var bottom_left_curve = s0.DrawQuarterArc(a, b, IVisio.VisArcSweepFlags.visArcSweepFlagConcave); var left_side = s0.DrawLine(b, c); var top_left_curve = s0.DrawQuarterArc(c, d, IVisio.VisArcSweepFlags.visArcSweepFlagConvex); var top_side = s0.DrawLine(d, e); var top_right_curve = s0.DrawQuarterArc(e, f, IVisio.VisArcSweepFlags.visArcSweepFlagConcave); var right_side = s0.DrawLine(f, g); var bottom_right_curve = s0.DrawQuarterArc(g, h, IVisio.VisArcSweepFlags.visArcSweepFlagConvex); var bottom_side = s0.DrawLine(h, a); // delete the framing rectangle s0.DeleteSection((short)IVisio.VisSectionIndices.visSectionFirstComponent); page1.Delete(0); }
private static void SetViewRectToSelection(IVisio.Window window, IVisio.VisBoundingBoxArgs bbargs, double padding_scale) { if (padding_scale < 0.0) { throw new System.ArgumentOutOfRangeException("padding_scale"); } if (padding_scale > 1.0) { throw new System.ArgumentOutOfRangeException("padding_scale"); } var app = window.Application; var active_window = app.ActiveWindow; var sel = active_window.Selection; var sel_bb = sel.GetBoundingBox(bbargs); var delta = sel_bb.Size * padding_scale; var view_rect = new VA.Drawing.Rectangle(sel_bb.Left - delta.Width, sel_bb.Bottom - delta.Height, sel_bb.Right + delta.Height, sel_bb.Top + delta.Height); window.SetViewRect(view_rect); }
public static void SetViewRect( this IVisio.Window window, VA.Drawing.Rectangle rect) { // MSDN: http://msdn.microsoft.com/en-us/library/office/ms367542(v=office.14).aspx window.SetViewRect(rect.Left, rect.Top, rect.Width, rect.Height); }
public static IVisio.Shape DrawRectangle(this IVisio.Page page, VA.Drawing.Rectangle rect) { var surface = new VA.Drawing.DrawingSurface(page); var shape = surface.DrawRectangle(rect); return(shape); }
public static VA.Drawing.Rectangle GetBoundingBox(this IVisio.Selection selection, IVisio.VisBoundingBoxArgs args) { double bbx0, bby0, bbx1, bby1; selection.BoundingBox((short) args, out bbx0, out bby0, out bbx1, out bby1); var r = new VA.Drawing.Rectangle(bbx0, bby0, bbx1, bby1); return r; }
public void Scripting_Distribute() { var client = this.GetScriptingClient(); var pagesize = new VA.Drawing.Size(4, 4); client.Document.New(); client.Page.New(pagesize, false); var size1 = new VA.Drawing.Size(0.5, 0.5); var size2 = new VA.Drawing.Size(1.0, 1.0); var size3 = new VA.Drawing.Size(1.5, 1.5); var r1 = new VA.Drawing.Rectangle(new VA.Drawing.Point(1, 1), size1); var r2 = new VA.Drawing.Rectangle(new VA.Drawing.Point(2, 2), size2); var r3 = new VA.Drawing.Rectangle(new VA.Drawing.Point(4, 4), size3); var s1 = client.Draw.Rectangle(r1); var s2 = client.Draw.Rectangle(r2); var s3 = client.Draw.Rectangle(r3); client.Selection.SelectNone(); client.Selection.Select(s1); client.Selection.Select(s2); client.Selection.Select(s3); var targets = new TargetShapes(); client.Distribute.DistributeHorizontal(targets, AlignmentHorizontal.Center); var shapeids = new[] { s1.ID, s2.ID, s3.ID }; VisioAutomation.Shapes.ShapeXFormCells.GetCells(client.Page.Get(), shapeids); client.Document.Close(true); }
public Shape Drop(string master, string stencil, VA.Drawing.Rectangle rect) { var m = new Shape(master, stencil, rect); this.Add(m); return(m); }
private static double GetSide(VA.Drawing.Rectangle r, LayoutDirection direction) { switch (direction) { case (LayoutDirection.Up): { return(r.Top); } case (LayoutDirection.Down): { return(r.Bottom); } case (LayoutDirection.Left): { return(r.Left); } case (LayoutDirection.Right): { return(r.Right); } default: { throw new System.ArgumentOutOfRangeException(); } } }
private VA.Drawing.Rectangle ToDocumentCoordinates(VA.Drawing.Rectangle rect) { var nr = rect.Add(-msagl_bb.Left, -msagl_bb.Bottom).Multiply(ScaleToDocument, ScaleToDocument); return(nr); }
public void DOM_DrawAndDrop() { var doc = this.GetNewDoc(); var page_node = new VA.DOM.Page(); var rect0 = new VisioAutomation.Drawing.Rectangle(3, 4, 7, 8); var rect1 = new VisioAutomation.Drawing.Rectangle(8, 1, 9, 5); var dropped_shape0 = page_node.Shapes.Drop(this.rectangle, this.basic_u_vss, rect0); var drawn_shape0 = page_node.Shapes.DrawRectangle(rect0); var dropped_shape1 = page_node.Shapes.Drop(this.rectangle, this.basic_u_vss, rect1); var drawn_shape1 = page_node.Shapes.DrawRectangle(rect1); var page = page_node.Render(doc); var xfrms = VA.Shapes.XFormCells.GetCells(page, new int[] { dropped_shape0.VisioShapeID, drawn_shape0.VisioShapeID, dropped_shape1.VisioShapeID, drawn_shape1.VisioShapeID }); Assert.AreEqual(xfrms[1].PinX, xfrms[0].PinX); Assert.AreEqual(xfrms[1].PinY, xfrms[0].PinY); Assert.AreEqual(xfrms[1].Width, xfrms[0].Width); Assert.AreEqual(xfrms[1].Height, xfrms[0].Height); Assert.AreEqual(xfrms[3].PinX, xfrms[2].PinX); Assert.AreEqual(xfrms[3].PinY, xfrms[2].PinY); Assert.AreEqual(xfrms[3].Width, xfrms[2].Width); Assert.AreEqual(xfrms[3].Height, xfrms[2].Height); doc.Close(true); }
public VA.Drawing.Rectangle GetBoundingBox(IVisio.VisBoundingBoxArgs args) { double bbx0, bby0, bbx1, bby1; if (this.Master != null) { this.Master.BoundingBox((short)args, out bbx0, out bby0, out bbx1, out bby1); } else if (this.Page != null) { this.Page.BoundingBox((short)args, out bbx0, out bby0, out bbx1, out bby1); } else if (this.Shape != null) { this.Shape.BoundingBox((short)args, out bbx0, out bby0, out bbx1, out bby1); } else { throw new System.ArgumentException("Unhandled Drawing Surface"); } var r = new VA.Drawing.Rectangle(bbx0, bby0, bbx1, bby1); return(r); }
public Oval DrawOval(VA.Drawing.Rectangle r) { var oval = new Oval(r); this.Add(oval); return(oval); }
private MG.GeometryGraph CreateMSAGLGraph(DGMODEL.Drawing layout_diagram) { var msagl_graph = new MG.GeometryGraph(); var defsize = new VA.Drawing.Size(this.LayoutOptions.DefaultShapeSize.Width, this.LayoutOptions.DefaultShapeSize.Height); // Create the nodes in MSAGL foreach (var layout_shape in layout_diagram.Shapes) { var nodesize = ToMSAGLCoordinates(layout_shape.Size ?? defsize); var msagl_node = new MG.Node(layout_shape.ID, MG.Splines.CurveFactory.CreateBox(nodesize.Width, nodesize.Height, new MG.Point())); msagl_graph.AddNode(msagl_node); msagl_node.UserData = layout_shape; } bool connectors_ok = this.validate_connectors(layout_diagram); // TODO: What to do if connectors_ok is false? var msagl_size = this.ToMSAGLCoordinates(DefaultBezierConnectorLabelBoxSize); // Create the MSAGL Connectors foreach (var layout_connector in layout_diagram.Connectors) { if (layout_connector.From == null) { throw new System.ArgumentException("Connector's From node is null"); } if (layout_connector.To == null) { throw new System.ArgumentException("Connector's To node is null"); } var from_node = msagl_graph.NodeMap[layout_connector.From.ID]; var to_node = msagl_graph.NodeMap[layout_connector.To.ID]; var new_edge = new MG.Edge(from_node, to_node); new_edge.ArrowheadAtTarget = false; new_edge.UserData = layout_connector; msagl_graph.AddEdge(new_edge); new_edge.Label = new Microsoft.Msagl.Label(msagl_size.Width, msagl_size.Height, new_edge); } msagl_graph.CalculateLayout(); this.msagl_bb = new VA.Drawing.Rectangle( msagl_graph.BoundingBox.Left, msagl_graph.BoundingBox.Bottom, msagl_graph.BoundingBox.Right, msagl_graph.BoundingBox.Top); this.layout_bb = new VA.Drawing.Rectangle(0, 0, this.msagl_bb.Width, msagl_bb.Height) .Multiply(ScaleToDocument, ScaleToDocument); return(msagl_graph); }
public IVisio.Shape DrawOval(VA.Drawing.Point center, double radius) { var A = center.Add(-radius, -radius); var B = center.Add(radius, radius); var rect = new VA.Drawing.Rectangle(A, B); return(this.DrawOval(rect)); }
public static void DrawNode( BoxL.Node node, VA.Drawing.Rectangle rect, IVisio.Page page) { var shape = page.DrawRectangle(rect); node.Data = shape; }
public static VA.Drawing.Rectangle GetBoundingBox(this IVisio.Master master, IVisio.VisBoundingBoxArgs args) { // MSDN: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vissdk11/html/vimthBoundingBox_HV81900422.asp double bbx0, bby0, bbx1, bby1; master.BoundingBox((short) args, out bbx0, out bby0, out bbx1, out bby1); var r = new VA.Drawing.Rectangle(bbx0, bby0, bbx1, bby1); return r; }
public PieChart(VA.Drawing.Rectangle rect) { var center = rect.Center; var radius = System.Math.Min(rect.Width, rect.Height) / 2.0; this.DataPoints = new DataPointList(); this.Center = center; this.Radius = radius; }
public static VA.Drawing.Rectangle GetBoundingBox(this IVisio.Selection selection, IVisio.VisBoundingBoxArgs args) { double bbx0, bby0, bbx1, bby1; selection.BoundingBox((short)args, out bbx0, out bby0, out bbx1, out bby1); var r = new VA.Drawing.Rectangle(bbx0, bby0, bbx1, bby1); return(r); }
public IVisio.Shape Rectangle(VisioAutomation.Drawing.Rectangle r) { var surface = this.GetDrawingSurface(); using (var undoscope = this._client.Application.NewUndoScope("Draw Rectangle")) { var shape = surface.DrawRectangle(r.Left, r.Bottom, r.Right, r.Top); return(shape); } }
public IVisio.Shape Oval(VisioAutomation.Drawing.Rectangle rect) { var surface = this.GetDrawingSurface(); using (var undoscope = this._client.Application.NewUndoScope("Draw Oval")) { var shape = surface.DrawOval(rect); return(shape); } }
public static VA.Drawing.Rectangle GetBoundingBox(this IVisio.Master master, IVisio.VisBoundingBoxArgs args) { // MSDN: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vissdk11/html/vimthBoundingBox_HV81900422.asp double bbx0, bby0, bbx1, bby1; master.BoundingBox((short)args, out bbx0, out bby0, out bbx1, out bby1); var r = new VA.Drawing.Rectangle(bbx0, bby0, bbx1, bby1); return(r); }
public void Draw(Session session) { var normalized_values = this.DataPoints.GetNormalizedValues(); var heights = DOMUtil.ConstructPositions(this.DataPoints.Count(), CellHeight, this.VerticalSeparation); var widths = DOMUtil.ConstructPositions(new[] { this.CategoryLabelHeight, this.CellWidth }, this.HorizontalSeparation); var grid = new GridLayout(widths, heights); int catcol = 0; int barcol = 2; var content_rects = this.SkipOdd(grid.GetRectsInCol(barcol)).ToList(); var domshapescol = new VA.DOM.ShapeList(); var bar_rects = new List<VA.Drawing.Rectangle>(content_rects.Count); for (int i = 0; i < content_rects.Count; i++) { var r = content_rects[i]; domshapescol.DrawRectangle(r); var size = new VA.Drawing.Size(normalized_values[i] * r.Width, this.CellHeight); var bar_rect = new VA.Drawing.Rectangle(r.LowerLeft, size); bar_rects.Add(bar_rect); } var cat_rects = this.SkipOdd(grid.GetRectsInCol(catcol)).ToList(); var bar_shapes = DOMUtil.DrawRects(domshapescol, bar_rects, session.MasterRectangle); var cat_shapes = DOMUtil.DrawRects(domshapescol, cat_rects, session.MasterRectangle); for (int i = 0; i < this.DataPoints.Count; i++) { bar_shapes[i].Text = new VA.Text.Markup.TextElement(this.DataPoints[i].Text); cat_shapes[i].Text = new VA.Text.Markup.TextElement(this.CategoryLabels[i]); } foreach (var shape in bar_shapes) { var cells = shape.Cells; cells.FillForegnd = this.ValueFillColor; cells.LineColor = this.LineLightBorder; } foreach (var shape in cat_shapes) { var cells = shape.Cells; cells.FillPattern = this.CategoryFillPattern; cells.LineWeight = this.CategoryLineWeight; cells.LinePattern = this.CategoryLinePattern; } domshapescol.Render(session.Page); }
public IVisio.Shape Oval(double x0, double y0, double x1, double y1) { var surface = this.GetDrawingSurfaceSafe(); var rect = new VA.Drawing.Rectangle(x0, y0, x1, y1); using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication, "Draw Oval")) { var shape = surface.DrawOval(rect); return(shape); } }
public static void FontGlyphComparision3(IVisio.Document doc, string[] fontnames, List <string> samplechars) { var colors = new[] { "rgb(0,0,255)", "rgb(255,0,0)" }; double w = 2.0; double h = 1; int chunksize = 12; var chunks = LinqUtil.Split(samplechars, chunksize); foreach (var chunk in chunks) { var domshapescol = new VA.DOM.ShapeList(); for (int j = 0; j < fontnames.Count(); j++) { for (int i = 0; i < chunksize; i++) { double x0 = 0; double y0 = i * h * -1; var r = new VA.Drawing.Rectangle(x0, y0, x0 + w, y0 + h); var n1 = domshapescol.Drop("Rectangle", "basic_u.vss", r); if (i < chunk.Count) { n1.Text = new VA.Text.Markup.TextElement(chunk[i]); n1.Text.CharacterCells.Color = colors[j]; } else { // empty } n1.CharFontName = fontnames[j]; //n1.Cells.CharColor = "=RGB(255,0,0)";// colors[j]; n1.Cells.CharTransparency = 0.7; n1.Cells.CharSize = "36pt"; n1.Cells.FillPattern = 0; n1.Cells.LineWeight = 0.0; n1.Cells.LinePattern = 0; } } var page = doc.Pages.Add(); domshapescol.Render(page); var bordersize = new VA.Drawing.Size(0.5, 0.5); page.ResizeToFitContents(bordersize); } }
public static VA.Drawing.Rectangle GetViewRect(this IVisio.Window window) { // MSDN: http://msdn.microsoft.com/en-us/library/office/ff765846.aspx double left, top, height, width; window.GetViewRect(out left, out top, out width, out height); double x0 = left; double x1 = left + width; double y0 = top - height; double y1 = y0 + height; var r = new VA.Drawing.Rectangle(x0, y0, x1, y1); return r; }
public static VA.Drawing.Rectangle GetViewRect(this IVisio.Window window) { // MSDN: http://msdn.microsoft.com/en-us/library/office/ff765846.aspx double left, top, height, width; window.GetViewRect(out left, out top, out width, out height); double x0 = left; double x1 = left + width; double y0 = top - height; double y1 = y0 + height; var r = new VA.Drawing.Rectangle(x0, y0, x1, y1); return(r); }
public void Scripting_Draw_BarChart() { var pagesize = new VA.Drawing.Size(4, 4); var rect1 = new VA.Drawing.Rectangle(0, 0, 4, 4); var rect2 = new VA.Drawing.Rectangle(5, 0, 9, 4); var rect3 = new VA.Drawing.Rectangle(10, 0, 14, 4); var bordersize = new VA.Drawing.Size(1.0, 1.0); var chart1 = new VisioAutomation.Models.Charting.BarChart(rect1); chart1.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(1.0)); chart1.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(2.0)); chart1.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(3.0)); chart1.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(4.0)); var chart2 = new VisioAutomation.Models.Charting.BarChart(rect2); chart2.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(1.0)); chart2.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(2.0)); chart2.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(-3.0)); chart2.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(4.0)); var chart3 = new VisioAutomation.Models.Charting.BarChart(rect3); chart3.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(-1.0)); chart3.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(-2.0)); chart3.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(-3.0)); chart3.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(-4.0)); // Create the page var client = this.GetScriptingClient(); client.Document.New(); client.Page.New(pagesize, false); // Draw the Charts client.Draw.BarChart(chart1); client.Draw.BarChart(chart2); client.Draw.BarChart(chart3); client.Page.ResizeToFitContents(bordersize, true); // Cleanup client.Document.Close(true); }
public void Scripting_Draw_AreaChart() { var pagesize = new VA.Drawing.Size(4, 4); var rect1 = new VA.Drawing.Rectangle(0, 0, 4, 4); var rect2 = new VA.Drawing.Rectangle(5, 0, 9, 4); var rect3 = new VA.Drawing.Rectangle(10, 0, 14, 4); var padding = new VA.Drawing.Size(1.0, 1.0); var chart1 = new VisioAutomation.Models.Charting.AreaChart(rect1); chart1.DataPoints.Add(1.0); chart1.DataPoints.Add(2.0); chart1.DataPoints.Add(3.0); chart1.DataPoints.Add(4.0); var chart2 = new VisioAutomation.Models.Charting.AreaChart(rect2); chart2.DataPoints.Add(1.0); chart2.DataPoints.Add(2.0); chart2.DataPoints.Add(-3.0); chart2.DataPoints.Add(4.0); var chart3 = new VisioAutomation.Models.Charting.AreaChart(rect3); chart3.DataPoints.Add(-1.0); chart3.DataPoints.Add(-2.0); chart3.DataPoints.Add(-3.0); chart3.DataPoints.Add(-4.0); // Setup the Page var client = this.GetScriptingClient(); client.Document.New(); client.Page.New(pagesize, false); // Draw the Charts client.Draw.AreaChart(chart1); client.Draw.AreaChart(chart2); client.Draw.AreaChart(chart3); client.Page.Get().ResizeToFitContents(padding); // Cleanup client.Document.Close(true); }
public void Scripting_Distribute_With_Spacing() { var client = this.GetScriptingClient(); var pagesize = new VA.Drawing.Size(4, 4); client.Document.New(); client.Page.New(pagesize, false); var size1 = new VA.Drawing.Size(0.5, 0.5); var size2 = new VA.Drawing.Size(1.0, 1.0); var size3 = new VA.Drawing.Size(1.5, 1.5); var r1 = new VA.Drawing.Rectangle(new VA.Drawing.Point(1, 1), size1); var r2 = new VA.Drawing.Rectangle(new VA.Drawing.Point(2, 2), size2); var r3 = new VA.Drawing.Rectangle(new VA.Drawing.Point(4, 4), size3); var s1 = client.Draw.Rectangle(r1); var s2 = client.Draw.Rectangle(r2); var s3 = client.Draw.Rectangle(r3); client.Selection.SelectNone(); client.Selection.Select(s1); client.Selection.Select(s2); client.Selection.Select(s3); var targets = new TargetShapes(); client.Distribute.DistributeOnAxis(targets, Axis.XAxis, 0.25); client.Distribute.DistributeOnAxis(targets, Axis.YAxis, 1.0); var shapeids = new[] { s1.ID, s2.ID, s3.ID }; var out_xfrms = VisioAutomation.Shapes.ShapeXFormCells.GetCells(client.Page.Get(), shapeids); var out_positions = out_xfrms.Select(xfrm => TestExtensions.ToPoint(xfrm.PinX.Result, xfrm.PinY.Result)).ToArray(); Assert.AreEqual(1.25, out_positions[0].X); Assert.AreEqual(1.25, out_positions[0].Y); Assert.AreEqual(2.25, out_positions[1].X); Assert.AreEqual(3.00, out_positions[1].Y); Assert.AreEqual(3.75, out_positions[2].X); Assert.AreEqual(5.25, out_positions[2].Y); client.Document.Close(true); }
public void Dom_DrawAndDrop() { var doc = this.GetNewDoc(); var page_node = new Page(); var rect0 = new VisioAutomation.Drawing.Rectangle(3, 4, 7, 8); var rect1 = new VisioAutomation.Drawing.Rectangle(8, 1, 9, 5); // Draw and Drop two rectangles in the same place var s0 = page_node.Shapes.Drop(this.rectangle, this.basic_u_vss, rect0); var s1 = page_node.Shapes.DrawRectangle(rect0); // Draw and Drop two rectangles in the same place var s2 = page_node.Shapes.Drop(this.rectangle, this.basic_u_vss, rect1); var s3 = page_node.Shapes.DrawRectangle(rect1); // Render the page var page = page_node.Render(doc); // Verify the locations and sizes var shapeids = new int[] { s0.VisioShapeID, s1.VisioShapeID, s2.VisioShapeID, s3.VisioShapeID }; var xfrms = VA.Shapes.ShapeXFormCells.GetCells(page, shapeids); Assert.AreEqual(xfrms[1].PinX, xfrms[0].PinX); Assert.AreEqual(xfrms[1].PinY, xfrms[0].PinY); Assert.AreEqual(xfrms[1].Width, xfrms[0].Width); Assert.AreEqual(xfrms[1].Height, xfrms[0].Height); Assert.AreEqual(xfrms[3].PinX, xfrms[2].PinX); Assert.AreEqual(xfrms[3].PinY, xfrms[2].PinY); Assert.AreEqual(xfrms[3].Width, xfrms[2].Width); Assert.AreEqual(xfrms[3].Height, xfrms[2].Height); doc.Close(true); }
public void Scripting_Draw_AreaChart() { var pagesize = new VA.Drawing.Size(4, 4); var rect1 = new VA.Drawing.Rectangle(0, 0, 4, 4); var rect2 = new VA.Drawing.Rectangle(5, 0, 9, 4); var rect3 = new VA.Drawing.Rectangle(10, 0, 14, 4); var padding = new VA.Drawing.Size(1.0, 1.0); var chart1 = new VisioAutomation.Models.Charting.AreaChart(rect1); chart1.DataPoints.Add(1.0); chart1.DataPoints.Add(2.0); chart1.DataPoints.Add(3.0); chart1.DataPoints.Add(4.0); var chart2 = new VisioAutomation.Models.Charting.AreaChart(rect2); chart2.DataPoints.Add(1.0); chart2.DataPoints.Add(2.0); chart2.DataPoints.Add(-3.0); chart2.DataPoints.Add(4.0); var chart3 = new VisioAutomation.Models.Charting.AreaChart(rect3); chart3.DataPoints.Add(-1.0); chart3.DataPoints.Add(-2.0); chart3.DataPoints.Add(-3.0); chart3.DataPoints.Add(-4.0); // Setup the Page var client = this.GetScriptingClient(); client.Document.New(); client.Page.New(pagesize, false); // Draw the Charts client.Draw.AreaChart(chart1); client.Draw.AreaChart(chart2); client.Draw.AreaChart(chart3); client.Page.Get().ResizeToFitContents(padding); // Cleanup client.Document.Close(true); }
public void Scripting_Draw_BarChart() { var pagesize = new VA.Drawing.Size(4, 4); var rect1 = new VA.Drawing.Rectangle(0, 0, 4, 4); var rect2 = new VA.Drawing.Rectangle(5, 0, 9, 4); var rect3 = new VA.Drawing.Rectangle(10, 0, 14, 4); var bordersize = new VA.Drawing.Size(1.0, 1.0); var chart1 = new VisioAutomation.Models.Charting.BarChart(rect1); chart1.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(1.0)); chart1.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(2.0)); chart1.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(3.0)); chart1.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(4.0)); var chart2 = new VisioAutomation.Models.Charting.BarChart(rect2); chart2.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(1.0)); chart2.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(2.0)); chart2.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(-3.0)); chart2.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(4.0)); var chart3 = new VisioAutomation.Models.Charting.BarChart(rect3); chart3.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(-1.0)); chart3.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(-2.0)); chart3.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(-3.0)); chart3.DataPoints.Add(new VisioAutomation.Models.Charting.DataPoint(-4.0)); // Create the page var client = this.GetScriptingClient(); client.Document.New(); client.Page.New(pagesize, false); // Draw the Charts client.Draw.BarChart(chart1); client.Draw.BarChart(chart2); client.Draw.BarChart(chart3); client.Page.ResizeToFitContents(bordersize,true); // Cleanup client.Document.Close(true); }
public IVisio.Shape RenderPie( IVisio.Page page) { if (this.Angle == 0.0) { var p1 = this.GetPointAtRadius(this.Center, this.Radius, this.SectorStartAngle); return page.DrawLine(this.Center, p1); } else if (this.Angle >= 2*System.Math.PI) { var A = this.Center.Add(-this.Radius, -this.Radius); var B = this.Center.Add(this.Radius, this.Radius); var rect = new VA.Drawing.Rectangle(A, B); var shape = page.DrawOval(rect); return shape; } else { int degree; var pie_bez = this.GetShapeBezierForPie(out degree); // Render the bezier var doubles_array = VA.Drawing.Point.ToDoubles(pie_bez).ToArray(); var pie_slice = page.DrawBezier(doubles_array, (short)degree, 0); return pie_slice; } }
public void Render(IVisio.Page page) { double sum = this._slices.Select(s => s.Value).Sum(); var shapes = new List<IVisio.Shape>(); double start_angle = 0.0; // Draw each slice for (int i = 0; i < this.Slices.Count; i++) { var slice = this.Slices[i]; double cur_val = slice.Value; double cur_val_norm = cur_val / sum; double cur_angle = cur_val_norm * System.Math.PI * 2.0; double end_angle = start_angle + cur_angle; slice.StartAngle = start_angle; slice.EndAngle = end_angle; var ps = new VA.Layout.Models.Radial.PieSlice(this.Center, start_angle, end_angle, this.Radius); var shape = ps.Render(page); start_angle += cur_angle; shapes.Add(shape); } for (int i = 0; i < shapes.Count; i++) { var shape = shapes[i]; var slice = this._slices[i]; slice.VisioShape = shape; if (!string.IsNullOrEmpty(slice.Text)) { shape.Text = slice.Text; } } if (this.DrawBackground) { var ll = this.Center.Subtract(this.Radius, this.Radius); var ur = this.Center.Add(this.Radius, this.Radius); var rect = new VA.Drawing.Rectangle(ll, ur); this._backgroundVisioShape = page.DrawOval(rect); } }
public void Render(IVisio.Page page) { this.TotalMarginWidth = this.Rectangle.Width*(0.10); this.TotalBarSpacingWidth = this.Rectangle.Width * (0.10); this.TotalBarWidth = this.Rectangle.Width*(0.80); int num_points = this.DataPoints.Count; double bar_spacing = num_points > 1 ? this.TotalBarSpacingWidth/num_points : 0.0; double bar_width = num_points > 0 ? this.TotalBarWidth/num_points : this.TotalBarWidth; double cur_x = this.Rectangle.Left + (this.TotalMarginWidth/2.0); double max = this.DataPoints.Select(i => i.Value).Max(); double min = this.DataPoints.Select(i => i.Value).Min(); var range = ChartUtil.GetValueRangeDistance(min, max); double base_y = this.Rectangle.Bottom; if (min < 0.0) { base_y += System.Math.Abs(this.Rectangle.Height * (min / range)); } var category_axis_start_point = new VA.Drawing.Point(this.Rectangle.Left, base_y); var category_axis_end_point = new VA.Drawing.Point(this.Rectangle.Right, base_y); var category_axis_shape = page.DrawLine(category_axis_start_point, category_axis_end_point); foreach (var p in this.DataPoints) { var value_height = System.Math.Abs(this.Rectangle.Height*(p.Value/range)); VA.Drawing.Point bar_p0; VA.Drawing.Point bar_p1; if (p.Value >= 0.0) { bar_p0 = new VA.Drawing.Point(cur_x, base_y); bar_p1 = new VA.Drawing.Point(cur_x + bar_width, base_y + value_height); ; } else { bar_p0 = new VA.Drawing.Point(cur_x, base_y - value_height); bar_p1 = new VA.Drawing.Point(cur_x + bar_width, base_y); } var bar_rect = new VA.Drawing.Rectangle(bar_p0, bar_p1); var shape = page.DrawRectangle(bar_rect); p.VisioShape = shape; if (p.Label != null) { shape.Text = p.Label; } cur_x += bar_width + bar_spacing; } var allshapes = this.DataPoints.Select(dp => dp.VisioShape).Where(s => s != null).ToList(); allshapes.Add(category_axis_shape); ChartUtil.GroupShapesIfNeeded(page, allshapes); }
public static void DrawAllGradients() { var app = SampleEnvironment.Application; var docs = app.Documents; var stencil = docs.OpenStencil("basic_u.vss"); var master = stencil.Masters["Rectangle"]; var page = SampleEnvironment.Application.ActiveDocument.Pages.Add(); int num_cols = 7; int num_rows = 7; var page_size = new VA.Drawing.Size(5, 5); SampleEnvironment.SetPageSize(page,page_size); var lowerleft = new VA.Drawing.Point(0, 0); var actual_page_size = SampleEnvironment.GetPageSize(page); var page_rect = new VA.Drawing.Rectangle(lowerleft, actual_page_size); var layout = new GRIDMODEL.GridLayout(num_cols, num_rows, new VA.Drawing.Size(1, 1), master); layout.RowDirection = GRIDMODEL.RowDirection.TopToBottom; layout.Origin = page_rect.UpperLeft; layout.CellSpacing = new VA.Drawing.Size(0, 0); layout.PerformLayout(); int max_grad_id = 40; int n = 0; foreach (var node in layout.Nodes) { int grad_id = n%max_grad_id; node.Text = grad_id.ToString(); n++; } layout.Render(page); var color1 = new VA.Drawing.ColorRGB(0xffdddd); var color2 = new VA.Drawing.ColorRGB(0x00ffff); var format = new VA.Shapes.FormatCells(); var update = new VA.ShapeSheet.Update(); string color1_formula = color1.ToFormula(); string color2_formula = color2.ToFormula(); n = 0; foreach (var node in layout.Nodes) { short shapeid = node.ShapeID; int grad_id = n%max_grad_id; format.FillPattern = grad_id; format.FillForegnd = color1_formula; format.FillBkgnd = color2_formula; format.LinePattern = 0; format.LineWeight = 0; update.SetFormulas(shapeid, format); n++; } update.Execute(page); var bordersize = new VA.Drawing.Size(1, 1); page.ResizeToFitContents(bordersize); }
public void PerformLayout() { var max_rows = this.Containers.Select(c => c.ContainerItems.Count).Max(); var col_indexes = Enumerable.Range(0, this.Containers.Count); var row_indexes = Enumerable.Range(0, max_rows); var col_lefts = col_indexes.Select(i => i * (this.LayoutOptions.ItemWidth + this.LayoutOptions.ContainerHorizontalDistance + (2 * this.LayoutOptions.Padding))).ToList(); var col_rights = col_lefts.Select(x => x + this.LayoutOptions.ItemWidth).ToList(); var row_tops = row_indexes.Select(i => i * -(this.LayoutOptions.ItemHeight + this.LayoutOptions.ItemVerticalSpacing)).ToList(); var row_bottoms = row_tops.Select(y => y - this.LayoutOptions.ItemHeight).ToList(); for (int container = 0; container< this.Containers.Count; container++) { var ct = this.Containers[container]; for (int ri=0;ri<ct.ContainerItems.Count;ri++) { double left = col_lefts[container]; double right = col_rights[container]; double top = row_tops[ri]; double bottom = row_bottoms[ri]; var rect = new VA.Drawing.Rectangle(left, bottom, right, top); var item = ct.ContainerItems[ri]; item.Rectangle = rect; } } int ctn = 0; foreach (var ct in this.Containers) { if (ct.ContainerItems.Count < 1) { double top = this.LayoutOptions.Padding + this.LayoutOptions.ContainerHeaderHeight; double bottom = top - this.LayoutOptions.ContainerHeaderHeight - this.LayoutOptions.Padding; ct.Rectangle = new VA.Drawing.Rectangle(col_lefts[ctn], bottom, col_rights[ctn], top); } else { double max_top = ct.ContainerItems.Select(i => i.Rectangle.Top).Max(); double max_right = ct.ContainerItems.Select(i => i.Rectangle.Right).Max(); double min_bottom = ct.ContainerItems.Select(i => i.Rectangle.Bottom).Min(); double min_left = ct.ContainerItems.Select(i => i.Rectangle.Left).Min(); max_top += this.LayoutOptions.Padding + this.LayoutOptions.ContainerHeaderHeight; max_right += this.LayoutOptions.Padding; min_left -= this.LayoutOptions.Padding; min_bottom -= this.LayoutOptions.Padding; ct.Rectangle = new VA.Drawing.Rectangle(min_left, min_bottom, max_right, max_top); } ctn++; } this.IsLayedOut = true; }
public IVisio.Shape Oval(double x0, double y0, double x1, double y1) { var surface = this.GetDrawingSurfaceSafe(); var rect = new VA.Drawing.Rectangle(x0, y0, x1, y1); using (var undoscope = new VA.Application.UndoScope(this.Client.VisioApplication, "Draw Oval")) { var shape = surface.DrawOval(rect); return shape; } }
public static void FontGlyphComparision2(IVisio.Document doc, string[] fontnames, List<string> samplechars) { double w = 2.0; double h = 1; double th = 1; int chunksize = 12; var chunks = LinqUtil.Split(samplechars, chunksize); foreach (var chunk in chunks) { var domshapescol = new VA.DOM.ShapeList(); for (int j = 0; j < fontnames.Count(); j++) { string fontname = fontnames[j]; double x0 = j*w; var r = new VA.Drawing.Rectangle(x0, 0 - th, x0 + w, 0); var n1 = domshapescol.Drop("Rectangle", "basic_u.vss", r); n1.Text = new VA.Text.Markup.TextElement( fontname.ToUpper() ) ; n1.Cells.FillForegnd = "rgb(255,255,255)"; n1.Cells.LineWeight = 0.0; n1.Cells.LinePattern = 0; n1.Cells.CharSize = "16pt"; } for (int j = 0; j < fontnames.Count(); j++) { for (int i = 0; i < chunksize; i++) { double x0 = j*w; double y0 = i*h*-1 - th - h; var r = new VA.Drawing.Rectangle(x0, y0, x0 + w, y0 + h); var n1 = domshapescol.Drop("Rectangle", "basic_u.vss", r); if (i < chunk.Count) { n1.Text = new VA.Text.Markup.TextElement(chunk[i]); } n1.CharFontName = fontnames[j]; n1.Cells.CharSize = "36pt"; n1.Cells.FillForegnd = "rgb(255,255,255)"; n1.Cells.LineWeight = 0.0; n1.Cells.LinePattern = 0; } } var page = doc.Pages.Add(); domshapescol.Render(page); var bordersize = new VA.Drawing.Size(0.5, 0.5); page.ResizeToFitContents(bordersize); } }
public static void FontGlyphComparision3(IVisio.Document doc, string[] fontnames, List<string> samplechars) { var colors = new[] {"rgb(0,0,255)", "rgb(255,0,0)"}; double w = 2.0; double h = 1; int chunksize = 12; var chunks = LinqUtil.Split(samplechars, chunksize); foreach (var chunk in chunks) { var domshapescol = new VA.DOM.ShapeList(); for (int j = 0; j < fontnames.Count(); j++) { for (int i = 0; i < chunksize; i++) { double x0 = 0; double y0 = i*h*-1; var r = new VA.Drawing.Rectangle(x0, y0, x0 + w, y0 + h); var n1 = domshapescol.Drop("Rectangle", "basic_u.vss", r); if (i < chunk.Count) { n1.Text = new VA.Text.Markup.TextElement(chunk[i]); n1.Text.CharacterCells.Color = colors[j]; } n1.CharFontName = fontnames[j]; //n1.Cells.CharColor = "=RGB(255,0,0)";// colors[j]; n1.Cells.CharTransparency = 0.7; n1.Cells.CharSize = "36pt"; n1.Cells.FillPattern = 0; n1.Cells.LineWeight = 0.0; n1.Cells.LinePattern = 0; } } var page = doc.Pages.Add(); domshapescol.Render(page); var bordersize = new VA.Drawing.Size(0.5, 0.5); page.ResizeToFitContents(bordersize); } }
private static void SetViewRectToSelection(IVisio.Window window, IVisio.VisBoundingBoxArgs bbargs, double padding_scale) { if (padding_scale < 0.0) { throw new System.ArgumentOutOfRangeException("padding_scale"); } if (padding_scale > 1.0) { throw new System.ArgumentOutOfRangeException("padding_scale"); } var app = window.Application; var active_window = app.ActiveWindow; var sel = active_window.Selection; var sel_bb = sel.GetBoundingBox(bbargs); var delta = sel_bb.Size*padding_scale; var view_rect = new VA.Drawing.Rectangle(sel_bb.Left - delta.Width, sel_bb.Bottom - delta.Height, sel_bb.Right + delta.Height, sel_bb.Top + delta.Height); window.SetViewRect(view_rect); }
public void DOM_DrawAndDrop() { var doc = this.GetNewDoc(); var page_node = new VA.DOM.Page(); var rect0 = new VA.Drawing.Rectangle(3, 4, 7, 8); var rect1 = new VA.Drawing.Rectangle(8, 1, 9, 5); var dropped_shape0 = page_node.Shapes.Drop("Rectangle", "basic_u.vss", rect0); var drawn_shape0 = page_node.Shapes.DrawRectangle(rect0); var dropped_shape1 = page_node.Shapes.Drop("Rectangle", "basic_u.vss", rect1); var drawn_shape1 = page_node.Shapes.DrawRectangle(rect1); var page = page_node.Render(doc); var xfrms = VA.Shapes.XFormCells.GetCells(page, new int[] { dropped_shape0.VisioShapeID, drawn_shape0.VisioShapeID, dropped_shape1.VisioShapeID, drawn_shape1.VisioShapeID }); Assert.AreEqual(xfrms[1].PinX, xfrms[0].PinX); Assert.AreEqual(xfrms[1].PinY, xfrms[0].PinY); Assert.AreEqual(xfrms[1].Width, xfrms[0].Width); Assert.AreEqual(xfrms[1].Height, xfrms[0].Height); Assert.AreEqual(xfrms[3].PinX, xfrms[2].PinX); Assert.AreEqual(xfrms[3].PinY, xfrms[2].PinY); Assert.AreEqual(xfrms[3].Width, xfrms[2].Width); Assert.AreEqual(xfrms[3].Height, xfrms[2].Height); doc.Close(true); }
public AreaChart(VA.Drawing.Rectangle rect) { this.Rectangle = rect; this.DataPoints = new DataPointList(); }
public IVisio.Shape RenderDoughnut(IVisio.Page page) { double total_angle = this.Angle; if (total_angle == 0.0) { var p1 = this.GetPointAtRadius(this.Center, this.SectorStartAngle, this.InnerRadius); var p2 = this.GetPointAtRadius(this.Center, this.SectorStartAngle, this.Radius); var shape = page.DrawLine(p1, p2); return shape; } else if (total_angle >= System.Math.PI) { var outer_radius_point = new VA.Drawing.Point(this.Radius, this.Radius); var C = this.Center - outer_radius_point; var D = this.Center + outer_radius_point; var outer_rect = new VA.Drawing.Rectangle(C, D); var inner_radius_point = new VA.Drawing.Point(this.InnerRadius, this.InnerRadius); var A = this.Center - inner_radius_point - C; var B = this.Center + inner_radius_point - C; var inner_rect = new VA.Drawing.Rectangle(A, B); var shape = page.DrawOval(outer_rect); shape.DrawOval(inner_rect.Left, inner_rect.Bottom, inner_rect.Right, inner_rect.Top); return shape; } else { int degree; var thickarc = this.GetShapeBezierForDoughnut(out degree); // Render the bezier var doubles_array = VA.Drawing.Point.ToDoubles(thickarc).ToArray(); var pie_slice = page.DrawBezier(doubles_array, (short)degree, 0); return pie_slice; } }