From fbf682d5fac8da8ec32231acc988c4c80fe617f7 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Sat, 20 Jun 2015 10:28:49 -0700 Subject: [PATCH 1/9] [Plot] Support fixed duration Support a fixed duration for plots, WTD-1273. --- platform/features/plot/src/PlotController.js | 7 +-- .../plot/src/elements/PlotLineBuffer.js | 6 +-- .../features/plot/src/elements/PlotUpdater.js | 52 ++++++++++++++++--- 3 files changed, 52 insertions(+), 13 deletions(-) diff --git a/platform/features/plot/src/PlotController.js b/platform/features/plot/src/PlotController.js index fcce051968..106e0f94d5 100644 --- a/platform/features/plot/src/PlotController.js +++ b/platform/features/plot/src/PlotController.js @@ -99,7 +99,8 @@ define( updater = new PlotUpdater( handle, ($scope.axes[0].active || {}).key, - ($scope.axes[1].active || {}).key + ($scope.axes[1].active || {}).key, + 15000 // 15 seconds ); } @@ -161,7 +162,7 @@ define( // Unsubscribe when the plot is destroyed $scope.$on("$destroy", releaseSubscription); - + // Create a throttled update function scheduleUpdate = throttle(function () { modeOptions.getModeHandler().getSubPlots() @@ -248,4 +249,4 @@ define( return PlotController; } -); \ No newline at end of file +); diff --git a/platform/features/plot/src/elements/PlotLineBuffer.js b/platform/features/plot/src/elements/PlotLineBuffer.js index 2862a7e6be..e51e6e8a61 100644 --- a/platform/features/plot/src/elements/PlotLineBuffer.js +++ b/platform/features/plot/src/elements/PlotLineBuffer.js @@ -43,9 +43,9 @@ define( var mid = Math.floor((min + max) / 2), found = buffer[mid * 2]; - // Collisions are not wanted + // On collisions, insert at same index if (found === value) { - return -1; + return mid; } // Otherwise, if we're down to a single index, @@ -258,4 +258,4 @@ define( return PlotLineBuffer; } -); \ No newline at end of file +); diff --git a/platform/features/plot/src/elements/PlotUpdater.js b/platform/features/plot/src/elements/PlotUpdater.js index df7eef9abc..af19ef3eb3 100644 --- a/platform/features/plot/src/elements/PlotUpdater.js +++ b/platform/features/plot/src/elements/PlotUpdater.js @@ -42,8 +42,10 @@ define( * @param {TelemetryHandle} handle the handle to telemetry access * @param {string} domain the key to use when looking up domain values * @param {string} range the key to use when looking up range values + * @param {number} maxDuration maximum plot duration to display + * @param {number} maxPoints maximum number of points to display */ - function PlotUpdater(handle, domain, range, maxPoints) { + function PlotUpdater(handle, domain, range, fixedDuration, maxPoints) { var ids = [], lines = {}, dimensions = [0, 0], @@ -107,6 +109,7 @@ define( lines = next; } + // Initialize the domain offset, based on these observed values function initializeDomainOffset(values) { domainOffset = @@ -147,6 +150,35 @@ define( [dimensionsOf(domainExtrema), 2.0 ] : [dimensionsOf(domainExtrema), dimensionsOf(rangeExtrema)]; origin = [originOf(domainExtrema), originOf(rangeExtrema)]; + + if (fixedDuration !== undefined) { + origin[0] = Math.min( + origin[0], + origin[0] + dimensions[0] - fixedDuration + ); + dimensions[0] = Math.max(dimensions[0], fixedDuration); + } + } + } + + // Enforce maximum duration on all plot lines; not that + // domain extrema must be up-to-date for this to behave correctly. + function enforceDuration() { + var cutoff; + + function enforceDurationForBuffer(plotLineBuffer) { + var index = plotLineBuffer.findInsertionIndex(cutoff); + if (index > 0) { + plotLineBuffer.trim(index); + } + } + + if (fixedDuration !== undefined && + domainExtrema !== undefined && + (domainExtrema[1] - domainExtrema[0] > fixedDuration)) { + cutoff = domainExtrema[1] - fixedDuration; + bufferArray.forEach(enforceDurationForBuffer); + updateExtrema(); // Extrema may have changed now } } @@ -161,6 +193,12 @@ define( } } + // Update plot extremea and enforce maximum duration + function updateBounds() { + updateExtrema(); + enforceDuration(); + } + // Handle new telemetry data function update() { var objects = handle.getTelemetryObjects(); @@ -180,8 +218,8 @@ define( // Add new data objects.forEach(addPointFor); - // Finally, update extrema - updateExtrema(); + // Then, update extrema + updateBounds(); } // Add historical data for this domain object @@ -213,12 +251,12 @@ define( line.addSeries(series, domain, range); } - // Finally, update extrema - updateExtrema(); + // Update extrema + updateBounds(); } // Use a default MAX_POINTS if none is provided - maxPoints = maxPoints || MAX_POINTS; + maxPoints = maxPoints !== undefined ? maxPoints : MAX_POINTS; // Initially prepare state for these objects. // Note that this may be an empty array at this time, @@ -290,4 +328,4 @@ define( return PlotUpdater; } -); \ No newline at end of file +); From 215d3ffd728ede930c8543c52148f7928271bf4e Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Sat, 20 Jun 2015 10:39:35 -0700 Subject: [PATCH 2/9] [Plot] Tweak fixed-duration code Tweak fixed-duration code such that data is not lost; WTD-1273. --- .../features/plot/src/elements/PlotUpdater.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/platform/features/plot/src/elements/PlotUpdater.js b/platform/features/plot/src/elements/PlotUpdater.js index af19ef3eb3..99d6916b8d 100644 --- a/platform/features/plot/src/elements/PlotUpdater.js +++ b/platform/features/plot/src/elements/PlotUpdater.js @@ -146,17 +146,16 @@ define( return lineBuffer.getRangeExtrema(); }).reduce(reduceExtrema); + // Calculate best-fit dimensions dimensions = (rangeExtrema[0] === rangeExtrema[1]) ? [dimensionsOf(domainExtrema), 2.0 ] : [dimensionsOf(domainExtrema), dimensionsOf(rangeExtrema)]; origin = [originOf(domainExtrema), originOf(rangeExtrema)]; + // ...then enforce a fixed duration if needed if (fixedDuration !== undefined) { - origin[0] = Math.min( - origin[0], - origin[0] + dimensions[0] - fixedDuration - ); - dimensions[0] = Math.max(dimensions[0], fixedDuration); + origin[0] = origin[0] + dimensions[0] - fixedDuration; + dimensions[0] = fixedDuration; } } } @@ -169,7 +168,9 @@ define( function enforceDurationForBuffer(plotLineBuffer) { var index = plotLineBuffer.findInsertionIndex(cutoff); if (index > 0) { - plotLineBuffer.trim(index); + // Leave one point untrimmed, such that line will + // continue off left edge of visible plot area. + plotLineBuffer.trim(index - 1); } } @@ -196,7 +197,10 @@ define( // Update plot extremea and enforce maximum duration function updateBounds() { updateExtrema(); - enforceDuration(); + // Currently not called; this will trim out off-screen + // data from the plot, but doing this will disallow things + // like pan-back, so debatable if we really want to do this + //enforceDuration(); } // Handle new telemetry data From 53f712b5061f2dc68c8f2286d866905e37d21435 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Sat, 20 Jun 2015 11:19:56 -0700 Subject: [PATCH 3/9] [Plot] Pan with alt-key While alt is held, treat drag gestures in a plot area as a pan, WTD-1273. --- platform/features/plot/src/SubPlot.js | 52 +++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/platform/features/plot/src/SubPlot.js b/platform/features/plot/src/SubPlot.js index cb0fcec077..bf2804e28e 100644 --- a/platform/features/plot/src/SubPlot.js +++ b/platform/features/plot/src/SubPlot.js @@ -56,6 +56,8 @@ define( domainOffset, mousePosition, marqueeStart, + panStart, + panStartBounds, hoverCoordinates, isHovering = false; @@ -155,6 +157,25 @@ define( tickGenerator.generateRangeTicks(RANGE_TICKS); } + function updatePan() { + var start, current, delta, nextOrigin; + + // Clear the previous panning pan-zoom state + panZoomStack.popPanZoom(); + + // Calculate what the new resulting pan-zoom should be + start = mousePositionToDomainRange(panStart); + current = mousePositionToDomainRange(mousePosition); + delta = [ current[0] - start[0], current[1] - start[1] ]; + nextOrigin = [ + panStartBounds.origin[0] - delta[0], + panStartBounds.origin[1] - delta[1] + ]; + + // ...and push a new one at the current mouse position + panZoomStack.pushPanZoom(nextOrigin, panStartBounds.dimensions); + } + // Perform a marquee zoom. function marqueeZoom(start, end) { @@ -246,14 +267,34 @@ define( if (marqueeStart) { updateMarqueeBox(); } + if (panStart) { + updatePan(); + updateDrawingBounds(); + } }, /** * Initiate a marquee zoom action. * @param $event the mouse event */ startMarquee: function ($event) { - mousePosition = marqueeStart = toMousePosition($event); - updateMarqueeBox(); + mousePosition = toMousePosition($event); + if (event.altKey) { + // Start panning + panStart = mousePosition; + panStartBounds = panZoomStack.getPanZoom(); + // We're starting a pan, so add this back as a + // state on the stack; it will get replaced + // during the pan. + panZoomStack.pushPanZoom( + panStartBounds.origin, + panStartBounds.dimensions + ); + $event.preventDefault(); + } else { + // Start marquee zooming + marqueeStart = mousePosition; + updateMarqueeBox(); + } }, /** * Complete a marquee zoom action. @@ -267,6 +308,11 @@ define( updateMarqueeBox(); updateDrawingBounds(); } + if (panStart) { + // End panning + panStart = undefined; + panStartBounds = undefined; + } }, /** * Update the drawing bounds, marquee box, and @@ -311,4 +357,4 @@ define( return SubPlot; } -); \ No newline at end of file +); From f3cbcf0abe4ec875e5e7a8d7bdd24a33ab7e717e Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Sat, 20 Jun 2015 11:21:55 -0700 Subject: [PATCH 4/9] [Plot] Update ticks during pan WTD-1273. --- platform/features/plot/src/SubPlot.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform/features/plot/src/SubPlot.js b/platform/features/plot/src/SubPlot.js index bf2804e28e..c94f9ceaf8 100644 --- a/platform/features/plot/src/SubPlot.js +++ b/platform/features/plot/src/SubPlot.js @@ -270,6 +270,7 @@ define( if (panStart) { updatePan(); updateDrawingBounds(); + updateTicks(); } }, /** @@ -307,6 +308,7 @@ define( marqueeStart = undefined; updateMarqueeBox(); updateDrawingBounds(); + updateTicks(); } if (panStart) { // End panning From bc7342b127009df8198e9c724999b8e4f73f8f01 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Sat, 20 Jun 2015 11:30:20 -0700 Subject: [PATCH 5/9] [Plot] Make plot fixed duration a global default WTD-1273. --- platform/features/plot/bundle.json | 18 ++++++++++++++++-- platform/features/plot/src/PlotController.js | 10 ++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/platform/features/plot/bundle.json b/platform/features/plot/bundle.json index 2a7d6e9c73..600782c41f 100644 --- a/platform/features/plot/bundle.json +++ b/platform/features/plot/bundle.json @@ -23,8 +23,22 @@ { "key": "PlotController", "implementation": "PlotController.js", - "depends": [ "$scope", "telemetryFormatter", "telemetryHandler", "throttle" ] + "depends": [ + "$scope", + "telemetryFormatter", + "telemetryHandler", + "throttle", + "PLOT_FIXED_DURATION" + ] + } + ], + "constants": [ + { + "key": "PLOT_FIXED_DURATION", + "value": 900000, + "priority": "fallback", + "comment": "Fifteen minutes." } ] } -} \ No newline at end of file +} diff --git a/platform/features/plot/src/PlotController.js b/platform/features/plot/src/PlotController.js index 106e0f94d5..7eeca3b786 100644 --- a/platform/features/plot/src/PlotController.js +++ b/platform/features/plot/src/PlotController.js @@ -51,7 +51,13 @@ define( * * @constructor */ - function PlotController($scope, telemetryFormatter, telemetryHandler, throttle) { + function PlotController( + $scope, + telemetryFormatter, + telemetryHandler, + throttle, + PLOT_FIXED_DURATION + ) { var subPlotFactory = new SubPlotFactory(telemetryFormatter), modeOptions = new PlotModeOptions([], subPlotFactory), subplots = [], @@ -100,7 +106,7 @@ define( handle, ($scope.axes[0].active || {}).key, ($scope.axes[1].active || {}).key, - 15000 // 15 seconds + PLOT_FIXED_DURATION ); } From 8199d1d9d9d0d0e8d332b8f88b54c81fbdb773e8 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Sat, 20 Jun 2015 11:47:10 -0700 Subject: [PATCH 6/9] [Plot] Use mct-drag from plot Use mct-drag from plot such that we are able to handle mouse events which leave the plot area for marquee zoom and pan. WTD-1273. --- .../general/src/directives/MCTDrag.js | 14 +++++++--- .../features/plot/res/templates/plot.html | 5 ++-- platform/features/plot/src/SubPlot.js | 26 ++++++++++++++++--- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/platform/commonUI/general/src/directives/MCTDrag.js b/platform/commonUI/general/src/directives/MCTDrag.js index b832123f0c..f12aae5c5f 100644 --- a/platform/commonUI/general/src/directives/MCTDrag.js +++ b/platform/commonUI/general/src/directives/MCTDrag.js @@ -57,13 +57,17 @@ define( // mouse may leave this element during the drag. var body = $document.find('body'), initialPosition, + $event, delta; // Utility function to cause evaluation of mctDrag, // mctDragUp, etc function fireListener(name) { // Evaluate the expression, with current delta - scope.$eval(attrs[name], { delta: delta }); + scope.$eval(attrs[name], { + delta: delta, + $event: $event + }); // Trigger prompt digestion scope.$apply(); @@ -82,6 +86,9 @@ define( delta = currentPosition.map(function (v, i) { return v - initialPosition[i]; }); + + // Also track the plain event for firing listeners + $event = event; } // Called during a drag, on mousemove @@ -106,7 +113,7 @@ define( fireListener("mctDragUp"); - // Clear out start-of-drag position + // Clear out start-of-drag position, target initialPosition = undefined; // Don't show selection highlights, etc @@ -131,6 +138,7 @@ define( // Don't show selection highlights, etc event.preventDefault(); + return false; } @@ -148,4 +156,4 @@ define( return MCTDrag; } -); \ No newline at end of file +); diff --git a/platform/features/plot/res/templates/plot.html b/platform/features/plot/res/templates/plot.html index dd1d5356f5..fa74ef14cb 100644 --- a/platform/features/plot/res/templates/plot.html +++ b/platform/features/plot/res/templates/plot.html @@ -82,8 +82,9 @@ + mct-drag="subplot.continueDrag($event)" + mct-drag-down="subplot.startDrag($event)" + mct-drag-up="subplot.endDrag($event); plot.update()"> diff --git a/platform/features/plot/src/SubPlot.js b/platform/features/plot/src/SubPlot.js index c94f9ceaf8..2d5d2cc43d 100644 --- a/platform/features/plot/src/SubPlot.js +++ b/platform/features/plot/src/SubPlot.js @@ -58,6 +58,7 @@ define( marqueeStart, panStart, panStartBounds, + subPlotBounds, hoverCoordinates, isHovering = false; @@ -90,8 +91,7 @@ define( // pixel coordinates in the canvas area) from a mouse // event object. function toMousePosition($event) { - var target = $event.target, - bounds = target.getBoundingClientRect(); + var bounds = subPlotBounds; return { x: $event.clientX - bounds.left, @@ -262,6 +262,7 @@ define( */ hover: function ($event) { isHovering = true; + subPlotBounds = $event.target.getBoundingClientRect(); mousePosition = toMousePosition($event); updateHoverCoordinates(); if (marqueeStart) { @@ -273,11 +274,27 @@ define( updateTicks(); } }, + /** + * Continue a previously-start pan or zoom gesture. + * @param $event the mouse event + */ + continueDrag: function ($event) { + mousePosition = toMousePosition($event); + if (marqueeStart) { + updateMarqueeBox(); + } + if (panStart) { + updatePan(); + updateDrawingBounds(); + updateTicks(); + } + }, /** * Initiate a marquee zoom action. * @param $event the mouse event */ - startMarquee: function ($event) { + startDrag: function ($event) { + subPlotBounds = $event.target.getBoundingClientRect(); mousePosition = toMousePosition($event); if (event.altKey) { // Start panning @@ -301,8 +318,9 @@ define( * Complete a marquee zoom action. * @param $event the mouse event */ - endMarquee: function ($event) { + endDrag: function ($event) { mousePosition = toMousePosition($event); + subPlotBounds = undefined; if (marqueeStart) { marqueeZoom(marqueeStart, mousePosition); marqueeStart = undefined; From e516d886a64f9b3ffa76e6784ca8e3192df79957 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Mon, 22 Jun 2015 18:12:25 -0700 Subject: [PATCH 7/9] [Plot] Treat any modifier key as pan Treat any modifier key as a pan gesture when click-dragging in a plot; this is more resilient to cross-platform nuances. WTD-1273. --- platform/features/plot/src/SubPlot.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/platform/features/plot/src/SubPlot.js b/platform/features/plot/src/SubPlot.js index 2d5d2cc43d..a762e4fd81 100644 --- a/platform/features/plot/src/SubPlot.js +++ b/platform/features/plot/src/SubPlot.js @@ -296,7 +296,8 @@ define( startDrag: function ($event) { subPlotBounds = $event.target.getBoundingClientRect(); mousePosition = toMousePosition($event); - if (event.altKey) { + // Treat any modifier key as a pan + if (event.altKey || event.shiftKey || event.ctrlKey) { // Start panning panStart = mousePosition; panStartBounds = panZoomStack.getPanZoom(); From d6a31dcef38bb213ff7723820f061dc397594741 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Tue, 23 Jun 2015 14:17:28 -0700 Subject: [PATCH 8/9] [Plot] Update failing specs Update failing specs for changes related to fixed duration plots, WTD-1273. --- .../general/test/directives/MCTDragSpec.js | 19 ++++++++++++------- platform/features/plot/src/SubPlot.js | 2 +- platform/features/plot/test/SubPlotSpec.js | 10 +++++----- .../plot/test/elements/PlotLineBufferSpec.js | 5 +---- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/platform/commonUI/general/test/directives/MCTDragSpec.js b/platform/commonUI/general/test/directives/MCTDragSpec.js index 3f4f1dcadf..1d4568f72b 100644 --- a/platform/commonUI/general/test/directives/MCTDragSpec.js +++ b/platform/commonUI/general/test/directives/MCTDragSpec.js @@ -81,10 +81,11 @@ define( }); it("invokes mctDragDown when dragging begins", function () { - mockElement.on.mostRecentCall.args[1](testEvent(42, 60)); + var event = testEvent(42, 60); + mockElement.on.mostRecentCall.args[1](event); expect(mockScope.$eval).toHaveBeenCalledWith( testAttrs.mctDragDown, - { delta: [0, 0] } + { delta: [0, 0], $event: event } ); }); @@ -101,23 +102,27 @@ define( }); it("invokes mctDrag expression during drag", function () { + var event; + mockElement.on.mostRecentCall.args[1](testEvent(42, 60)); // Find and invoke the mousemove listener mockBody.on.calls.forEach(function (call) { if (call.args[0] === 'mousemove') { - call.args[1](testEvent(52, 200)); + call.args[1](event = testEvent(52, 200)); } }); // Should have passed that delta to mct-drag expression expect(mockScope.$eval).toHaveBeenCalledWith( testAttrs.mctDrag, - { delta: [10, 140] } + { delta: [10, 140], $event: event } ); }); it("invokes mctDragUp expression after drag", function () { + var event; + mockElement.on.mostRecentCall.args[1](testEvent(42, 60)); // Find and invoke the mousemove listener @@ -129,7 +134,7 @@ define( // Find and invoke the mousemove listener mockBody.on.calls.forEach(function (call) { if (call.args[0] === 'mouseup') { - call.args[1](testEvent(40, 71)); + call.args[1](event = testEvent(40, 71)); } }); @@ -138,7 +143,7 @@ define( // initial position expect(mockScope.$eval).toHaveBeenCalledWith( testAttrs.mctDragUp, - { delta: [-2, 11] } + { delta: [-2, 11], $event: event } ); // Should also have unregistered listeners @@ -147,4 +152,4 @@ define( }); } -); \ No newline at end of file +); diff --git a/platform/features/plot/src/SubPlot.js b/platform/features/plot/src/SubPlot.js index a762e4fd81..7c74751b27 100644 --- a/platform/features/plot/src/SubPlot.js +++ b/platform/features/plot/src/SubPlot.js @@ -297,7 +297,7 @@ define( subPlotBounds = $event.target.getBoundingClientRect(); mousePosition = toMousePosition($event); // Treat any modifier key as a pan - if (event.altKey || event.shiftKey || event.ctrlKey) { + if ($event.altKey || $event.shiftKey || $event.ctrlKey) { // Start panning panStart = mousePosition; panStartBounds = panZoomStack.getPanZoom(); diff --git a/platform/features/plot/test/SubPlotSpec.js b/platform/features/plot/test/SubPlotSpec.js index a093b9e289..58cd19faab 100644 --- a/platform/features/plot/test/SubPlotSpec.js +++ b/platform/features/plot/test/SubPlotSpec.js @@ -127,7 +127,7 @@ define( // Simulate a marquee zoom. Note that the mockElement // is 100 by 100 and starts at 10,20 - subplot.startMarquee({ + subplot.startDrag({ target: mockElement, clientX: 60, clientY: 45 @@ -137,7 +137,7 @@ define( clientX: 75, clientY: 85 }); - subplot.endMarquee({ + subplot.endDrag({ target: mockElement, clientX: 80, clientY: 95 @@ -162,7 +162,7 @@ define( // Simulate a marquee zoom. Note that the mockElement // is 100 by 100 and starts at 10,20 - subplot.startMarquee({ + subplot.startDrag({ target: mockElement, clientX: 60, clientY: 45 @@ -172,7 +172,7 @@ define( clientX: 75, clientY: 85 }); - subplot.endMarquee({ + subplot.endDrag({ target: mockElement, clientX: 60, clientY: 45 @@ -198,4 +198,4 @@ define( }); } -); \ No newline at end of file +); diff --git a/platform/features/plot/test/elements/PlotLineBufferSpec.js b/platform/features/plot/test/elements/PlotLineBufferSpec.js index 1066d12d2d..54c0c04c77 100644 --- a/platform/features/plot/test/elements/PlotLineBufferSpec.js +++ b/platform/features/plot/test/elements/PlotLineBufferSpec.js @@ -83,9 +83,6 @@ define( expect(buffer.findInsertionIndex(10)).toEqual(4); expect(buffer.findInsertionIndex(14.5)).toEqual(5); expect(buffer.findInsertionIndex(20)).toEqual(6); - - // 9 is already in there, disallow insertion - expect(buffer.findInsertionIndex(9)).toEqual(-1); }); it("allows insertion in the middle", function () { @@ -169,4 +166,4 @@ define( }); } -); \ No newline at end of file +); From d1dc2da4c8c4df021f5ecbe637ee5c307b79d272 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Tue, 23 Jun 2015 14:40:32 -0700 Subject: [PATCH 9/9] [Plot] Remove unused function Remove unused function related to enforcing fixed duration in plots, WTD-1273. --- platform/features/plot/src/elements/PlotUpdater.js | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/platform/features/plot/src/elements/PlotUpdater.js b/platform/features/plot/src/elements/PlotUpdater.js index 99d6916b8d..f05632d8f3 100644 --- a/platform/features/plot/src/elements/PlotUpdater.js +++ b/platform/features/plot/src/elements/PlotUpdater.js @@ -136,7 +136,7 @@ define( } // Update dimensions and origin based on extrema of plots - function updateExtrema() { + function updateBounds() { if (bufferArray.length > 0) { domainExtrema = bufferArray.map(function (lineBuffer) { return lineBuffer.getDomainExtrema(); @@ -179,7 +179,7 @@ define( (domainExtrema[1] - domainExtrema[0] > fixedDuration)) { cutoff = domainExtrema[1] - fixedDuration; bufferArray.forEach(enforceDurationForBuffer); - updateExtrema(); // Extrema may have changed now + updateBounds(); // Extrema may have changed now } } @@ -194,15 +194,6 @@ define( } } - // Update plot extremea and enforce maximum duration - function updateBounds() { - updateExtrema(); - // Currently not called; this will trim out off-screen - // data from the plot, but doing this will disallow things - // like pan-back, so debatable if we really want to do this - //enforceDuration(); - } - // Handle new telemetry data function update() { var objects = handle.getTelemetryObjects();