def delete_if
      reset_meta_data
      keep_points = []
      last_pt = nil
      points.each do |pt|
        next if yield(pt)
        keep_points << pt
        update_meta_data(pt, last_pt)
        last_pt = pt
      end
      @points = keep_points
    end
def delete_if
      reset_meta_data
      keep_points = []
      last_pt = nil
      points.each do |pt|
        next if yield(pt)
        keep_points << pt
        update_meta_data(pt, last_pt)
        last_pt = pt
      end
      @points = keep_points
    end
A handy method that deletes points based on a block that is passed in.
 If the passed-in block returns true when given a point, then that point
 is deleted.  For example:
         delete_if{ |pt| area.contains?(pt) }