diff --git a/datasets/images/default.jpg b/datasets/images/default.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d3a14f85cc94df32c70405fe38cf13626aff69f0 Binary files /dev/null and b/datasets/images/default.jpg differ diff --git a/graph.js b/graph.js index 48d21f4bd8ef76c43b785c15ca13409cb4134075..cc28d29d78ca62d0ec0deee61ae5573fca496613 100644 --- a/graph.js +++ b/graph.js @@ -80,22 +80,33 @@ function drawNode(node) { const cssobj = new THREE.CSS3DSprite(nodeDiv); cssobj.scale.set(0.25, 0.25, 0.25); + cssobj.position.set(0, -6, 0); + group.add(cssobj) + + // Draw node circle image + const textureLoader = new THREE.TextureLoader(); + const imageAlpha = textureLoader.load(plugin_path + 'datasets/images/alpha.png'); + let imageTexture = null; + + if ('image' in node) { + imageTexture = textureLoader.load(plugin_path + 'datasets/images/' + node.image); + } else { + imageTexture = textureLoader.load(plugin_path + 'datasets/images/default.jpg'); + } + + const material = new THREE.SpriteMaterial({map: imageTexture, alphaMap: imageAlpha, transparent: true, + alphaTest: 0.2, depthWrite:false, depthTest: false}); + const sprite = new THREE.Sprite(material); + sprite.renderOrder = 999; // This may not be optimal. But it allows us to render the sprite on top of everything else. if ('image' in node) { - cssobj.position.set(0, -7, 0); - - const textureLoader = new THREE.TextureLoader(); - const imageTexture = textureLoader.load(plugin_path + 'datasets/images/' + node.image); - const imageAlpha = textureLoader.load(plugin_path + 'datasets/images/alpha.png'); - const material = new THREE.SpriteMaterial({map: imageTexture, alphaMap: imageAlpha, transparent: true, - alphaTest: 0.2, depthWrite:false, depthTest: false}); - const sprite = new THREE.Sprite(material); - sprite.renderOrder = 999; // This may not be optimal. But it allows us to render the sprite on top of everything else. sprite.scale.set(20, 20); - group.add(sprite) + } else { + sprite.scale.set(5, 5); } - group.add(cssobj) + group.add(sprite) + return group; }