public TrackNodeCurve GetPreviousCurve(TrackNodeCurve current)
        {
            var index = GetTrackCurves.IndexOf(current);

            if (index - 1 < 0)
            {
                var previousCurve = current.SegmentModify.GetPreviousSegment(true);
                if (previousCurve != null)
                {
                    return(previousCurve.GetLastCurve);
                }
            }

            return(GetTrackCurves[index - 1]);
        }
        public TrackNodeCurve GetNextCurve(TrackNodeCurve current)
        {
            var index = GetTrackCurves.IndexOf(current);

            if (index + 1 >= GetTrackCurves.Count)
            {
                var nextSegment = current.SegmentModify.GetNextSegment(true);
                if (nextSegment != null)
                {
                    return(nextSegment.GetFirstCurve);
                }
                return(null);
            }

            return(GetTrackCurves[index + 1]);
        }