Пример #1
0
            public void UpdateGeometries()
            {
                float halfWidth = Size.X / 2, halfHeight = Size.Y / 2;

                BorderRect.Left   = Center.X - halfWidth;
                BorderRect.Right  = Center.X + halfWidth;
                BorderRect.Top    = Center.Y - halfHeight;
                BorderRect.Bottom = Center.Y + halfHeight;

                if (BorderWidth > 0)
                {
                    ContentRect.Left   = BorderRect.Left + BorderWidth;
                    ContentRect.Right  = BorderRect.Right - BorderWidth;
                    ContentRect.Top    = BorderRect.Top + BorderWidth;
                    ContentRect.Bottom = BorderRect.Bottom - BorderWidth;
                }
                else
                {
                    ContentRect = BorderRect;
                }

                DualFlickerRects = new []
                {
                    new RawRectangleF(ContentRect.Left, ContentRect.Top, ContentRect.Left + ContentRect.Width() / 2, ContentRect.Bottom),
                    new RawRectangleF(ContentRect.Left + ContentRect.Width() / 2, ContentRect.Top, ContentRect.Right, ContentRect.Bottom),
                };

                CenterPointEllipse = new SharpDX.Direct2D1.Ellipse(Center, FixationPointSize, FixationPointSize);
            }
Пример #2
0
        // ReSharper disable once CompareOfFloatsByEqualityOperator
        public static RawRectangleF CenteredSizeScale(this RawRectangleF rect, float scale)
        {
            if (scale == 1)
            {
                return(rect);
            }
            var halfDeltaWidth  = rect.Width() * (scale - 1) / 2;
            var halfDeltaHeight = rect.Height() * (scale - 1) / 2;

            return(new RawRectangleF(rect.Left - halfDeltaWidth, rect.Top - halfDeltaHeight, rect.Right + halfDeltaWidth, rect.Bottom + halfDeltaHeight));
        }