MCPcopy Create free account
hub / github.com/breck7/scroll / bounds

Function bounds

external/.d3.js:10158–10193  ·  view source on GitHub ↗
(feature)

Source from the content-addressed store, hash-verified

10156}
10157
10158function bounds(feature) {
10159 var i, n, a, b, merged, deltaMax, delta;
10160
10161 phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity);
10162 ranges = [];
10163 geoStream(feature, boundsStream$2);
10164
10165 // First, sort ranges by their minimum longitudes.
10166 if (n = ranges.length) {
10167 ranges.sort(rangeCompare);
10168
10169 // Then, merge any ranges that overlap.
10170 for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {
10171 b = ranges[i];
10172 if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {
10173 if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
10174 if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
10175 } else {
10176 merged.push(a = b);
10177 }
10178 }
10179
10180 // Finally, find the largest gap between the merged ranges.
10181 // The final bounding box will be the inverse of this gap.
10182 for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {
10183 b = merged[i];
10184 if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1];
10185 }
10186 }
10187
10188 ranges = range = null;
10189
10190 return lambda0$1 === Infinity || phi0 === Infinity
10191 ? [[NaN, NaN], [NaN, NaN]]
10192 : [[lambda0$1, phi0], [lambda1, phi1]];
10193}
10194
10195var W0, W1,
10196 X0$1, Y0$1, Z0$1,

Callers

nothing calls this directly

Calls 4

geoStreamFunction · 0.85
rangeContainsFunction · 0.85
angleFunction · 0.85
sortMethod · 0.80

Tested by

no test coverage detected