/// <summary> /// Draws a line on the target. The coordinates given are scene coordinates. /// </summary> /// <param name="target"></param> /// <param name="x">The x coordinate.</param> /// <param name="y">The y coordinate.</param> /// <param name="color">Color.</param> /// <param name="width">Width.</param> /// <param name="lineJoin"></param> /// <param name="dashes"></param> protected override void DrawLine(Target2DWrapper <Graphics> target, double[] x, double[] y, int color, double width, OsmSharp.UI.Renderer.Scene.Scene2DPrimitives.LineJoin lineJoin, int[] dashes) { float widthInPixels = this.ToPixels(width); _pen.DashStyle = DashStyle.Solid; if (dashes != null) { var penDashes = new float[dashes.Length]; for (int idx = 0; idx < dashes.Length; idx++) { penDashes[idx] = dashes[idx]; } _pen.DashPattern = penDashes; _pen.DashStyle = DashStyle.Custom; } switch (lineJoin) { case OsmSharp.UI.Renderer.Scene.Scene2DPrimitives.LineJoin.Round: _pen.LineJoin = System.Drawing.Drawing2D.LineJoin.Round; break; case OsmSharp.UI.Renderer.Scene.Scene2DPrimitives.LineJoin.Miter: _pen.LineJoin = System.Drawing.Drawing2D.LineJoin.Miter; break; case OsmSharp.UI.Renderer.Scene.Scene2DPrimitives.LineJoin.Bevel: _pen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel; break; case OsmSharp.UI.Renderer.Scene.Scene2DPrimitives.LineJoin.None: // just keep the default. _pen.LineJoin = System.Drawing.Drawing2D.LineJoin.Round; break; default: throw new ArgumentOutOfRangeException("lineJoin"); } _pen.StartCap = LineCap.Round; _pen.EndCap = LineCap.Round; var points = new PointF[x.Length]; for (int idx = 0; idx < x.Length; idx++) { double[] transformed = this.Tranform(x[idx], y[idx]); points[idx] = new PointF((float)transformed[0], (float)transformed[1]); } //if (casingWidth > 0) //{ // draw casing. // _pen.Color = Color.FromArgb(casingColor); // _pen.Width = this.ToPixels(casingWidth + width); // target.Target.DrawLines(_pen, points); //} // set color/width. _pen.Color = Color.FromArgb(color); _pen.Width = this.ToPixels(width); target.Target.DrawLines(_pen, points); }
protected override void DrawLine(Target2DWrapper <GraphicsDevice> target, double[] x, double[] y, int color, double width, OsmSharp.UI.Renderer.Scene.Scene2DPrimitives.LineJoin lineJoin, int[] dashes) { throw new NotImplementedException(); }