FairyGUI.DisplayObject.TransformRect C# (CSharp) Method

TransformRect() public method

public TransformRect ( Rect rect, DisplayObject targetSpace ) : Rect
rect UnityEngine.Rect
targetSpace DisplayObject null if to world space
return UnityEngine.Rect
        public Rect TransformRect(Rect rect, DisplayObject targetSpace)
        {
            if (targetSpace == this)
                return rect;

            if (targetSpace == parent && _rotation.z == 0) // optimization
            {
                Vector3 vec = cachedTransform.localScale;
                return new Rect((this.x + rect.x) * vec.x, (this.y + rect.y) * vec.y,
                    rect.width * vec.x, rect.height * vec.y);
            }
            else
            {
                Rect result = Rect.MinMaxRect(float.MaxValue, float.MaxValue, float.MinValue, float.MinValue);

                TransformRectPoint(rect.xMin, rect.yMin, targetSpace, ref result);
                TransformRectPoint(rect.xMax, rect.yMin, targetSpace, ref result);
                TransformRectPoint(rect.xMin, rect.yMax, targetSpace, ref result);
                TransformRectPoint(rect.xMax, rect.yMax, targetSpace, ref result);

                return result;
            }
        }

Usage Example

 static public int TransformRect(IntPtr l)
 {
     try {
         FairyGUI.DisplayObject self = (FairyGUI.DisplayObject)checkSelf(l);
         UnityEngine.Rect       a1;
         checkValueType(l, 2, out a1);
         FairyGUI.DisplayObject a2;
         checkType(l, 3, out a2);
         var ret = self.TransformRect(a1, a2);
         pushValue(l, true);
         pushValue(l, ret);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }