public object Clone(CloneOptions options) { var display = options?.Display; if (display == null) { return(Clone()); } float fac = 1; if (_widthUnit == DrawingUnit.Pixel) { fac = ReferenceScaleHelper.CalcPixelUnitFactor(options); } else if (_widthUnit != DrawingUnit.Pixel && _pen.Width > 0) { float pix = (float)(display.mapScale / (display.dpi / 0.0254)); if (pix == 0f) { fac = 0; } else { fac = 1f / pix; } } SimpleLineSymbol clone = new SimpleLineSymbol(_color, ReferenceScaleHelper.PenWidth(_pen.Width * fac, this, display)); clone.DashStyle = this.DashStyle; clone.LineStartCap = this.LineStartCap; clone.LineEndCap = this.LineEndCap; clone.Smoothingmode = this.Smoothingmode; clone.LegendLabel = _legendLabel; clone.MinPenWidth = _minWidth; clone.MaxPenWidth = _maxWidth; clone.PenWidthUnit = _widthUnit; return(clone); }
public object Clone(CloneOptions options) { var display = options?.Display; if (display == null) { return(Clone()); } float fac = ReferenceScaleHelper.CalcPixelUnitFactor(options); RasterMarkerSymbol marker = new RasterMarkerSymbol(); marker.Angle = Angle; marker.HorizontalOffset = HorizontalOffset * fac; marker.VerticalOffset = VerticalOffset * fac; marker.SizeX = _sizeX * fac; marker.SizeY = _sizeY * fac; marker.Filename = _filename; marker.LegendLabel = _legendLabel; return(marker); }