private void OnDrawPassPoint(Rect rect, int index, bool isActive, bool isFocus)
        {
            var space = _state.GetProperty <Space>(COORDS_SYSTEM_KEY);

            var passPoint = _pointsList.serializedProperty.GetArrayElementAtIndex(index);

            int linesPerVec3Field = 1 + System.Convert.ToInt32(Screen.width < MIN_SINGLE_LINE_SCREEN_WIDTH);

            var pointRect = new Rect(rect);

            pointRect.height            = EditorGUIUtility.singleLineHeight * linesPerVec3Field;
            pointRect.y                += 2;
            EditorGUIUtility.labelWidth = POINTS_LABEL_WIDTH;
            Vector3 point    = _path.GetPointAt(index, space);
            Vector3 newPoint = EditorGUI.Vector3Field(pointRect, new GUIContent($"Point {index}"), point);

            EditorGUIUtility.labelWidth = 0;
            if (point != newPoint)
            {
                _path.ChangePointAt(index, newPoint, space);
            }

            var lineRect = new Rect(pointRect);

            lineRect.height = 2;
            lineRect.y     += pointRect.height + 1;
            GUI.Box(lineRect, GUIContent.none, _separatorLineStyle);

            var continuityRect = new Rect(lineRect);

            continuityRect.height = EditorGUIUtility.singleLineHeight;
            continuityRect.y     += lineRect.height;
            var continuity    = _path.GetContinuityOfPointAt(index);
            var newContinuity = (CubicPath.JointContinuity)EditorGUI.EnumPopup(continuityRect, "Continuity", continuity);

            if (continuity != newContinuity)
            {
                _path.ChangeContinuityOfPointAt(index, newContinuity);
            }

            EditorGUI.BeginDisabledGroup(!_state.GetProperty <bool>(EDIT_INTERP_KEY));
            {
                var interpolantRect = new Rect(continuityRect);
                interpolantRect.height = EditorGUIUtility.singleLineHeight * linesPerVec3Field;
                interpolantRect.y     += continuityRect.height;

                EditorGUIUtility.labelWidth = POINTS_LABEL_WIDTH;
                Vector3 leftValue    = _path.GetLeftInterpolantOf(index, space);
                Vector3 newLeftValue = EditorGUI.Vector3Field(interpolantRect, "L. Interp", leftValue);
                interpolantRect.y += interpolantRect.height;
                Vector3 rightValue    = _path.GetRightInterpolantOf(index, space);
                Vector3 newRightValue = EditorGUI.Vector3Field(interpolantRect, "R. Interp", _path.GetRightInterpolantOf(index, space));
                EditorGUIUtility.labelWidth = 0;
                if (leftValue != newLeftValue)
                {
                    _path.ChangeLeftInterpolantOf(index, newLeftValue, space);
                }
                if (rightValue != newRightValue)
                {
                    _path.ChangeRightInterpolantOf(index, newRightValue, space);
                }
            }
            EditorGUI.EndDisabledGroup();
        }