Exemplo n.º 1
0
        public static void DrawSymbol(int int_0, Rectangle rectangle_0, object object_0, double double_0)
        {
            tagRECT   left = new tagRECT();
            ISymbol   object0;
            IDisplay  screenDisplayClass;
            IGeometry geometry;
            bool      flag;
            IDisplayTransformation displayTransformationClass = new DisplayTransformation() as IDisplayTransformation;
            IEnvelope envelopeClass = new Envelope() as IEnvelope;

            envelopeClass.PutCoords((double)rectangle_0.Left, (double)rectangle_0.Top, (double)rectangle_0.Right,
                                    (double)rectangle_0.Bottom);
            left.left   = rectangle_0.Left;
            left.right  = rectangle_0.Right;
            left.bottom = rectangle_0.Bottom;
            left.top    = rectangle_0.Top;
            displayTransformationClass.set_DeviceFrame(left);
            displayTransformationClass.Bounds = envelopeClass;
            if ((double_0 >= 1 ? true : !(object_0 is ILineSymbol)))
            {
                displayTransformationClass.Resolution = 72;
            }
            else
            {
                displayTransformationClass.Resolution = 36 / double_0;
            }
            displayTransformationClass.ReferenceScale = 1;
            displayTransformationClass.ScaleRatio     = double_0;
            if (object_0 is ISymbol)
            {
                object0 = (ISymbol)object_0;
            }
            else if (object_0 is IColorRamp)
            {
                IGradientFillSymbol gradientFillSymbolClass = new GradientFillSymbol();
                ILineSymbol         outline = gradientFillSymbolClass.Outline;
                outline.Width = 0;
                gradientFillSymbolClass.Outline            = outline;
                gradientFillSymbolClass.ColorRamp          = (IColorRamp)object_0;
                gradientFillSymbolClass.GradientAngle      = 180;
                gradientFillSymbolClass.GradientPercentage = 1;
                gradientFillSymbolClass.IntervalCount      = 100;
                gradientFillSymbolClass.Style = esriGradientFillStyle.esriGFSLinear;
                object0 = (ISymbol)gradientFillSymbolClass;
            }
            else if (object_0 is IColor)
            {
                object0 = (ISymbol)(new ColorSymbol()
                {
                    Color = (IColor)object_0
                });
            }
            else if (!(object_0 is IAreaPatch))
            {
                if (object_0 is ILinePatch)
                {
                    goto Label1;
                }
                if (object_0 is INorthArrow)
                {
                    screenDisplayClass = new ScreenDisplay();
                    screenDisplayClass.StartDrawing(int_0, 0);
                    screenDisplayClass.DisplayTransformation = displayTransformationClass;
                    ((IMapSurround)object_0).Draw(screenDisplayClass, null, envelopeClass);
                    screenDisplayClass.FinishDrawing();
                    return;
                }
                else if (object_0 is IMapSurround)
                {
                    screenDisplayClass = new ScreenDisplay();
                    screenDisplayClass.StartDrawing(int_0, 0);
                    screenDisplayClass.DisplayTransformation = displayTransformationClass;
                    IEnvelope envelope = new Envelope() as IEnvelope;
                    envelope.PutCoords((double)(rectangle_0.Left + 5), (double)(rectangle_0.Top + 5),
                                       (double)(rectangle_0.Right - 5), (double)(rectangle_0.Bottom - 5));
                    ((IMapSurround)object_0).Draw(screenDisplayClass, null, envelope);
                    screenDisplayClass.FinishDrawing();
                    return;
                }
                else if (object_0 is IBackground)
                {
                    screenDisplayClass = new ScreenDisplay();
                    screenDisplayClass.StartDrawing(int_0, 0);
                    screenDisplayClass.DisplayTransformation = displayTransformationClass;
                    geometry = ((IBackground)object_0).GetGeometry(screenDisplayClass, envelopeClass);
                    ((IBackground)object_0).Draw(screenDisplayClass, geometry);
                    screenDisplayClass.FinishDrawing();
                    return;
                }
                else if (object_0 is IShadow)
                {
                    screenDisplayClass = new ScreenDisplay();
                    screenDisplayClass.StartDrawing(int_0, 0);
                    screenDisplayClass.DisplayTransformation = displayTransformationClass;
                    geometry = ((IShadow)object_0).GetGeometry(screenDisplayClass, envelopeClass);
                    ((IShadow)object_0).Draw(screenDisplayClass, geometry);
                    screenDisplayClass.FinishDrawing();
                    return;
                }
                else if (object_0 is IBorder)
                {
                    screenDisplayClass = new ScreenDisplay();
                    screenDisplayClass.StartDrawing(int_0, 0);
                    screenDisplayClass.DisplayTransformation = displayTransformationClass;
                    IPointCollection polylineClass = new Polyline();
                    object           value         = Missing.Value;
                    IPoint           pointClass    = new ESRI.ArcGIS.Geometry.Point();
                    pointClass.PutCoords((double)(rectangle_0.X + 4), (double)rectangle_0.Top);
                    polylineClass.AddPoint(pointClass, ref value, ref value);
                    pointClass.PutCoords((double)(rectangle_0.X + 4), (double)rectangle_0.Bottom);
                    polylineClass.AddPoint(pointClass, ref value, ref value);
                    pointClass.PutCoords((double)(rectangle_0.Right - 4), (double)rectangle_0.Bottom);
                    polylineClass.AddPoint(pointClass, ref value, ref value);
                    geometry = ((IBorder)object_0).GetGeometry(screenDisplayClass, (IGeometry)polylineClass);
                    ((IBorder)object_0).Draw(screenDisplayClass, geometry);
                    screenDisplayClass.FinishDrawing();
                    return;
                }
                else
                {
                    return;
                }
            }
            else
            {
                object0 = new SimpleFillSymbol() as ISymbol;
                IRgbColor rgbColorClass = new RgbColor()
                {
                    Red   = 227,
                    Green = 236,
                    Blue  = 19
                };
                ((IFillSymbol)object0).Color = rgbColorClass;
            }
Label2:
            flag = (object0 is IPictureFillSymbol ? false : !(object0 is IPictureLineSymbol));
            if (flag)
            {
                object0.SetupDC(int_0, displayTransformationClass);
            }
            else
            {
                object0.SetupDC(int_0, displayTransformationClass);
            }
            if (object0 is IMarkerSymbol)
            {
                SymbolDraw.DrawSymbol((IMarkerSymbol)object0, rectangle_0);
            }
            else if (object0 is ILineSymbol)
            {
                SymbolDraw.DrawSymbol((ILineSymbol)object0, rectangle_0, false);
            }
            else if (object0 is IFillSymbol)
            {
                SymbolDraw.DrawSymbol((IFillSymbol)object0, rectangle_0);
            }
            else if (object0 is ITextSymbol)
            {
                SymbolDraw.DrawSymbol((ITextSymbol)object0, rectangle_0);
            }
            object0.ResetDC();
            return;

Label1:
            object0 = new SimpleLineSymbol() as ISymbol;
            goto Label2;
        }
Exemplo n.º 2
0
 static SymbolDraw()
 {
     SymbolDraw.old_acctor_mc();
 }