private Vector3 ShowPoint(int index)
    {
        Vector3 point      = t.TransformPoint(spline.GetPoint(index));
        float   firstPoint = index == 0 ? 2f : 1f;

        if (Handles.Button(point, q, 0.2f * firstPoint, 0.6f, Handles.DotCap))
        {
            selectedIndex = index;
        }

        Handles.color = Color.gray;
        if (selectedIndex == index)
        {
            EditorGUI.BeginChangeCheck();
            point = Handles.DoPositionHandle(point, q);
            if (EditorGUI.EndChangeCheck())
            {
                Undo.RecordObject(spline, "CatmullRom Moved");
                EditorUtility.SetDirty(spline);
                spline.SetPoint(index, t.InverseTransformPoint(point));
            }
        }
        return(point);
    }