title: How do you get selected datums in brush "brush" event handler?
body: <p>I am attempting to create a vertical timeline using d3.js that is linked to a map so that any item(s) contained in the brush will also be displayed in the map. Kind of like <a href="http://code.google.com/p/timemap/" rel="nofollow">http://code.google.com/p/timemap/</a> but with d3 instead of SIMILE and a vertical timeline rather than horizontal.</p>
  
  <p>I can successfully create an svg with vertical bars representing time ranges, legend, ticks, and a brush. The function handling brush events is getting called and I can obtain the extent which contains the y-axis start and stop of the brush. So far so good... </p>
  
  <p>How does one obtain the datums covered by the brush? I could iterate over my initial data set looking for items within the extent range but that feels hacky. Is there a d3 specific way of getting the datums highlighted by a brush?</p>
  
  <pre><code>var data = [
    {
       start: 1375840800,
       stop: 1375844400,
       lat: 0.0,
       lon: 0.0
    }
  ];
  var min = 1375833600; //Aug 7th 00:00:00
  var max = 1375919999; //Aug 7th 23:59:59
  var yScale = d3.time.scale.utc().domain([min, max]).range([0, height])
  var brush = d3.svg.brush().y(yScale).on("brush", brushmove);
  
  var timeline = d3.select("#myDivId").append("svg").attr("width", width).attr("height", height);
  
  timeline.selectAll("rect")
    .data(data)
    .enter().append("rect")
      .attr("x", function(datum, index) {return index * barSize})
      .attr("y", function(datum, index) {return yScale(datum.start)})
      .attr("height", function(datum, index) {return yScale(datum.end) - yScale(datum.start)})
      .attr("width", function() {return barSize})
  
  timeline.append("g")
    .attr("class", "brush")
    .call(brush)
      .selectAll("rect")
      .attr("width", width);
  
  function brushmove() {
    var extent = brush.extent();
    //How do I get the datums contained inside the extent????
  }
  </code></pre>