FairyGUI.Utils.ToolSet.Union C# (CSharp) Method

Union() public static method

public static Union ( Rect &rect1, Rect &rect2 ) : Rect
rect1 UnityEngine.Rect
rect2 UnityEngine.Rect
return UnityEngine.Rect
        public static Rect Union(ref Rect rect1, ref Rect rect2)
        {
            if (rect2.width == 0 || rect2.height == 0)
                return rect1;

            if (rect1.width == 0 || rect1.height == 0)
                return rect2;

            float x = Mathf.Min(rect1.x, rect2.x);
            float y = Mathf.Min(rect1.y, rect2.y);
            return new Rect(x, y, Mathf.Max(rect1.xMax, rect2.xMax) - x, Mathf.Max(rect1.yMax, rect2.yMax) - y);
        }

Usage Example

Example #1
0
        public void SetArea(Rect r0, Rect r1)
        {
            r1.yMin = r0.yMax;

            Rect unionRect = ToolSet.Union(ref r0, ref r1);

            r0.position -= unionRect.position;
            r1.position -= unionRect.position;
            shape.SetXY(unionRect.x, unionRect.y);
            shape.SetSize(unionRect.width, unionRect.height);

            if (_points8 == null)
            {
                _points8 = new Vector2[8];
            }

            _points8[0] = new Vector2(r0.xMin, r0.yMax);
            _points8[1] = new Vector2(r0.xMin, r0.yMin);
            _points8[2] = new Vector2(r0.xMax, r0.yMin);
            _points8[3] = new Vector2(r0.xMax, r0.yMax);

            _points8[4] = new Vector2(r1.xMax, r1.yMin);
            _points8[5] = new Vector2(r1.xMax, r1.yMax);
            _points8[6] = new Vector2(r1.xMin, r1.yMax);
            _points8[7] = new Vector2(r1.xMin, r1.yMin);

            shape.DrawPolygon(_owner.htmlParseOptions.linkBgColor, _points8);
        }
All Usage Examples Of FairyGUI.Utils.ToolSet::Union