UnityEditor.ClothInspector.SelectionGUI C# (CSharp) Method

SelectionGUI() private method

private SelectionGUI ( ) : void
return void
        private void SelectionGUI()
        {
            ClothSkinningCoefficient[] coefficients = this.cloth.coefficients;
            float maxDistance = 0f;
            float useValue = 0f;
            float collisionSphereDistance = 0f;
            float num4 = 0f;
            int num5 = 0;
            bool flag = true;
            for (int i = 0; i < this.m_Selection.Length; i++)
            {
                if (this.m_Selection[i])
                {
                    if (flag)
                    {
                        maxDistance = coefficients[i].maxDistance;
                        useValue = (maxDistance >= float.MaxValue) ? ((float) 0) : ((float) 1);
                        collisionSphereDistance = coefficients[i].collisionSphereDistance;
                        num4 = (collisionSphereDistance >= float.MaxValue) ? ((float) 0) : ((float) 1);
                        flag = false;
                    }
                    if (coefficients[i].maxDistance != maxDistance)
                    {
                        maxDistance = -1f;
                    }
                    if (coefficients[i].collisionSphereDistance != collisionSphereDistance)
                    {
                        collisionSphereDistance = -1f;
                    }
                    if (useValue != ((coefficients[i].maxDistance >= float.MaxValue) ? ((float) 0) : ((float) 1)))
                    {
                        useValue = -1f;
                    }
                    if (num4 != ((coefficients[i].collisionSphereDistance >= float.MaxValue) ? ((float) 0) : ((float) 1)))
                    {
                        num4 = -1f;
                    }
                    num5++;
                }
            }
            float num7 = this.CoefficientField(maxDistance, useValue, num5 > 0, DrawMode.MaxDistance);
            if (num7 != maxDistance)
            {
                for (int j = 0; j < coefficients.Length; j++)
                {
                    if (this.m_Selection[j])
                    {
                        coefficients[j].maxDistance = num7;
                    }
                }
                this.cloth.coefficients = coefficients;
                this.SetupSelectionMeshColors();
                Undo.RegisterCompleteObjectUndo(base.target, "Change Cloth Coefficients");
            }
            float num9 = this.CoefficientField(collisionSphereDistance, num4, num5 > 0, DrawMode.CollisionSphereDistance);
            if (num9 != collisionSphereDistance)
            {
                for (int k = 0; k < coefficients.Length; k++)
                {
                    if (this.m_Selection[k])
                    {
                        coefficients[k].collisionSphereDistance = num9;
                    }
                }
                this.cloth.coefficients = coefficients;
                this.SetupSelectionMeshColors();
                Undo.RegisterCompleteObjectUndo(base.target, "Change Cloth Coefficients");
            }
            using (new EditorGUI.DisabledScope(true))
            {
                GUILayout.BeginHorizontal(new GUILayoutOption[0]);
                if (num5 > 0)
                {
                    GUILayout.FlexibleSpace();
                    GUILayout.Label(num5 + " selected", new GUILayoutOption[0]);
                }
                else
                {
                    GUILayout.Label("Select cloth vertices to edit their constraints.", new GUILayoutOption[0]);
                    GUILayout.FlexibleSpace();
                }
                GUILayout.EndHorizontal();
            }
            if ((Event.current.type == EventType.KeyDown) && (Event.current.keyCode == KeyCode.Backspace))
            {
                for (int m = 0; m < coefficients.Length; m++)
                {
                    if (this.m_Selection[m])
                    {
                        switch (this.drawMode)
                        {
                            case DrawMode.MaxDistance:
                                coefficients[m].maxDistance = float.MaxValue;
                                break;

                            case DrawMode.CollisionSphereDistance:
                                goto Label_0304;
                        }
                    }
                    continue;
                Label_0304:
                    coefficients[m].collisionSphereDistance = float.MaxValue;
                }
                this.cloth.coefficients = coefficients;
                this.SetupSelectionMeshColors();
            }
        }