void WriteStroke(DebugCurve debugCurve) { var color = ValidColor(debugCurve.Color); WriteAttribute("stroke", color); WriteAttribute("stroke-opacity", debugCurve.Transparency/255.0); WriteAttribute("stroke-width", debugCurve.Width); }
void ShowSegment(LongestNudgedSegment segment) { // ReSharper restore UnusedMember.Local var dd = GetObstacleBoundaries(Obstacles, "black"); var segtop = segment.Edges.Max(e => Math.Max(e.Source.Y, e.Target.Y)); var segbottom = segment.Edges.Min(e => Math.Min(e.Source.Y, e.Target.Y)); var segx = segment.Start.X; var seg = new DebugCurve(80, 1, "brown", new LineSegment(new Point(segx, segbottom), new Point(segx, segtop))); LayoutAlgorithmSettings.ShowDebugCurvesEnumeration(dd.Concat(new[] { seg })); }
void WriteDebugCurve(DebugCurve debugCurve) { WriteStartElement("path"); WriteAttribute("fill", "none"); var iCurve = debugCurve.Curve; WriteStroke(debugCurve); WriteAttribute("d", CurveString(iCurve)); if (debugCurve.DashArray != null) WriteAttribute("style", DashArrayString(debugCurve.DashArray)); WriteEndElement(); }
static void FillGraph(Graph graph, DebugCurve[] debugCurves) { var gg = new GeometryGraph { DebugCurves = debugCurves}; gg.Margins = 5; graph.GeometryGraph = gg; gg.UpdateBoundingBox(); }
// ReSharper disable UnusedMember.Local internal static void ShowOrderedPaths(IEnumerable<Polyline> obstacles, IEnumerable<Path> paths, Point s, Point e) { // ReSharper restore UnusedMember.Local string[] colors = { "red", "green", "blue", "violet", "rose", "black" }; const double startWidth = 0.001; const double endWidth = 0.1; var dd = new List<DebugCurve>(); if (obstacles != null) dd.AddRange(GetObstacleBoundaries(obstacles, "grey")); int i = 0; foreach (var path in paths) dd.AddRange(GetTestPathAsDebugCurve(startWidth, endWidth, colors[Math.Min(colors.Length - 1, i++)], path)); var ell = new DebugCurve(1, "black", new Ellipse(0.01, 0.01, s)); dd.Add(ell); dd.Add(new DebugCurve(1, "black", new Ellipse(0.02, 0.02, e))); LayoutAlgorithmSettings.ShowDebugCurvesEnumeration(dd.Concat(GetObstacleBoundaries(obstacles, "lightblue"))); }
static void ShowShapesOnGraphWithForm(DebugCurve[] debugCurves, Graph graph, Form f) { FillGraph(graph, debugCurves); try { DisplayGraph(graph, f); } catch (Exception e) { Console.WriteLine(e); } }
static void ShowDebugCurvesOnForm(DebugCurve[] debugCurves, Form f) { var g = new Graph(""); ShowShapesOnGraphWithForm(debugCurves, g, f); }
static Color GetFillColorFromString(DebugCurve curve) { if (curve.FillColor == null || curve.FillColor == "") return Color.Transparent; Drawing.Color msaglColor = StringToMsaglColor(curve.FillColor); msaglColor.A = curve.Transparency; return MsaglColorToDrawingColor(msaglColor); }
static Color GetColorFromString(DebugCurve curve){ Drawing.Color msaglColor = StringToMsaglColor(curve.Color); msaglColor.A = curve.Transparency; return MsaglColorToDrawingColor(msaglColor); }
static void DrawDebugCurve(DGraph graph, DebugCurve debugCurve, Graphics graphics) { using (var pen = new Pen(GetColorFromString(debugCurve), (float) debugCurve.Width)) using (var brush=new SolidBrush(GetFillColorFromString(debugCurve))){ if (debugCurve.DashArray != null) { pen.DashStyle = DashStyle.Dash; pen.DashPattern = CreateDashArray(debugCurve.DashArray); pen.DashOffset = pen.DashPattern[0]; } DrawDebugCurve(graph, debugCurve.Curve, pen, brush, graphics, debugCurve.Label); } }