         points.push point 
 
 
-  # Filter down to the points included in the selection opinions, if set. 
+  # Filter down to the points included in the selected opinions, if set. 
   opinion_views = fetch('opinion_views')
   if opinion_views.active_views.single_opinion_selected
     opinions = [opinion_views.active_views.single_opinion_selected.opinion] 

    opinions = (o for o in opinions when salience[o.user.key or o.user] == 1)
    filtered = true

  # order points by resonance to users in view.    
  point_inclusions_per_point = {} # map of points to including users
  _.each opinions, (opinion_key) =>

  #     if fetch(point).hide_name
  #       delete point_inclusions_per_point[point]

  # really ugly, but if we're hovering over point includers, turning on the point includer filter, 
  # the points will automatically re-sort, causing flickering, unless we some how undo the auto 
  # sorting caused by the point includer filter
  active_views = _.without Object.keys(opinion_views.active_views), 'point_includers'
  sort_key = JSON.stringify {proposal:proposal.key, valence, sort_field, filter_included, show_all_points, views: active_views, pnts: (pnt.key for pnt in points)}
  if sort_key of stored_points_order && opinion_views.active_views.point_includers
    points = stored_points_order[sort_key]
  else 
    points = (pnt for pnt in points when (pnt.key of point_inclusions_per_point) || (TWO_COL() && pnt.key in included_points))

    # Sort points based on resonance with selected users, or custom sort_field
    sort = (pnt) ->
      if filtered
        -point_inclusions_per_point[pnt.key] 
      else
        -pnt[sort_field]


    points = _.sortBy points, sort
    stored_points_order[sort_key] = points

  (pnt.key for pnt in points)


