UnityEditor.ZoomableArea.EnforceScaleAndRange C# (CSharp) Method

EnforceScaleAndRange() public method

public EnforceScaleAndRange ( ) : void
return void
        public void EnforceScaleAndRange()
        {
            float a = this.rect.width / this.m_HScaleMin;
            float num2 = this.rect.height / this.m_VScaleMin;
            if ((this.hRangeMax != float.PositiveInfinity) && (this.hRangeMin != float.NegativeInfinity))
            {
                a = Mathf.Min(a, this.hRangeMax - this.hRangeMin);
            }
            if ((this.vRangeMax != float.PositiveInfinity) && (this.vRangeMin != float.NegativeInfinity))
            {
                num2 = Mathf.Min(num2, this.vRangeMax - this.vRangeMin);
            }
            Rect lastShownAreaInsideMargins = this.m_LastShownAreaInsideMargins;
            Rect shownAreaInsideMargins = this.shownAreaInsideMargins;
            if (shownAreaInsideMargins != lastShownAreaInsideMargins)
            {
                float num3 = 1E-05f;
                if (shownAreaInsideMargins.width < (lastShownAreaInsideMargins.width - num3))
                {
                    float t = Mathf.InverseLerp(lastShownAreaInsideMargins.width, shownAreaInsideMargins.width, this.rect.width / this.m_HScaleMax);
                    float x = Mathf.Lerp(lastShownAreaInsideMargins.x, shownAreaInsideMargins.x, t);
                    float width = Mathf.Lerp(lastShownAreaInsideMargins.width, shownAreaInsideMargins.width, t);
                    shownAreaInsideMargins = new Rect(x, shownAreaInsideMargins.y, width, shownAreaInsideMargins.height);
                }
                if (shownAreaInsideMargins.height < (lastShownAreaInsideMargins.height - num3))
                {
                    float num5 = Mathf.InverseLerp(lastShownAreaInsideMargins.height, shownAreaInsideMargins.height, this.rect.height / this.m_VScaleMax);
                    float y = Mathf.Lerp(lastShownAreaInsideMargins.y, shownAreaInsideMargins.y, num5);
                    shownAreaInsideMargins = new Rect(shownAreaInsideMargins.x, y, shownAreaInsideMargins.width, Mathf.Lerp(lastShownAreaInsideMargins.height, shownAreaInsideMargins.height, num5));
                }
                if (shownAreaInsideMargins.width > (lastShownAreaInsideMargins.width + num3))
                {
                    float num6 = Mathf.InverseLerp(lastShownAreaInsideMargins.width, shownAreaInsideMargins.width, a);
                    float introduced16 = Mathf.Lerp(lastShownAreaInsideMargins.x, shownAreaInsideMargins.x, num6);
                    float introduced17 = Mathf.Lerp(lastShownAreaInsideMargins.width, shownAreaInsideMargins.width, num6);
                    shownAreaInsideMargins = new Rect(introduced16, shownAreaInsideMargins.y, introduced17, shownAreaInsideMargins.height);
                }
                if (shownAreaInsideMargins.height > (lastShownAreaInsideMargins.height + num3))
                {
                    float num7 = Mathf.InverseLerp(lastShownAreaInsideMargins.height, shownAreaInsideMargins.height, num2);
                    float introduced18 = Mathf.Lerp(lastShownAreaInsideMargins.y, shownAreaInsideMargins.y, num7);
                    shownAreaInsideMargins = new Rect(shownAreaInsideMargins.x, introduced18, shownAreaInsideMargins.width, Mathf.Lerp(lastShownAreaInsideMargins.height, shownAreaInsideMargins.height, num7));
                }
                if (shownAreaInsideMargins.xMin < this.hRangeMin)
                {
                    shownAreaInsideMargins.x = this.hRangeMin;
                }
                if (shownAreaInsideMargins.xMax > this.hRangeMax)
                {
                    shownAreaInsideMargins.x = this.hRangeMax - shownAreaInsideMargins.width;
                }
                if (shownAreaInsideMargins.yMin < this.vRangeMin)
                {
                    shownAreaInsideMargins.y = this.vRangeMin;
                }
                if (shownAreaInsideMargins.yMax > this.vRangeMax)
                {
                    shownAreaInsideMargins.y = this.vRangeMax - shownAreaInsideMargins.height;
                }
                this.shownAreaInsideMarginsInternal = shownAreaInsideMargins;
                this.m_LastShownAreaInsideMargins = shownAreaInsideMargins;
            }
        }