ParticleSystemCurveEditor.DoOptimizeCurveButton C# (CSharp) Method

DoOptimizeCurveButton() private method

private DoOptimizeCurveButton ( Rect rect ) : void
rect Rect
return void
    private void DoOptimizeCurveButton(Rect rect)
    {
        if (!this.m_CurveEditor.IsDraggingCurveOrRegion())
        {
            Rect position = new Rect((rect.xMax - 10f) - 14f, rect.y + ((rect.height - 14f) * 0.5f), 14f, 14f);
            int num = 0;
            List<CurveSelection> selectedCurves = this.m_CurveEditor.selectedCurves;
            if (selectedCurves.Count > 0)
            {
                for (int i = 0; i < selectedCurves.Count; i++)
                {
                    CurveWrapper curveWrapperFromSelection = this.m_CurveEditor.GetCurveWrapperFromSelection(selectedCurves[i]);
                    num += !AnimationUtility.IsValidPolynomialCurve(curveWrapperFromSelection.curve) ? 0 : 1;
                }
                if ((selectedCurves.Count != num) && GUI.Button(position, s_Styles.optimizeCurveText, s_Styles.plus))
                {
                    for (int j = 0; j < selectedCurves.Count; j++)
                    {
                        CurveWrapper wrapper2 = this.m_CurveEditor.GetCurveWrapperFromSelection(selectedCurves[j]);
                        if (!AnimationUtility.IsValidPolynomialCurve(wrapper2.curve))
                        {
                            wrapper2.curve.preWrapMode = WrapMode.Once;
                            wrapper2.curve.postWrapMode = WrapMode.Once;
                            wrapper2.renderer.SetWrap(WrapMode.Once, WrapMode.Once);
                            AnimationUtility.ConstrainToPolynomialCurve(wrapper2.curve);
                            wrapper2.changed = true;
                        }
                    }
                    this.m_CurveEditor.SelectNone();
                }
            }
            else
            {
                int num4;
                if (this.m_CurveEditor.GetTopMostCurveID(out num4))
                {
                    CurveWrapper curveWrapperFromID = this.m_CurveEditor.GetCurveWrapperFromID(num4);
                    if (!AnimationUtility.IsValidPolynomialCurve(curveWrapperFromID.curve) && GUI.Button(position, s_Styles.optimizeCurveText, s_Styles.plus))
                    {
                        curveWrapperFromID.curve.preWrapMode = WrapMode.Once;
                        curveWrapperFromID.curve.postWrapMode = WrapMode.Once;
                        curveWrapperFromID.renderer.SetWrap(WrapMode.Once, WrapMode.Once);
                        AnimationUtility.ConstrainToPolynomialCurve(curveWrapperFromID.curve);
                        curveWrapperFromID.changed = true;
                    }
                }
            }
        }
    }