code: def within_line(self, viewer, points, p_start, p_stop, canvas_radius):
          
          scale_x, scale_y = viewer.get_scale_xy()
          new_radius = canvas_radius * 1.0 / min(scale_x, scale_y)
  
          return self.point_within_line(points, p_start, p_stop, new_radius)
docs: Points `points` and line endpoints `p_start`, `p_stop` are in
          data coordinates.
          Return True for points within the line defined by a line from
          p_start to p_end and within `canvas_radius`.
          The distance between points is scaled by the viewer's canvas scale.