Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 在覆盖场景-Autodesk forge viewer中的自定义几何体上单击“侦听器”_Three.js_Autodesk Forge_Autodesk Viewer_Forge - Fatal编程技术网

Three.js 在覆盖场景-Autodesk forge viewer中的自定义几何体上单击“侦听器”

Three.js 在覆盖场景-Autodesk forge viewer中的自定义几何体上单击“侦听器”,three.js,autodesk-forge,autodesk-viewer,forge,Three.js,Autodesk Forge,Autodesk Viewer,Forge,我在forge viewer的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

我在forge viewer的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);
如何在此叠加场景的网格上添加单击侦听器。

TL;TR:

由于Forge Viewer基于three.js,因此在定制查看器时,您要么依赖查看器的API,要么可以更深入地使用three.js API,或者更深入地使用WebGL

在您的例子中,您使用three.js创建了一个自定义几何体,它的级别低于查看器API,您不能期望查看器能够与它交互。 因此,由于(通过创建three.js几何体)您处于three.js级别,因此必须依赖three.js API来处理自定义几何体选择。 为了实现这一点,通常使用光线投射,并且有很多教程,其中一些是:

  • )
  • )

这些都是通用的,在Forge的一篇博客文章中,有一个在Forge Viewer环境下的光线投射的例子:

请告诉我,我如何将几何体添加到查看器的API级别,而不是创建自定义几何体?