Skip to content
Commits on Oct 8, 2013
Commits on Sep 26, 2013
  1. @mbostock

    Merge branch '3.3.6'

    mbostock committed Sep 26, 2013
  2. @mbostock

    Update dependencies.

    mbostock committed Sep 26, 2013
  3. @mbostock
  4. @mbostock

    Don’t pollute an ordinal scale’s domain.

    Fixes #1550. By using the copy of the new scale (which we make anyway for a
    snapshot) we avoid polluting the scale’s domain with the old values when using
    the scale as the key function for the tick data-join.
    mbostock committed Sep 26, 2013
  5. @jasondavies

    Fix clipping bug for complex polygons.

    Intersection points are sorted along the clipping region edge relative
    to a particular point.  In the case of antimeridian clipping, this point
    is the South pole.  Previously, the first intersection was assumed to be
    an entering intersection, but this is not always the case.
    
    The fix is to see whether the clip region start point (the point
    relative to which sorting occurs) is inside or outside the polygon being
    drawn.  If it is inside, then the first intersection point must be
    outside, and so forth.
    
    The same applies to d3.geo.clipExtent.  Provision was already made for
    this, but this has now been optimised to use a single point instead of
    picking one of the four corners.
    
    Another optimisation was to reuse this clip region start point to
    determine whether to interpolate all the way around the clip region
    edge.  Previously, this was done by testing an arbitrary point in the
    clip region.
    
    The above fix seemed to have broken one of the tests, and this has been
    fixed by modifying the point-in-polygon routine slightly to handle
    points that might lie exactly on the polygon edge.
    
    Finally, I noticed a regression with the recent clipExtent fix, where a
    polygon incorrectly being marked as “clean” (no intersections) on a
    per-ring instead of per-polygon basis.
    jasondavies committed Sep 26, 2013
Commits on Sep 25, 2013
  1. @mbostock
  2. @mbostock

    Optimize hyperbolic functions.

    Not used much, but still an improvement. http://jsperf.com/hyperbolics
    mbostock committed Sep 25, 2013
  3. @mbostock

    Move benchmark.

    mbostock committed Sep 25, 2013
  4. @mbostock

    Yay τ!

    mbostock committed Sep 25, 2013
  5. @mbostock

    Consolidate.

    mbostock committed Sep 25, 2013
  6. @jasondavies

    Optimise.

    jasondavies committed Sep 25, 2013
  7. @jasondavies
  8. @mbostock

    Prevent tick at t = 0.

    This is especially important for a zero-duration transition, where the duration
    is actually one millisecond, and we want the only tick to be at t = 1.
    mbostock committed Sep 24, 2013
  9. @mbostock

    Simplify.

    mbostock committed Sep 24, 2013
Commits on Sep 24, 2013
  1. @jasondavies

    Perform winding order check on unrotated polygons.

    We remove the rotation step that occurred prior to clipping, so that
    clipping processes unrotated polygons.  Note that clip regions are
    defined relative to the rotated globe, so clipping now needs a rotation
    parameter.
    
    Rather than moving the rotation step so it occurs after clipping, the
    rotation occurs as part of clipping, using the rotation parameter to
    rotate streamed points.  Alternatively, points could be clipped against
    a rotated clip region, and then subsequently rotated as a separate step,
    but this seems slightly less efficient.
    
    Fixes #1453.
    jasondavies committed Sep 24, 2013
  2. @jasondavies

    Simplify.

    jasondavies committed Sep 24, 2013
  3. @jasondavies

    Fix clipExtent bug.

    If a polygon does not intersect with the extent, but has one or more
    rings inside the extent, then the extent should be checked to see
    whether it is inside the polygon: if so, an additional exterior ring is
    generated.
    
    Previously, this check was only made if there were no visible rings at
    all.
    
    Fixes an issue noticed in #1453.
    jasondavies committed Sep 24, 2013
Commits on Sep 21, 2013
  1. @mbostock
  2. @mbostock

    Restrict implicit domains to explicit ranges.

    When an ordinal scale’s range is explicitly defined as an array of values, we
    can build the domain implicitly by progressively assigning values from the
    range; this is commonly done with color palettes, for example.
    
    However, when an ordinal scale’s range is rather implied by chopping a
    continuous range into a series of points or bands, then the domain must be
    specified explicitly: for the scale to be consistent, we need to know the
    cardinality of the domain to compute the implied range values.
    
    Thus, it only makes sense to extend the domain implicitly when the range is
    specified explicitly. Fixes #1536 #1535.
    mbostock committed Sep 21, 2013
Commits on Sep 19, 2013
  1. @mbostock

    Merge branch '3.3.4'

    mbostock committed Sep 18, 2013
  2. @mbostock
  3. @mbostock
  4. @mbostock
  5. @mbostock

    Fix crash in ticks for empty d3.time.scale domain.

    Fixes #1525. This was only an issue because the domain is extended by one
    millisecond when it is empty (for an inclusive upper bound).
    mbostock committed Sep 18, 2013
  6. @mbostock

    Use the scale as the tick key function.

    Previously we were using string coercion as the key function for axis ticks.
    However, when the stringified value of the tick does not fully capture the
    representation (such as a date with millisecond precision, whose string form
    only has second precision; fixes #1529), string coercion is insufficient.
    
    Fortunately, there is an equivalently-simple key function for tick identity: the
    scale! If the scale does not return a unique position for the given tick, then
    the tick would be overlapping, so it serves perfectly as the key function.
    mbostock committed Sep 18, 2013
Commits on Sep 16, 2013
  1. @jasondavies

    Fix point-in-polygon for multiple polar rings.

    Instead of detecting if any single polygon ring winds around a pole, we
    consider the cumulative winding of all polygon rings together.  This is
    consistent with the area calculation, which considers the cumulative
    area total of all rings.
    
    This fixes #1521: an issue with the Hammer Retroazimuthal projection,
    which uses such a polygon with two rings, covering most of the globe.
    
    In addition, drop the special handling of points at the south pole,
    which might have been there to pass an incorrect test: a CCW triangle
    touching the south pole, which was probably incorrectly thought to be
    clockwise.  This fixes an issue with a “stripe” polygon rotated so that
    a point is at the south pole, mentioned in #1453.
    jasondavies committed Sep 16, 2013
Commits on Sep 5, 2013
  1. @jasondavies

    Remove dead code.

    This line doesn’t appear to do anything useful, since the parent node is
    now saved in the closure.  Previously, this line checked to see if
    target.parentNode was null, since this would cause a crash when
    computing the relative position.
    jasondavies committed Sep 5, 2013
  2. @jasondavies
  3. @mbostock

    Merge branch '3.3.3'

    mbostock committed Sep 5, 2013
  4. @mbostock
  5. @mbostock
  6. @mbostock

    Remove redundant code in d3.svg.brush.

    Now that d3.mouse does the “right thing” for touch events, we don’t need code
    that handles touch events specially.
    mbostock committed Sep 5, 2013
  7. @mbostock

    If present, use changedTouches[0] for d3.mouse.

    Normally d3.mouse(this) is equivalent to d3.touches(this)[0] because the clientX
    and clientY properties of the event and the first touch are the same. However,
    on touchend the touches list is empty, and the clientX and clientY are 0! So
    instead it seems safer to use the position of the first changed touch for the
    default location of a touch event.
    mbostock committed Sep 5, 2013
  8. @mbostock

    Add a few comments.

    mbostock committed Sep 4, 2013
Something went wrong with that request. Please try again.