Microsoft.Xna.Framework.Rectangle.Intersect C# (CSharp) Method

Intersect() public static method

public static Intersect ( Rectangle &value1, Rectangle &value2, Rectangle &result ) : void
value1 Rectangle
value2 Rectangle
result Rectangle
return void
		public static void Intersect (ref Rectangle value1, ref Rectangle value2, out Rectangle result)
		{
			int r1r = value1.X + value1.Width;
			int r2r = value2.X + value2.Width;
			int r1b = value1.Y + value1.Height;
			int r2b = value2.Y + value2.Height;
			int maxX = (value1.X > value2.X) ? value1.X : value2.X;
			int maxY = (value1.Y > value2.Y) ? value1.Y : value2.Y;
			int minX = (r1r < r2r) ? r1r : r2r;
			int minY = (r1b < r2b) ? r1b : r2b;
			if (minX > maxX && minY > maxY)
			{
				result.X = maxX;
				result.Y = maxY;
				result.Width = minX - maxX;
				result.Height = minY - maxY;
				return;
			}
			result.X = 0;
			result.Y = 0;
			result.Width = 0;
			result.Height = 0;
		}

Usage Example

Beispiel #1
0
        internal override void Layout()
        {
            // Pixel size of panel to contain child widgets
            var outerArea = BuildContainerRenderArea();

            RenderRule.BuildBars(outerArea);

            foreach (var widget in Children)
            {
                widget.AbsoluteArea = new Rectangle(
                    widget.Area.X + AbsoluteInputArea.X - (int)(RenderRule.Horizontal.ChildOffset),
                    widget.Area.Y + AbsoluteInputArea.Y - (int)(RenderRule.Vertical.ChildOffset),
                    widget.Area.Width,
                    widget.Area.Height);
                widget.SissorArea = AbsoluteInputArea;
                if (Parent != null)
                {
                    widget.SissorArea = Rectangle.Intersect(widget.SissorArea, SissorArea);
                }
            }

            base.Layout();
        }
All Usage Examples Of Microsoft.Xna.Framework.Rectangle::Intersect