public void VeBound(AxMap pMap, Graphics g, Color Color) { float num = (float)(this.m_Zoom / pMap.Zoom); num = Conversions.ToSingle(Operators.MultiplyObject(num, Interaction.IIf(this.m_MWidth > 0f, pMap.MapScreenWidth / this.m_MWidth, 1))); float dx; float dy; pMap.ConvertCoord(ref dx, ref dy, ref this.m_GocX, ref this.m_GocY, ConversionConstants.miMapToScreen); GraphicsContainer container = g.BeginContainer(); g.TranslateTransform(dx, dy); g.ScaleTransform(num, num); float left; float top; float right; float bottom; try { IEnumerator enumerator = this.m_GObjs.GetEnumerator(); while (enumerator.MoveNext()) { GraphicObject graphicObject = (GraphicObject)enumerator.Current; RectangleF bounds = graphicObject.GetBounds(); if (bounds.Left < left) { left = bounds.Left; } if (bounds.Top < top) { top = bounds.Top; } if (bounds.Right > right) { right = bounds.Right; } if (bounds.Bottom > bottom) { bottom = bounds.Bottom; } } } finally { IEnumerator enumerator; if (enumerator is IDisposable) { (enumerator as IDisposable).Dispose(); } } Pen pen = new Pen(Color.Black); pen.DashStyle = DashStyle.Dot; pen.Width = 2f; pen.Color = Color.White; Pen arg_175_1 = pen; checked { System.Drawing.Rectangle rect = new System.Drawing.Rectangle((int)Math.Round((double)left), (int)Math.Round((double)top), (int)Math.Round((double)(unchecked (right - left))), (int)Math.Round((double)(unchecked (bottom - top)))); g.DrawRectangle(arg_175_1, rect); pen.Width = 1f; pen.Color = Color; Pen arg_1C5_1 = pen; rect = new System.Drawing.Rectangle((int)Math.Round((double)left), (int)Math.Round((double)top), (int)Math.Round((double)(unchecked (right - left))), (int)Math.Round((double)(unchecked (bottom - top)))); g.DrawRectangle(arg_1C5_1, rect); pen.Dispose(); g.EndContainer(container); } }
public void VFlip() { RectangleF bounds; try { IEnumerator enumerator = this.m_GObjs.GetEnumerator(); while (enumerator.MoveNext()) { GraphicObject graphicObject = (GraphicObject)enumerator.Current; bounds = graphicObject.GetBounds(); float left; if (bounds.Left < left) { left = bounds.Left; } float top; if (bounds.Top < top) { top = bounds.Top; } float right; if (bounds.Right > right) { right = bounds.Right; } float bottom; if (bounds.Bottom > bottom) { bottom = bounds.Bottom; } } } finally { IEnumerator enumerator; if (enumerator is IDisposable) { (enumerator as IDisposable).Dispose(); } } float pX = (bounds.Left + bounds.Right) / 2f; try { IEnumerator enumerator2 = this.m_GObjs.GetEnumerator(); while (enumerator2.MoveNext()) { GraphicObject graphicObject2 = (GraphicObject)enumerator2.Current; graphicObject2.VFlip(pX); } } finally { IEnumerator enumerator2; if (enumerator2 is IDisposable) { (enumerator2 as IDisposable).Dispose(); } } }
public RectangleF GetBounds(AxMap pMap) { float num = (float)(this.m_Zoom / pMap.Zoom); num = Conversions.ToSingle(Operators.MultiplyObject(num, Interaction.IIf(this.m_MWidth > 0f, pMap.MapScreenWidth / this.m_MWidth, 1))); float offsetX; float offsetY; pMap.ConvertCoord(ref offsetX, ref offsetY, ref this.m_GocX, ref this.m_GocY, ConversionConstants.miMapToScreen); Matrix matrix = new Matrix(); matrix.Translate(offsetX, offsetY); matrix.Scale(num, num); float left; float top; float right; float bottom; try { IEnumerator enumerator = this.m_GObjs.GetEnumerator(); while (enumerator.MoveNext()) { GraphicObject graphicObject = (GraphicObject)enumerator.Current; RectangleF bounds = graphicObject.GetBounds(); if (bounds.Left < left) { left = bounds.Left; } if (bounds.Top < top) { top = bounds.Top; } if (bounds.Right > right) { right = bounds.Right; } if (bounds.Bottom > bottom) { bottom = bounds.Bottom; } } } finally { IEnumerator enumerator; if (enumerator is IDisposable) { (enumerator as IDisposable).Dispose(); } } PointF[] array = new PointF[4]; array[0] = new PointF(left, top); array[1] = new PointF(right, top); array[2] = new PointF(right, bottom); array[3] = new PointF(left, bottom); matrix.TransformPoints(array); matrix.Dispose(); PointF[] array2 = new PointF[2]; array2[0].X = Math.Min(Math.Min(Math.Min(array[0].X, array[1].X), array[2].X), array[3].X); array2[0].Y = Math.Min(Math.Min(Math.Min(array[0].Y, array[1].Y), array[2].Y), array[3].Y); array2[1].X = Math.Max(Math.Max(Math.Max(array[0].X, array[1].X), array[2].X), array[3].X); array2[1].Y = Math.Max(Math.Max(Math.Max(array[0].Y, array[1].Y), array[2].Y), array[3].Y); System.Drawing.Rectangle r = checked (new System.Drawing.Rectangle((int)Math.Round((double)array2[0].X), (int)Math.Round((double)array2[0].Y), (int)Math.Round((double)(unchecked (array2[1].X - array2[0].X))), (int)Math.Round((double)(unchecked (array2[1].Y - array2[0].Y))))); return(r); }