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();
 }