Skip to content

Commit 76400ac

Browse files
committed
Merge branch 'release'
2 parents f67e895 + feb1da1 commit 76400ac

17 files changed

Lines changed: 336 additions & 76 deletions

d3.geom.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,16 +192,16 @@ d3.geom.polygon = function(coordinates) {
192192

193193
coordinates.centroid = function(k) {
194194
var i = -1,
195-
n = coordinates.length - 1,
195+
n = coordinates.length,
196196
x = 0,
197197
y = 0,
198198
a,
199-
b,
199+
b = coordinates[n - 1],
200200
c;
201201
if (!arguments.length) k = -1 / (6 * coordinates.area());
202202
while (++i < n) {
203-
a = coordinates[i];
204-
b = coordinates[i + 1];
203+
a = b;
204+
b = coordinates[i];
205205
c = a[0] * b[1] - b[0] * a[1];
206206
x += (a[0] + b[0]) * c;
207207
y += (a[1] + b[1]) * c;

d3.geom.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

d3.js

Lines changed: 56 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ try {
1010
d3_style_setProperty.call(this, name, value + "", priority);
1111
};
1212
}
13-
d3 = {version: "2.7.3"}; // semver
13+
d3 = {version: "2.7.4"}; // semver
1414
var d3_array = d3_arraySlice; // conversion for NodeLists
1515

1616
function d3_arrayCopy(pseudoarray) {
@@ -489,7 +489,7 @@ d3.dispatch = function() {
489489
var dispatch = new d3_dispatch(),
490490
i = -1,
491491
n = arguments.length;
492-
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event();
492+
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
493493
return dispatch;
494494
};
495495

@@ -507,22 +507,23 @@ d3_dispatch.prototype.on = function(type, listener) {
507507

508508
return arguments.length < 2
509509
? this[type].on(name)
510-
: (this[type].on(name, listener), this);
510+
: this[type].on(name, listener);
511511
};
512512

513-
function d3_dispatch_event() {
513+
function d3_dispatch_event(dispatch) {
514514
var listeners = [],
515515
listenerByName = {};
516516

517-
function dispatch() {
517+
function event() {
518518
var z = listeners, // defensive reference
519519
i = -1,
520520
n = z.length,
521521
l;
522522
while (++i < n) if (l = z[i].on) l.apply(this, arguments);
523+
return dispatch;
523524
}
524525

525-
dispatch.on = function(name, listener) {
526+
event.on = function(name, listener) {
526527
var l, i;
527528

528529
// return the current listener, if any
@@ -543,7 +544,7 @@ function d3_dispatch_event() {
543544
return dispatch;
544545
};
545546

546-
return dispatch;
547+
return event;
547548
};
548549
// TODO align
549550
d3.format = function(specifier) {
@@ -894,7 +895,54 @@ d3.interpolateString = function(a, b) {
894895
};
895896

896897
d3.interpolateTransform = function(a, b) {
897-
return d3.interpolateString(d3.transform(a) + "", d3.transform(b) + "");
898+
var s = [], // string constants and placeholders
899+
q = [], // number interpolators
900+
n,
901+
A = d3.transform(a),
902+
B = d3.transform(b),
903+
ta = A.translate,
904+
tb = B.translate,
905+
ra = A.rotate,
906+
rb = B.rotate,
907+
wa = A.skew,
908+
wb = B.skew,
909+
ka = A.scale,
910+
kb = B.scale;
911+
912+
if (ta[0] != tb[0] || ta[1] != tb[1]) {
913+
s.push("translate(", null, ",", null, ")");
914+
q.push({i: 1, x: d3.interpolateNumber(ta[0], tb[0])}, {i: 3, x: d3.interpolateNumber(ta[1], tb[1])});
915+
} else if (tb[0] || tb[1]) {
916+
s.push("translate(" + tb + ")");
917+
} else {
918+
s.push("");
919+
}
920+
921+
if (ra != rb) {
922+
q.push({i: s.push(s.pop() + "rotate(", null, ")") - 2, x: d3.interpolateNumber(ra, rb)});
923+
} else if (rb) {
924+
s.push(s.pop() + "rotate(" + rb + ")");
925+
}
926+
927+
if (wa != wb) {
928+
q.push({i: s.push(s.pop() + "skewX(", null, ")") - 2, x: d3.interpolateNumber(wa, wb)});
929+
} else if (wb) {
930+
s.push(s.pop() + "skewX(" + wb + ")");
931+
}
932+
933+
if (ka[0] != kb[0] || ka[1] != kb[1]) {
934+
n = s.push(s.pop() + "scale(", null, ",", null, ")");
935+
q.push({i: n - 4, x: d3.interpolateNumber(ka[0], kb[0])}, {i: n - 2, x: d3.interpolateNumber(ka[1], kb[1])});
936+
} else if (kb[0] != 1 || kb[1] != 1) {
937+
s.push(s.pop() + "scale(" + kb + ")");
938+
}
939+
940+
n = q.length;
941+
return function(t) {
942+
var i = -1, o;
943+
while (++i < n) s[(o = q[i]).i] = o.x(t);
944+
return s.join("");
945+
};
898946
};
899947

900948
d3.interpolateRgb = function(a, b) {
@@ -2458,7 +2506,6 @@ function d3_scale_linearNice(dx) {
24582506
};
24592507
}
24602508

2461-
// TODO Dates? Ugh.
24622509
function d3_scale_linearTickRange(domain, m) {
24632510
var extent = d3_scaleExtent(domain),
24642511
span = extent[1] - extent[0],

d3.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)