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

Function linePoint

external/.d3.js:10061–10108  ·  view source on GitHub ↗
(lambda, phi)

Source from the content-addressed store, hash-verified

10059}
10060
10061function linePoint(lambda, phi) {
10062 var p = cartesian([lambda * radians, phi * radians]);
10063 if (p0) {
10064 var normal = cartesianCross(p0, p),
10065 equatorial = [normal[1], -normal[0], 0],
10066 inflection = cartesianCross(equatorial, normal);
10067 cartesianNormalizeInPlace(inflection);
10068 inflection = spherical(inflection);
10069 var delta = lambda - lambda2,
10070 sign = delta > 0 ? 1 : -1,
10071 lambdai = inflection[0] * degrees * sign,
10072 phii,
10073 antimeridian = abs$1(delta) > 180;
10074 if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
10075 phii = inflection[1] * degrees;
10076 if (phii > phi1) phi1 = phii;
10077 } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
10078 phii = -inflection[1] * degrees;
10079 if (phii < phi0) phi0 = phii;
10080 } else {
10081 if (phi < phi0) phi0 = phi;
10082 if (phi > phi1) phi1 = phi;
10083 }
10084 if (antimeridian) {
10085 if (lambda < lambda2) {
10086 if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;
10087 } else {
10088 if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;
10089 }
10090 } else {
10091 if (lambda1 >= lambda0$1) {
10092 if (lambda < lambda0$1) lambda0$1 = lambda;
10093 if (lambda > lambda1) lambda1 = lambda;
10094 } else {
10095 if (lambda > lambda2) {
10096 if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;
10097 } else {
10098 if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;
10099 }
10100 }
10101 }
10102 } else {
10103 ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);
10104 }
10105 if (phi < phi0) phi0 = phi;
10106 if (phi > phi1) phi1 = phi;
10107 p0 = p, lambda2 = lambda;
10108}
10109
10110function boundsLineStart() {
10111 boundsStream$2.point = linePoint;

Callers 3

boundsRingPointFunction · 0.85
lineEndFunction · 0.85
ringPointFunction · 0.85

Calls 14

cartesianFunction · 0.85
cartesianCrossFunction · 0.85
sphericalFunction · 0.85
angleFunction · 0.85
visibleFunction · 0.85
projectFunction · 0.85
resampleLineToFunction · 0.85
maxMethod · 0.80
minMethod · 0.80
clipLineFunction · 0.70
lineStartMethod · 0.45

Tested by

no test coverage detected