public static Line ReverseTransform(this ITransformation transformation, Line line)
 {
     return new Line
     {
         Start = transformation.ReverseTransform(line.Start),
         Finish = transformation.ReverseTransform(line.Finish)
     };
 }
        public static IEnumerable<Line> GetLines(this IFrameable frameable)
        {
            var lines = new List<Line>();

            var tracePoints = frameable.TracePoints;
            for (var i = 1; i < tracePoints.Length; i++)
            {
                var start = tracePoints[i - 1];
                var finish = tracePoints[i];

                if (!finish.Trace)
                {
                    continue;
                }

                var line = new Line(start.Point, finish.Point);
                lines.Add(line);

            }

            return lines
                .Select(line => frameable.Transformation.ReverseTransform(line)); ;
        }
 public LineViewModel(Line line)
 {
     Line = line;
 }