Пример #1
0
        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);
            }
        }
Пример #2
0
        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();
                }
            }
        }
Пример #3
0
        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);
        }