From 7dda439f6bea5aed898b776bb0a94da30492f595 Mon Sep 17 00:00:00 2001 From: OssamaRafique Date: Tue, 29 Aug 2023 10:02:26 -0400 Subject: [PATCH] Added Mouse Event on Point Hover or Point Click --- src/epiviz.gl/data-processor-worker.js | 1 + src/epiviz.gl/mouse-reader.js | 6 ++++-- src/epiviz.gl/webgl-vis.js | 8 ++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/epiviz.gl/data-processor-worker.js b/src/epiviz.gl/data-processor-worker.js index 58cc336..ae4bd2d 100644 --- a/src/epiviz.gl/data-processor-worker.js +++ b/src/epiviz.gl/data-processor-worker.js @@ -34,6 +34,7 @@ self.onmessage = (message) => { const result = self.processor.getClosestPoint(message.data.point); postMessage({ type: message.data.type, + event: message.data?.event, ...result, }); break; diff --git a/src/epiviz.gl/mouse-reader.js b/src/epiviz.gl/mouse-reader.js index 8b70db5..70fcf95 100644 --- a/src/epiviz.gl/mouse-reader.js +++ b/src/epiviz.gl/mouse-reader.js @@ -136,7 +136,8 @@ class MouseReader { "mousemove", (event) => { this.handler.getClosestPoint( - this._calculateViewportSpot(...getLayerXandYFromEvent(event)) + this._calculateViewportSpot(...getLayerXandYFromEvent(event)), + cloneMouseEvent(event) ); if (!mouseDown) { return; @@ -262,7 +263,8 @@ class MouseReader { "dblclick", (event) => { this.handler.getClickPoint( - this._calculateViewportSpot(...getLayerXandYFromEvent(event)) + this._calculateViewportSpot(...getLayerXandYFromEvent(event)), + cloneMouseEvent(event) ); }, false diff --git a/src/epiviz.gl/webgl-vis.js b/src/epiviz.gl/webgl-vis.js index 504dab3..9371f28 100644 --- a/src/epiviz.gl/webgl-vis.js +++ b/src/epiviz.gl/webgl-vis.js @@ -244,11 +244,13 @@ class WebGLVis { * Does not return, posts result to this.dataWorkerStream. * * @param {Array} point to get closest point to + * @param {Object=} event refers to mouse eventt hat triggered this function. Optional Parameter */ - getClosestPoint(point) { + getClosestPoint(point, event) { this.dataWorker.postMessage({ type: "getClosestPoint", point, + event, }); } @@ -257,11 +259,13 @@ class WebGLVis { * Does not return, posts result to this.dataWorkerStream. * * @param {Array} point to get closest point to + * @param {Object=} event refers to mouse event that triggered this function. Optional parameter */ - getClickPoint(point) { + getClickPoint(point, event) { this.dataWorker.postMessage({ type: "getClickPoint", point, + event, }); }