private static void PaintSlopedLine2(Canvass canvass, SlopedLine2 slopedLine2, Model model)
 {
     slopedLine2.Segments.Each((segment, i) => {
         var c = GetLineChar(slopedLine2.GetDirectionOf(i), segment.Type);
         PaintLineOrCross(canvass, segment.Pos, c, slopedLine2.Id, model);
     });
 }
        public State Execute(State state)
        {
            var line = new SlopedLine2(pos);

            state.Model.Objects.Add(line);
            state.SelectedId           = null;
            state.SelectedIndexInModel = null;
            return(state);
        }
        // todo drag lines up/down

        private static SlopedLine2 GetLine(params Coord[] from)
        {
            var line = new SlopedLine2(from.First());

            foreach (var coord in from.Skip(1))
            {
                line.Segments.Add(new SlopedLine2.SlopedSegment2(coord, SegmentType.Line));
            }
            return(line);
        }