MCPcopy Create free account
hub / github.com/plotly/plotly.js / plotDrag

Function plotDrag

src/plots/ternary/ternary.js:695–749  ·  view source on GitHub ↗
(dx, dy)

Source from the content-addressed store, hash-verified

693 }
694
695 function plotDrag(dx, dy) {
696 var dxScaled = dx / _this.xaxis._m;
697 var dyScaled = dy / _this.yaxis._m;
698 mins = {
699 a: mins0.a - dyScaled,
700 b: mins0.b + (dxScaled + dyScaled) / 2,
701 c: mins0.c - (dxScaled - dyScaled) / 2
702 };
703 var minsorted = [mins.a, mins.b, mins.c].sort(Lib.sorterAsc);
704 var minindices = {
705 a: minsorted.indexOf(mins.a),
706 b: minsorted.indexOf(mins.b),
707 c: minsorted.indexOf(mins.c)
708 };
709 if(minsorted[0] < 0) {
710 if(minsorted[1] + minsorted[0] / 2 < 0) {
711 minsorted[2] += minsorted[0] + minsorted[1];
712 minsorted[0] = minsorted[1] = 0;
713 } else {
714 minsorted[2] += minsorted[0] / 2;
715 minsorted[1] += minsorted[0] / 2;
716 minsorted[0] = 0;
717 }
718 mins = {
719 a: minsorted[minindices.a],
720 b: minsorted[minindices.b],
721 c: minsorted[minindices.c]
722 };
723 dy = (mins0.a - mins.a) * _this.yaxis._m;
724 dx = (mins0.c - mins.c - mins0.b + mins.b) * _this.xaxis._m;
725 }
726
727 // move the data (translate, don't redraw)
728 var plotTransform = strTranslate(_this.x0 + dx, _this.y0 + dy);
729 _this.plotContainer.selectAll('.scatterlayer,.maplayer')
730 .attr('transform', plotTransform);
731
732 var plotTransform2 = strTranslate(-dx, -dy);
733 _this.clipDefRelative.select('path').attr('transform', plotTransform2);
734
735 // move the ticks
736 _this.aaxis.range = [mins.a, _this.sum - mins.b - mins.c];
737 _this.baxis.range = [_this.sum - mins.a - mins.c, mins.b];
738 _this.caxis.range = [_this.sum - mins.a - mins.b, mins.c];
739
740 _this.drawAxes(false);
741
742 if(_this._hasClipOnAxisFalse) {
743 _this.plotContainer
744 .select('.scatterlayer').selectAll('.trace')
745 .call(Drawing.hideOutsideRangePoints, _this);
746 }
747
748 gd.emit('plotly_relayouting', makeUpdate(mins));
749 }
750
751 function dragDone() {
752 Registry.call('_guiRelayout', gd, makeUpdate(mins));

Callers

nothing calls this directly

Calls 1

makeUpdateFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…