private void  FindActiveControls(Ferr2DPath aPath, Matrix4x4 aTransform, Matrix4x4 aInvTransform)
    {
        if (Event.current.type == EventType.MouseMove)
        {
            Ray   r    = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
            Plane p    = new Plane(aTransform.MultiplyVector(Vector3.forward), aTransform.MultiplyPoint(Vector3.zero));
            float dist = 0;

            if (p.Raycast(r, out dist))
            {
                Vector2 mousePoint = aInvTransform.MultiplyPoint(r.GetPoint(dist));
                int     newSegment = aPath.GetClosestSegment(mousePoint);
                if (newSegment != activeSegment)
                {
                    activeSegment = newSegment;
                    SceneView.RepaintAll();
                }
                int newPoint = aPath.GetClosestControlPoint(mousePoint);
                if (newPoint != activePoint)
                {
                    activePoint = newPoint;
                    SceneView.RepaintAll();
                }
            }
        }
    }