我在伪造查看器的2D屏幕上添加了自定义几何图形
const geom = new THREE.SphereGeometry(10, 8, 8);
const material = new THREE.MeshBasicMaterial({ color: 0xff0000 });
const sphereMesh = new THREE.Mesh(geom, material);
sphereMesh.position.set(1, 2, 3);
viewer.impl.createOverlayScene('custom-scene');
viewer.impl.addOverlay('custom-scene', sphereMesh);
viewer.impl.invalidate(true);
如何在此叠加层场景的网格上添加点击侦听器。
答案 0 :(得分:1)
TL; TR:https://forge.autodesk.com/blog/handling-custom-meshes-selection-along-model-components-forge-viewer
由于Forge Viewer基于three.js,因此自定义Viewer时,您可以依靠Viewer的API,也可以更深入地使用Three.js API或更深层次的WebGL。
在您的情况下,您使用three.js创建了一个自定义几何图形,该几何图形的级别比Viewer API低,并且您不能期望Viewer可以与其交互。 因此,由于(通过创建three.js几何图形)您处于three.js级别,因此,您将不得不依靠three.js API来处理自定义几何图形选择。 为此,通常使用光线投射,并且周围有许多教程,其中一些是:
这些是通用的,在Forge博客文章之一中,有一个在Forge Viewer上下文中进行光线投射的示例:https://forge.autodesk.com/blog/handling-custom-meshes-selection-along-model-components-forge-viewer