UnityEditor.RectTransformSnapping.GetInterpolatedCorner C# (CSharp) Method

GetInterpolatedCorner() private static method

private static GetInterpolatedCorner ( Vector3 corners, int mainAxis, float alongMainAxis, float alongOtherAxis ) : Vector3
corners Vector3
mainAxis int
alongMainAxis float
alongOtherAxis float
return Vector3
        private static Vector3 GetInterpolatedCorner(Vector3[] corners, int mainAxis, float alongMainAxis, float alongOtherAxis)
        {
            if (mainAxis != 0)
            {
                float num = alongMainAxis;
                alongMainAxis = alongOtherAxis;
                alongOtherAxis = num;
            }
            return (Vector3) (((((corners[0] * (1f - alongMainAxis)) * (1f - alongOtherAxis)) + ((corners[1] * (1f - alongMainAxis)) * alongOtherAxis)) + ((corners[3] * alongMainAxis) * (1f - alongOtherAxis))) + ((corners[2] * alongMainAxis) * alongOtherAxis));
        }

Usage Example

 internal static void CalculateAnchorSnapValues(Transform parentSpace, Transform self, RectTransform gui, int minmaxX, int minmaxY)
 {
     for (int i = 0; i < 2; i++)
     {
         RectTransformSnapping.s_SnapGuides[i].Clear();
         RectTransform component = parentSpace.GetComponent <RectTransform>();
         component.GetWorldCorners(RectTransformSnapping.s_Corners);
         for (int j = 0; j < RectTransformSnapping.kSidesAndMiddle.Length; j++)
         {
             float num = RectTransformSnapping.kSidesAndMiddle[j];
             RectTransformSnapping.s_SnapGuides[i].AddGuide(new SnapGuide(num, new Vector3[]
             {
                 RectTransformSnapping.GetInterpolatedCorner(RectTransformSnapping.s_Corners, i, num, 0f),
                 RectTransformSnapping.GetInterpolatedCorner(RectTransformSnapping.s_Corners, i, num, 1f)
             }));
         }
         IEnumerator enumerator = parentSpace.GetEnumerator();
         try
         {
             while (enumerator.MoveNext())
             {
                 Transform transform = (Transform)enumerator.Current;
                 if (!(transform == self))
                 {
                     RectTransform component2 = transform.GetComponent <RectTransform>();
                     if (component2)
                     {
                         RectTransformSnapping.s_SnapGuides[i].AddGuide(new SnapGuide(component2.anchorMin[i], new Vector3[0]));
                         RectTransformSnapping.s_SnapGuides[i].AddGuide(new SnapGuide(component2.anchorMax[i], new Vector3[0]));
                     }
                 }
             }
         }
         finally
         {
             IDisposable disposable;
             if ((disposable = (enumerator as IDisposable)) != null)
             {
                 disposable.Dispose();
             }
         }
         int num2 = (i != 0) ? minmaxY : minmaxX;
         if (num2 == 0)
         {
             RectTransformSnapping.s_SnapGuides[i].AddGuide(new SnapGuide(gui.anchorMax[i], new Vector3[0]));
         }
         if (num2 == 1)
         {
             RectTransformSnapping.s_SnapGuides[i].AddGuide(new SnapGuide(gui.anchorMin[i], new Vector3[0]));
         }
     }
 }
All Usage Examples Of UnityEditor.RectTransformSnapping::GetInterpolatedCorner