UnityEditor.ClothInspector.GetMouseVertex C# (CSharp) Method

GetMouseVertex() private method

private GetMouseVertex ( Event e ) : int
e UnityEngine.Event
return int
        private int GetMouseVertex(Event e)
        {
            if (Tools.current != Tool.None)
            {
                return -1;
            }
            SkinnedMeshRenderer component = this.cloth.GetComponent<SkinnedMeshRenderer>();
            Vector3[] normals = this.cloth.normals;
            ClothSkinningCoefficient[] coefficients = this.cloth.coefficients;
            Ray ray = HandleUtility.GUIPointToWorldRay(e.mousePosition);
            float num2 = 1000f;
            int num3 = -1;
            Quaternion rotation = component.actualRootBone.rotation;
            for (int i = 0; i < coefficients.Length; i++)
            {
                Vector3 lhs = this.m_LastVertices[i] - ray.origin;
                float sqrMagnitude = Vector3.Cross(lhs, ray.direction).sqrMagnitude;
                if (((Vector3.Dot((Vector3) (rotation * normals[i]), Camera.current.transform.forward) <= 0f) || this.state.ManipulateBackfaces) && ((sqrMagnitude < num2) && (sqrMagnitude < 0.0025f)))
                {
                    num2 = sqrMagnitude;
                    num3 = i;
                }
            }
            return num3;
        }