public TrackNodeCurve getPreviousCurve(TrackNodeCurve current)
		{
			int index = nodes.IndexOf (current);
			if (index - 1 < 0) {
				var previousCurve = current.SegmentModify.GetPreviousSegment (true);
				if (previousCurve != null)
					return previousCurve.GetLastCurve;
			}	
			return nodes [index - 1];
		}
		public TrackNodeCurve getNextCurve(TrackNodeCurve current)
		{

			int index = nodes.IndexOf (current);
			if (index + 1 >= nodes.Count) {
				var nextSegment = current.SegmentModify.GetNextSegment (true);
				if (nextSegment != null)
					return nextSegment.GetFirstCurve;
				return null;
			}	
			return nodes [index + 1];
		}