MCPcopy Index your code
hub / github.com/plotly/plotly.js / makeUpdateTextInterpolator

Function makeUpdateTextInterpolator

src/traces/sunburst/plot.js:409–498  ·  view source on GitHub ↗
(pt)

Source from the content-addressed store, hash-verified

407 }
408
409 function makeUpdateTextInterpolator(pt) {
410 var prev0 = prevLookup[helpers.getPtId(pt)];
411 var prev;
412 var transform = pt.transform;
413
414 if (prev0) {
415 prev = prev0;
416 } else {
417 prev = {
418 rpx1: pt.rpx1,
419 transform: {
420 textPosAngle: transform.textPosAngle,
421 scale: 0,
422 rotate: transform.rotate,
423 rCenter: transform.rCenter,
424 x: transform.x,
425 y: transform.y
426 }
427 };
428
429 // for new pts:
430 if (prevEntry) {
431 // if trace was visible before
432 if (pt.parent) {
433 if (nextX1ofPrevEntry) {
434 // if new branch, twist it in clockwise or
435 // counterclockwise which ever is shorter to
436 // its final angle
437 var a = pt.x1 > nextX1ofPrevEntry ? 2 * Math.PI : 0;
438 prev.x0 = prev.x1 = a;
439 } else {
440 // if leaf
441 Lib.extendFlat(prev, interpX0X1FromParent(pt));
442 }
443 } else {
444 // if new root-node
445 prev.x0 = prev.x1 = baseX;
446 }
447 } else {
448 // on new traces
449 prev.x0 = prev.x1 = baseX;
450 }
451 }
452
453 var textPosAngleFn = interpolate(prev.transform.textPosAngle, pt.transform.textPosAngle);
454 var rpx1Fn = interpolate(prev.rpx1, pt.rpx1);
455 var x0Fn = interpolate(prev.x0, pt.x0);
456 var x1Fn = interpolate(prev.x1, pt.x1);
457 var scaleFn = interpolate(prev.transform.scale, transform.scale);
458 var rotateFn = interpolate(prev.transform.rotate, transform.rotate);
459
460 // smooth out start/end from entry, to try to keep text inside sector
461 // while keeping transition smooth
462 var pow = transform.rCenter === 0 ? 3 : prev.transform.rCenter === 0 ? 1 / 3 : 1;
463 var _rCenterFn = interpolate(prev.transform.rCenter, transform.rCenter);
464 var rCenterFn = function (t) {
465 return _rCenterFn(Math.pow(t, pow));
466 };

Callers 2

plotOneFunction · 0.70

Calls 9

interpX0X1FromParentFunction · 0.85
interpolateFunction · 0.85
x0FnFunction · 0.85
x1FnFunction · 0.85
rCenterFnFunction · 0.85
rx2pxFunction · 0.85
recordMinTextSizeFunction · 0.85
getTargetXFunction · 0.85
getTargetYFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…