diff --git a/R/render-plot.R b/R/render-plot.R index 6ae0c5929..2287635ce 100644 --- a/R/render-plot.R +++ b/R/render-plot.R @@ -120,14 +120,15 @@ getPrevPlotCoordmap <- function(width, height) { } list( - usr = list( + # Bounds of the plot area, in data space + domain = list( left = usrCoords[1], right = usrCoords[2], bottom = usrCoords[3], top = usrCoords[4] ), # The bounds of the plot area, in DOM pixels - bounds = list( + range = list( left = grconvertX(usrBounds[1], 'user', 'nfc') * width - 1, right = grconvertX(usrBounds[2], 'user', 'nfc') * width - 1, bottom = (1-grconvertY(usrBounds[3], 'user', 'nfc')) * height - 1, diff --git a/inst/www/shared/shiny.js b/inst/www/shared/shiny.js index e30df1081..652550cbc 100644 --- a/inst/www/shared/shiny.js +++ b/inst/www/shared/shiny.js @@ -1392,15 +1392,15 @@ $.extend(imageOutputBinding, { var coordmap = opts.coordmap; if (!coordmap) return offset; - function devToUsrX(deviceX) { - var x = deviceX - coordmap.bounds.left; - var factor = (coordmap.usr.right - coordmap.usr.left) / - (coordmap.bounds.right - coordmap.bounds.left); - var newx = (x * factor) + coordmap.usr.left; + function devToDataX(deviceX) { + var x = deviceX - coordmap.range.left; + var factor = (coordmap.domain.right - coordmap.domain.left) / + (coordmap.range.right - coordmap.range.left); + var newx = (x * factor) + coordmap.domain.left; if (clip) { - var max = Math.max(coordmap.usr.right, coordmap.usr.left); - var min = Math.min(coordmap.usr.right, coordmap.usr.left); + var max = Math.max(coordmap.domain.right, coordmap.domain.left); + var min = Math.min(coordmap.domain.right, coordmap.domain.left); if (newx > max) newx = max; else if (newx < min) @@ -1409,15 +1409,15 @@ $.extend(imageOutputBinding, { return newx; } - function devToUsrY(deviceY) { - var y = deviceY - coordmap.bounds.bottom; - var factor = (coordmap.usr.top - coordmap.usr.bottom) / - (coordmap.bounds.top - coordmap.bounds.bottom); - var newy = (y * factor) + coordmap.usr.bottom; + function devToDataY(deviceY) { + var y = deviceY - coordmap.range.bottom; + var factor = (coordmap.domain.top - coordmap.domain.bottom) / + (coordmap.range.top - coordmap.range.bottom); + var newy = (y * factor) + coordmap.domain.bottom; if (clip) { - var max = Math.max(coordmap.usr.top, coordmap.usr.bottom); - var min = Math.min(coordmap.usr.top, coordmap.usr.bottom); + var max = Math.max(coordmap.domain.top, coordmap.domain.bottom); + var min = Math.min(coordmap.domain.top, coordmap.domain.bottom); if (newy > max) newy = max; else if (newy < min) @@ -1427,11 +1427,11 @@ $.extend(imageOutputBinding, { return newy; } - var userX = devToUsrX(offset.x); + var userX = devToDataX(offset.x); if (coordmap.log.x) userX = Math.pow(10, userX); - var userY = devToUsrY(offset.y); + var userY = devToDataY(offset.y); if (coordmap.log.y) userY = Math.pow(10, userY); @@ -1445,7 +1445,7 @@ $.extend(imageOutputBinding, { // the bounds of the image. function getPlotBounds() { if (opts.coordmap) { - return opts.coordmap.bounds; + return opts.coordmap.range; } else { return { top: 0, diff --git a/srcjs/output_binding_image.js b/srcjs/output_binding_image.js index 041d6112a..504c44287 100644 --- a/srcjs/output_binding_image.js +++ b/srcjs/output_binding_image.js @@ -81,15 +81,15 @@ $.extend(imageOutputBinding, { var coordmap = opts.coordmap; if (!coordmap) return offset; - function devToUsrX(deviceX) { - var x = deviceX - coordmap.bounds.left; - var factor = (coordmap.usr.right - coordmap.usr.left) / - (coordmap.bounds.right - coordmap.bounds.left); - var newx = (x * factor) + coordmap.usr.left; + function devToDataX(deviceX) { + var x = deviceX - coordmap.range.left; + var factor = (coordmap.domain.right - coordmap.domain.left) / + (coordmap.range.right - coordmap.range.left); + var newx = (x * factor) + coordmap.domain.left; if (clip) { - var max = Math.max(coordmap.usr.right, coordmap.usr.left); - var min = Math.min(coordmap.usr.right, coordmap.usr.left); + var max = Math.max(coordmap.domain.right, coordmap.domain.left); + var min = Math.min(coordmap.domain.right, coordmap.domain.left); if (newx > max) newx = max; else if (newx < min) @@ -98,15 +98,15 @@ $.extend(imageOutputBinding, { return newx; } - function devToUsrY(deviceY) { - var y = deviceY - coordmap.bounds.bottom; - var factor = (coordmap.usr.top - coordmap.usr.bottom) / - (coordmap.bounds.top - coordmap.bounds.bottom); - var newy = (y * factor) + coordmap.usr.bottom; + function devToDataY(deviceY) { + var y = deviceY - coordmap.range.bottom; + var factor = (coordmap.domain.top - coordmap.domain.bottom) / + (coordmap.range.top - coordmap.range.bottom); + var newy = (y * factor) + coordmap.domain.bottom; if (clip) { - var max = Math.max(coordmap.usr.top, coordmap.usr.bottom); - var min = Math.min(coordmap.usr.top, coordmap.usr.bottom); + var max = Math.max(coordmap.domain.top, coordmap.domain.bottom); + var min = Math.min(coordmap.domain.top, coordmap.domain.bottom); if (newy > max) newy = max; else if (newy < min) @@ -116,11 +116,11 @@ $.extend(imageOutputBinding, { return newy; } - var userX = devToUsrX(offset.x); + var userX = devToDataX(offset.x); if (coordmap.log.x) userX = Math.pow(10, userX); - var userY = devToUsrY(offset.y); + var userY = devToDataY(offset.y); if (coordmap.log.y) userY = Math.pow(10, userY); @@ -134,7 +134,7 @@ $.extend(imageOutputBinding, { // the bounds of the image. function getPlotBounds() { if (opts.coordmap) { - return opts.coordmap.bounds; + return opts.coordmap.range; } else { return { top: 0,