export force.drag instance so user can access it by calling force.drag() with no arguments; the drag events have been namespaced as <event>.force, similar to the other force events: mouseover.force and mouseout.force.
force layout: properly UNSET the .fixed bits: user may be using further bits and those should be kept intact.
Add area-weighted geographic polygon centroids.

This generalises the centre of mass formula given in:

  J. E. Brock, The Inertia Tensor for a Spherical Triangle,
  J. Applied Mechanics 42, 239 (1975)
Add some more polygon tests for d3.geo.centroid.
Move tick class to the g element. Fixes #1016.
Support clipping against a line segment.
Add d3.geo.clip.
Enter domain path prior to update transition.

The update transition must be created after the domain path is entered, or else
the entering domain path will not be part of the update transition, and thus
will not have the "d" attribute computed correctly. Fixes #1022. This bug was
introduced by 8ee6c126bcdc3f9965457b411794e9ae7c5972ec to squash a warning!
Simplify d3.random.logNormal. Fixes #787.
Add projection.clipGeometry.

Eventually, this will allow clipping against arbitrary GeoJSON
geometries:

 * [Multi]Point: infinitesimally small polygon(s).
 * [Multi]LineString: infinitesimally thin line(s).
 * [Multi]Polygon: polygon(s).
 * GeometryCollection: a collection of geometries, potentially of
   different types.

For now, only a single great arc is supported i.e. a LineString with two
coordinates.
Return ambiguous, rather than undefined, centroid.

This is a fix for #1039, and related to #1037 #1011.
Optimise d3.geo.area.

This incorporates two enhancements:

1. A simpler formulation for the area of a spherical triangle with one
   vertex at the south pole.
2. Instead of calling atan2 for every point, we use the identity:
     ∑ arg(z) = arg(∏ z),
   where z is a complex number, and only call atan2 once for each
   polygon, instead opting for a cheaper complex number multiplication
   for each point.

This is around 3x faster than the old implementation as measured by the
included benchmark.
Use captured references for document and window.

This avoids an inconsistency (discussed in #1044) when using D3 inside Node.js,
where D3 internally creates a JSDOM document during initialization, but then
subsequently depends on the current global document, which is not exposed. D3
now always refers to the global document at the time of initialization, and
does not depend on the current global document or window.
Avoid Prototype’s broken array.filter.

While I abhor Prototype’s practice of replacing native methods with broken non-
native ones, this is a painless fix that allows us to use d3.geom.voronoi on
nytimes.com, which shamefully continues to use Prototype.
Add test case for tiny Polygon area.
Add d3.geo.length.
Merge branch 'force_layout_exports_drag' of https://github.com/GerHobbelt/d3 into fix-force-drag
Make sure drag behavior is instantiated.
Capture d3, as well.

This allows multiple instances of D3 to be loaded, or the d3 variable to be
renamed without breaking code. Fixes #1058.
Merge branch 'force_layout_keeps_userbits_intact' of https://github.com/GerHobbelt/d3 into fix-force-drag