private void PlaceLines(TrackWriter trk, bool preview) { if (controlPoints.Count > 1) { List <Vector2> curvePoints = GameRenderer.GenerateBezierCurve(controlPoints.ToArray(), Settings.Bezier.Resolution).ToList(); if (!preview) { game.Track.UndoManager.BeginAction(); } for (int i = 1; i < curvePoints.Count; i++) { Vector2d _start = (Vector2d)curvePoints[i - 1]; Vector2d _end = (Vector2d)curvePoints[i]; if ((_end - _start).Length >= MINIMUM_LINE) { var added = CreateLine(trk, _start, _end, _addflip, Snapped, EnableSnap); workingLines.Add(added); } } game.Track.NotifyTrackChanged(); if (!preview) { game.Track.UndoManager.EndAction(); } } game.Invalidate(); }