void INCustomRequestCallback.OnCustomRequestCallback(NAspNetThinWebControl control, NRequestContext context, string argument) { NThinDiagramControl diagramControl = (NThinDiagramControl)control; NDrawingDocument document = diagramControl.Document; NDrawingDocumentHelper helper = new NDrawingDocumentHelper(document); Dictionary <string, string> settings = helper.ParseSettings(argument); DiagramRenderer renderer = new DiagramRenderer(); switch (settings["command"]) { case "RandomTree6Levels": renderer.CreateTree(document, 6, 3); break; case "RandomTree8Levels": renderer.CreateTree(document, 8, 2); break; } // Layout the diagram renderer.ApplyLayout(document, settings); // Resize document to fit all shapes document.SizeToContent(); // Update the view diagramControl.UpdateView(); }
private void InitDocument(NDrawingDocument document) { // Remove the standard frame document.BackgroundStyle.FrameStyle.Visible = false; // Adjust the graphics quality document.GraphicsSettings.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; // Set up visual formatting document.Style.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant3, Color.FromArgb(251, 203, 156), Color.FromArgb(247, 150, 56)); document.Style.StrokeStyle = new NStrokeStyle(1, Color.FromArgb(68, 90, 108)); NStyleSheet sheet = new NStyleSheet("edges"); sheet.Style.StartArrowheadStyle = new NArrowheadStyle(ArrowheadShape.None, "", NSizeL.Empty, document.Style.FillStyle, document.Style.StrokeStyle); sheet.Style.EndArrowheadStyle = new NArrowheadStyle(ArrowheadShape.None, "", NSizeL.Empty, document.Style.FillStyle, document.Style.StrokeStyle); document.StyleSheets.AddChild(sheet); // Create the initial diagram DiagramRenderer renderer = new DiagramRenderer(); renderer.CreateRandomDiagram(document, 15, 15); // Layout the diagram renderer.ApplyLayout(document, null); // Resize document to fit all shapes document.SizeToContent(); }
protected void InitDocument(NDrawingDocument document) { // Remove the standard frame document.BackgroundStyle.FrameStyle.Visible = false; // Adjust the graphics quality document.GraphicsSettings.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed; // Set up visual formatting document.Style.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant3, Color.FromArgb(192, 194, 194), Color.FromArgb(129, 133, 133)); document.Style.StrokeStyle = new NStrokeStyle(1, Color.FromArgb(68, 90, 108)); NStyleSheet sheet = new NStyleSheet("edges"); sheet.Style.StartArrowheadStyle = new NArrowheadStyle(ArrowheadShape.None, "", NSizeL.Empty, document.Style.FillStyle, document.Style.StrokeStyle); sheet.Style.EndArrowheadStyle = new NArrowheadStyle(ArrowheadShape.None, "", NSizeL.Empty, document.Style.FillStyle, document.Style.StrokeStyle); document.StyleSheets.AddChild(sheet); // Create a tree DiagramRenderer renderer = new DiagramRenderer(); renderer.CreateTree(document, 6, 3); // Apply the layout renderer.ApplyLayout(document, null); // Resize document to fit all shapes document.SizeToContent(); }
void Draw(Context cr, int width, int height) { cr.LineWidth = 1.0; cr.Color = new Color(1.0, 1.0, 1.0); cr.Rectangle(0, 0, width, height); cr.Fill(); cr.Save(); cr.Scale(scale_factor, scale_factor); try { if(diagram != null) { DiagramRenderer dr = new DiagramRenderer(cr, width, height, diagram); cr.Color = new Color(0.0, 0.0, 0.0); dr.Render(); dr.Draw(); } } catch { error_counter++; } cr.Restore(); }
public static void Write(string fileName) { Diagram diagram = Program.Load(fileName); string pdfName = System.IO.Path.ChangeExtension(fileName, "pdf"); if(diagram != null) { try { using(PdfSurface pdfs = new PdfSurface(pdfName, 595, 842)) { using(Context cr = new Context(pdfs)) { DiagramRenderer dr = new DiagramRenderer(cr, 0, 0, diagram); cr.LineWidth = 1.0; cr.Color = new Color(0.0, 0.0, 0.0); dr.Render(); pdfs.SetSize(dr.width, dr.height); dr.Draw(); cr.ShowPage(); } } Console.WriteLine("Wrote {0}", pdfName); } catch { Console.WriteLine("Error writing {0}", pdfName); } } }
/// <summary> /// Retrieves the data to be plotted for the edge.</summary> /// <param name="render">The render to retrieve the data for.</param> /// <param name="worldOffset">Current world offset of the render when drawing this edge.</param> /// <param name="g">Graphics object</param> /// <returns>The data to plot for the edge.</returns> /// <remarks>The data is returned in world space</remarks> IEnumerable <EdgeStyleData> IEdgeStyleProvider.GetData(DiagramRenderer render, Point worldOffset, D2dGraphics g) { var circuitRender = render as D2dCircuitRenderer <TElement, TWire, TPin>; var dataPoints = GetGroupPinChainData(circuitRender, worldOffset, g); IEnumerable <EdgeStyleData> result = EmptyEnumerable <EdgeStyleData> .Instance; if (EdgeStyle == EdgeStyle.DirectCurve) { // skip group pin positions where group pins are hidden var visiblePoints = dataPoints.Where( pt => pt.Group == null || !pt.Group.Expanded || pt.Group.Info.ShowExpandedGroupPins).ToArray(); var curves = new EdgeStyleData[visiblePoints.Length - 1]; for (int i = 0; i < visiblePoints.Length - 1; ++i) { var bezier = SetupBezierCurve(visiblePoints[i].Pos, visiblePoints[i + 1].Pos); var edgeData = new EdgeStyleData { ShapeType = EdgeStyleData.EdgeShape.Bezier, EdgeData = bezier, }; curves[i] = edgeData; } result = curves; } else if (EdgeStyle == EdgeStyle.Default) { var curves = new EdgeStyleData[dataPoints.Count - 1]; for (int i = 0; i < dataPoints.Count - 1; ++i) { var bezier = SetupBezierCurve(dataPoints[i].Pos, dataPoints[i + 1].Pos); var edgeData = new EdgeStyleData { ShapeType = EdgeStyleData.EdgeShape.Bezier, EdgeData = bezier, }; curves[i] = edgeData; } result = curves; } else if (EdgeStyle == EdgeStyle.Polyline) { var polyline = new EdgeStyleData(); var lines = new PointF[dataPoints.Count]; for (int v = 0; v < dataPoints.Count; ++v) { lines[v] = dataPoints[v].Pos; } polyline.ShapeType = EdgeStyleData.EdgeShape.Polyline; polyline.EdgeData = lines; result = new[] { polyline }; } return(result); }
private void InitDocument(NDrawingDocument document) { // Remove the standard frame document.BackgroundStyle.FrameStyle.Visible = false; // Adjust the graphics quality document.GraphicsSettings.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed; // Set up visual formatting document.Style.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant3, Color.FromArgb(192, 194, 194), Color.FromArgb(129, 133, 133)); document.Style.StrokeStyle = new NStrokeStyle(1, Color.FromArgb(68, 90, 108)); NStyleSheet styleSheet = new NStyleSheet("orange"); styleSheet.Style.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant3, Color.FromArgb(251, 203, 156), Color.FromArgb(247, 150, 56)); styleSheet.Style.StrokeStyle = new NStrokeStyle(1, Color.FromArgb(68, 90, 108)); document.StyleSheets.AddChild(styleSheet); NStyleSheet sheet = new NStyleSheet("edges"); sheet.Style.StartArrowheadStyle = new NArrowheadStyle(ArrowheadShape.None, "", NSizeL.Empty, document.Style.FillStyle, document.Style.StrokeStyle); sheet.Style.EndArrowheadStyle = new NArrowheadStyle(ArrowheadShape.None, "", NSizeL.Empty, document.Style.FillStyle, document.Style.StrokeStyle); document.StyleSheets.AddChild(sheet); // Adjust the text properties document.Style.TextStyle.FontStyle = new NFontStyle("arial", 13f); // Create the predefined org chart DiagramRenderer renderer = new DiagramRenderer(); renderer.CreatePredefinedOrgChart(document); // Apply the layout renderer.ApplyLayout(document, null); // Resize document to fit all shapes document.SizeToContent(); }
public static void Main(string[] args) { CommandLineArguments cla = CommandLineArguments.Parse(args); string[] files = Directory.GetFiles(Environment.CurrentDirectory, cla.FileFilter); DiagramParser parser = new DiagramParser(); DiagramRenderer renderer = new DiagramRenderer(); foreach (string file in files) { using (Stream fileStream = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read)) using (StreamReader reader = new StreamReader(fileStream)) { MarbleDiagram diagram = parser.Parse(reader); string outputImage = Path.ChangeExtension(file, ".png"); renderer.RenderImage(diagram, outputImage); } } }
public static void Write(string fileName) { Diagram diagram = Program.Load(fileName); string psName = System.IO.Path.ChangeExtension(fileName, "ps"); if(diagram != null) { try { // It seems the page size cannot be made smaller // using SetSize(), only larger. Start with a // small surface and enlarge it after layout. using(PSSurface pss = new PSSurface(psName, 10, 10)) { using(Context cr = new Context(pss)) { DiagramRenderer dr = new DiagramRenderer(cr, 0, 0, diagram); cr.LineWidth = 1.0; cr.Color = new Color(0.0, 0.0, 0.0); dr.Render(); pss.SetSize(dr.width, dr.height); dr.Draw(); cr.ShowPage(); } } Console.WriteLine("Wrote {0}", psName); } catch { Console.WriteLine("Error writing {0}", psName); } } }
public LifeLine(string label, DiagramRenderer dr, double x, double y0) { this.label = label; this.dr = dr; this.x = x; this.y0 = y0; boxes = new List<CanvasItem>(); activeBoxes = new Stack<Box>(); }