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; }
static SymbolDraw() { SymbolDraw.old_acctor_mc(); }