Example #1
0
        public override object Clone()
        {
            TrueTypeMarkerSymbol marker = Font != null && _brush != null ?
                                          new TrueTypeMarkerSymbol(Current.Engine.CreateFont(Font.Name, Font.Size, Font.Style), _brush.Color) :
                                          new TrueTypeMarkerSymbol();

            marker.Angle            = Angle;
            marker.HorizontalOffset = HorizontalOffset;
            marker.VerticalOffset   = VerticalOffset;

            marker._char       = _char;
            marker.LegendLabel = _legendLabel;

            marker.MaxSymbolSize = this.MaxSymbolSize;
            marker.MinSymbolSize = this.MinSymbolSize;

            CloneEngineOffsets(marker._engineOffset);

            return(marker);
        }
Example #2
0
        public object Clone(CloneOptions options)
        {
            var display = options?.Display;

            if (display == null)
            {
                return(Clone());
            }

            float fac = 1;

            if (options.ApplyRefScale)
            {
                fac = ReferenceScaleHelper.RefscaleFactor(
                    (float)(display.refScale / display.mapScale),
                    this.SymbolSize,
                    this.MinSymbolSize,
                    this.MaxSymbolSize);

                fac = options.RefScaleFactor(fac);
            }
            fac *= options.DpiFactor;

            TrueTypeMarkerSymbol marker = new TrueTypeMarkerSymbol(Current.Engine.CreateFont(Font.Name, Math.Max(Font.Size * fac / display.Screen.LargeFontsFactor, 2f), _font.Style), _brush.Color);

            marker.Angle            = Angle;
            marker.HorizontalOffset = HorizontalOffset * fac;
            marker.VerticalOffset   = VerticalOffset * fac;

            marker._char       = _char;
            marker.LegendLabel = _legendLabel;

            marker.MaxSymbolSize = this.MaxSymbolSize;
            marker.MinSymbolSize = this.MinSymbolSize;

            CloneEngineOffsets(marker._engineOffset);

            return(marker);
        }