Skip to content

Commit 96cb93f

Browse files
author
Ben Lerner
committed
bugfix: autosized images should still keep their pinholes on the datum locations
1 parent d9248dd commit 96cb93f

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/js/trove/charts-lib.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2020,6 +2020,14 @@
20202020
none: () => undefined,
20212021
some: (opaqueImg) => imageToCanvas(opaqueImg.val)
20222022
}),
2023+
imageWidth: cases(RUNTIME.ffi.isOption, 'Option', get(p, 'image'), {
2024+
none: () => undefined,
2025+
some: (opaqueImg) => opaqueImg.val.getWidth()
2026+
}),
2027+
imageHeight: cases(RUNTIME.ffi.isOption, 'Option', get(p, 'image'), {
2028+
none: () => undefined,
2029+
some: (opaqueImg) => opaqueImg.val.getHeight()
2030+
}),
20232031
imageOffsetX: cases(RUNTIME.ffi.isOption, 'Option', get(p, 'image'), {
20242032
none: () => undefined,
20252033
some: (opaqueImg) => opaqueImg.val.getPinholeX() / opaqueImg.val.getWidth()
@@ -2162,6 +2170,8 @@
21622170
signal: `{ title: "${legend}", Label: datum.label, x: datum.x, y: datum.y }` },
21632171
{ signal: `{ title: "${legend}", x: datum.x, y: datum.y }` },
21642172
];
2173+
const imageScaleFactorX = autosizeImage ? '-datum.imageWidth' : -pointSize;
2174+
const imageScaleFactorY = autosizeImage ? '-datum.imageHeight' : -pointSize;
21652175
marks.push({
21662176
type: 'image',
21672177
from: { data: `${prefix}images` },
@@ -2174,8 +2184,8 @@
21742184
tooltip: tooltips
21752185
},
21762186
update: {
2177-
x: { scale: `xscale`, field: 'x', offset: { signal: `${-pointSize} * datum.imageOffsetX` } },
2178-
y: { scale: `yscale`, field: 'y', offset: { signal: `${-pointSize} * datum.imageOffsetY` } },
2187+
x: { scale: `xscale`, field: 'x', offset: { signal: `${imageScaleFactorX} * datum.imageOffsetX` } },
2188+
y: { scale: `yscale`, field: 'y', offset: { signal: `${imageScaleFactorY} * datum.imageOffsetY` } },
21792189
stroke: { signal: `hoveredLegend === '${prefix}' ? 'white' : '${color}'` },
21802190
strokeWidth: { signal: `(hoveredLegend === '${prefix}' ? 1 : 0)` },
21812191
zindex: { signal: `hoveredLegend === '${prefix}' ? 1 : null` }

0 commit comments

Comments
 (0)