public SvgEditor(String name) { this.Name = name; this.doc = new SvgDoc(); this.root = this.doc.CreateNewDocument(); this.CreateArrowStart(); this.CreateArrowEnd(); }
public string ToSvg(double maxWidth) { _renderedSvgDiagram = _classDiagramSvgRenderer.RenderDiagram(this); if (_renderedSvgDiagram.Width > maxWidth) { _renderedSvgDiagram.Scale = maxWidth / _renderedSvgDiagram.Width; } return(_renderedSvgDiagram.ToString()); }
//static List<SVGShape> Import(string filename) { //} public static void export(List <SVGShape> shapes, string filename, int width, int height) { SvgDoc doc = new SvgDoc(); SvgRoot root = doc.CreateNewDocument(); root.Width = width.ToString() + "px"; root.Height = height.ToString() + "px"; foreach (var shape in shapes) { var figure = shape.ToSVGLibShape(doc); doc.AddElement(root, figure); } doc.SaveToFile(filename); }
public SvgRoot RenderConnectedDiagram(ClassDiagram classDiagram) { _classDiagram = classDiagram; _mainDiagram = _classDiagramSvgRenderer.RenderDiagram(_classDiagram); CalculateMainMarginsAndSize(); PositionMainDiagram(); DrawBaseTypes(); DrawImplementedInterfaces(); DrawUsedBy(); DrawUses(); return(_mainDiagram); }
public SvgRoot RenderDiagram(SequenceDiagram sequenceDiagram) { _nodeMiddlePoints = new Dictionary <Guid, double>(); _diagramSize = new Size(0.5, 80.5); _svgRoot = new SvgRoot(0, 0); DrawAllNodes(sequenceDiagram); DrawAllDiagramElements(sequenceDiagram); DrawVerticalLines(sequenceDiagram); _svgRoot.Height = _diagramSize.Height; _svgRoot.Width = _diagramSize.Width; return(_svgRoot); }
public SvgRoot RenderDiagram(ClassDiagram classDiagram) { _classDiagram = classDiagram; _diagramSize = new Size(CalculateDiagramWidth(classDiagram), CalculateDiagramHeight(classDiagram)); _svgRoot = new SvgRoot() { Width = _diagramSize.Width, Height = _diagramSize.Height }; _svgGraphic = new SvgGraphic(_svgRoot); _svgRoot.Add(_svgGraphic); RenderFrame(); RenderHeader(); RenderAllRowSections(); return(_svgRoot); }
public static Tuple <List <SVGShape>, int, int> import(string filename) { List <SVGShape> shapes = new List <SVGShape>() { new SVGEllipse(new Point(50.0, 50.0), 20.0, 10.0, new Color(100, 255, 56, 0), new Color(0, 0, 0, 0), 2) }; SvgDoc doc = new SvgDoc(); doc.LoadFromFile(filename); SvgRoot root = doc.GetSvgRoot(); int width, height = 1; Int32.TryParse(root.Width.ToString().Substring(0, root.Width.Length - 2), out width); Int32.TryParse(root.Height.ToString().Substring(0, root.Height.Length - 2), out height); Console.WriteLine(width); Console.WriteLine(height); int i = 2; SvgElement el; while ((el = doc.GetSvgElement(i)) != null) { el = doc.GetSvgElement(i); Console.WriteLine(el.getElementName()); ++i; } Console.WriteLine(i); //foreach (var shape in shapes) //{ // var figure = shape.ToSVGLibShape(doc); // doc.AddElement(root, figure); //} //doc.SaveToFile(filename); return(Tuple.Create(shapes, width, height)); }
public SvgRoot RenderDiagram(ClassDiagram classDiagram) { _diagramWidth = CalculateDiagramWidth(classDiagram); _svgRoot = new SvgRoot(100, _diagramWidth); var rect = new SvgRectangle(_svgRoot, 0.5, 0.5, _diagramWidth - 1, 100); rect.StrokeWidth = 1; rect.Stroke = "#979797"; rect.Fill = "#FFFFFF"; _svgRoot.AppendChild(rect.XmlElement); double position = 20.5d; position = RenderHeader(classDiagram, position); position = RenderAllRowSections(classDiagram, position); rect.Height = position - 9.5; _svgRoot.Height = position - 5; return(_svgRoot); }
public bool LoadFromXml(XmlTextReader reader) { ErrH.Log("DrawArea", "LoadFromXML", "", ErrH._LogPriority.Info); _graphicsList.Clear(); var svg = new SvgDoc(); if (!svg.LoadFromFile(reader)) { return(false); } SvgRoot root = svg.GetSvgRoot(); if (root == null) { return(false); } try { SizePicture = new Point((int)XnaDrawObject.ParseSize(root.Width, XnaDrawObject.Dpi.X), (int)XnaDrawObject.ParseSize(root.Height, XnaDrawObject.Dpi.Y)); } catch { } _mOriginalSize = SizePicture; SvgElement ele = root.getChild(); _mScale = new Point(1, 1); if (ele != null) { _graphicsList.AddFromSvg(ele); } Description = _graphicsList.Description; return(true); }
public Size GetSvgSize() { _renderedSvgDiagram = _classDiagramSvgRenderer.RenderConnectedDiagram(this); return(new Size((int)_renderedSvgDiagram.Width, (int)_renderedSvgDiagram.Height)); }
public SDTemplate ToSvg() { _renderedSvgDiagram = _classDiagramSvgRenderer.RenderConnectedDiagram(this); return(new SDTemplate(_renderedSvgDiagram.ToString())); }
public static Tuple <List <SVGShape>, int, int> import(string filename) { var shapes = new List <SVGShape>(); SvgDoc doc = new SvgDoc(); doc.LoadFromFile(filename); SvgRoot root = doc.GetSvgRoot(); int width, height = 1; Int32.TryParse(root.Width.ToString().Substring(0, root.Width.Length - 2), out width); Int32.TryParse(root.Height.ToString().Substring(0, root.Height.Length - 2), out height); int i = 2; SvgElement el; double x, y, r, rx, ry, rectw, recth; int w; while ((el = doc.GetSvgElement(i)) != null) { el = doc.GetSvgElement(i); el.GetAttribute("RX"); switch (el.getElementName()) { case "circle": Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CX).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CX).Length - 2), out x); Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CY).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CY).Length - 2), out y); Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_R).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_R).Length - 2), out r); Int32.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Length - 2), out w); var colorf = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Fill); var colors = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Stroke); var circle = new SVGCircle( new Point(x, y), r, new Color(colorf.R, colorf.G, colorf.B, colorf.A), new Color(colors.R, colors.G, colors.B, colors.A), w ); shapes.Add(circle); break; case "ellipse": Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CX).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CX).Length - 2), out x); Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CY).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_CY).Length - 2), out y); Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_RX).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_RX).Length - 2), out rx); Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_RY).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_RY).Length - 2), out ry); Int32.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Length - 2), out w); colorf = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Fill); colors = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Stroke); var ellipse = new SVGEllipse( new Point(x, y), rx, ry, new Color(colorf.R, colorf.G, colorf.B, colorf.A), new Color(colors.R, colors.G, colors.B, colors.A), w ); shapes.Add(ellipse); break; case "rect": Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Width).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Width).Length - 2), out rectw); Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Height).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Height).Length - 2), out recth); Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_X).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_X).Length - 2), out x); Double.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Y).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Y).Length - 2), out y); Int32.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Length - 2), out w); colorf = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Fill); colors = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Stroke); var rect = new SVGRect( x, y, rectw, recth, new Color(colorf.R, colorf.G, colorf.B, colorf.A), new Color(colors.R, colors.G, colors.B, colors.A), w ); shapes.Add(rect); break; case "polygon": String pointsStr = ""; var points = new List <Point>(); pointsStr = el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrSpecific_Points); string[] value = pointsStr.Split(' ', ','); for (int k = 0; k < value.Length; k = k + 2) { if (value[k].Trim() != "" && value[k + 1].Trim() != "") { points.Add(new Point(Convert.ToDouble(value[k]), Convert.ToDouble(value[k + 1]))); } } ; Int32.TryParse(el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Substring(0, el.GetAttributeStringValue(SvgAttribute._SvgAttribute.attrPaint_StrokeWidth).Length - 2), out w); colorf = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Fill); colors = el.GetAttributeColorValue(SvgAttribute._SvgAttribute.attrPaint_Stroke); var polygon = new SVGPolygon( points, new Color(colorf.R, colorf.G, colorf.B, colorf.A), new Color(colors.R, colors.G, colors.B, colors.A), w ); shapes.Add(polygon); break; } ++i; } //foreach (var shape in shapes) //{ // var figure = shape.ToSVGLibShape(doc); // doc.AddElement(root, figure); //} //doc.SaveToFile(filename); return(Tuple.Create(shapes, width, height)); }
public Size GetSvgSize() { _renderedSvgDiagram = _sequenceDiagramSvgRenderer.RenderDiagram(this); return(new Size((int)_renderedSvgDiagram.Width, (int)_renderedSvgDiagram.Height)); }
public SDTemplate ToSvg() { _renderedSvgDiagram = _sequenceDiagramSvgRenderer.RenderDiagram(this); return(new SDTemplate(_renderedSvgDiagram.ToString())); }