コード例 #1
0
ファイル: SimpleLineSymbol.cs プロジェクト: jugstalt/gview5
        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);
        }
コード例 #2
0
ファイル: RasterMarkerSymbol.cs プロジェクト: jugstalt/gview5
        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);
        }