From 68588121024393fe9a7c86064b7a4a30740b4d85 Mon Sep 17 00:00:00 2001 From: Harm Kube <h.kube@tu-braunschweig.de> Date: Tue, 21 Dec 2021 09:08:23 +0100 Subject: [PATCH] Refactoring the drag-Event-Handling --- config.js | 2 ++ display/graph.js | 25 +++++++++++-------------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/config.js b/config.js index 42eee97..7097bd1 100644 --- a/config.js +++ b/config.js @@ -18,3 +18,5 @@ export const MODE = ks_global.mode; export function setSpace(space) { SPACE = space; } + +export const DRAG_THRESHOLD = 10; diff --git a/display/graph.js b/display/graph.js index f6ba9ad..9108557 100644 --- a/display/graph.js +++ b/display/graph.js @@ -9,7 +9,7 @@ import { CSS3DRenderer, CSS3DSprite, } from "three/examples/jsm/renderers/CSS3DRenderer.js"; -import { MODE } from "../config"; +import { MODE, DRAG_THRESHOLD } from "../config"; /** * The main ForceGraph. Displays the graph and handles all connected events. @@ -59,12 +59,7 @@ export default class Graph { .nodeAutoColorBy("group") .nodeColor((node) => this.getNodeColor(node)) .linkWidth((link) => this.getLinkWidth(link)) - .onNodeClick((node) => { - this.focusOnNode(node); - if (MODE === "default") { - this.infoOverlay.updateInfoOverlay(node); - } - }) + .onNodeClick((node) => this.onNodeClick(node)) .onNodeHover((node) => { this.onNodeHover(node); this.updateHighlight(); @@ -196,16 +191,18 @@ export default class Graph { this.updateHighlight(); } + onNodeClick(node) { + this.focusOnNode(node); + if (MODE === "default") { + this.infoOverlay.updateInfoOverlay(node); + } + } + onNodeDragEnd(node, translate) { // NodeDrag is handled like NodeClick if distance is very short - if(Math.sqrt(Math.pow(translate.x, 2)+ Math.pow(translate.y, 2)+ Math.pow(translate.z, 2)) < 10) { - this.focusOnNode(node); - if (MODE === "default") { - this.infoOverlay.updateInfoOverlay(node); - } - console.log("Hello Inside"); + if(Math.sqrt(Math.pow(translate.x, 2)+ Math.pow(translate.y, 2)+ Math.pow(translate.z, 2)) < DRAG_THRESHOLD) { + this.onNodeClick(node); } - console.log("Hello Outside"); } focusOnNode(node) { -- GitLab