Autodesk Forge Viewer语言 - 单击通过 SceneBuilder 创建的模型上的事件



我正在使用新的SceneBuilder扩展(使用本指南(向查看器添加几何体。我已经能够在查看器中显示几何图形,并且还能够将文本几何添加到与某些模型相同的dbId中。

查看器允许我单击并隔离几何图形,但是当我使用 viewer.getSelection(( 时,它会返回一个空数组。我什至在几何体本身中添加了一个点击事件侦听器,但那里也没有运气。

有没有人知道将侦听器添加到这个新创建的片段或几何体的方法。

您是否将dbid设置为附加到场景的网格体?否则,选择器将无法像文档(原始模型(的气泡那样拾取他们的dbids:


sceneBuilder.addNewModel({conserveMemory: false,
modelNameOverride: 'My Model Name233'})
.then(modelBuilder => {
//...
mesh = new THREE.Mesh(geom, phongMaterial);
mesh.dbId=23333;
modelBuilder.addMesh(mesh);
})

然后,您将能够调用自定义模型上的选择器来获取当前选择 - 因为我们从自定义模型中获取选择状态,而不是由 Viewer 加载的模型(通过viewer.model公开(:

modelBuilder.model.selector.getSelection() //[23333]

编辑

忘了说你也可以订阅AGGREGATE_SELECTION_CHANGED_EVEN,因为我们在这里处理多个模型:

NOP_VIEWER.addEventListener(Autodesk.Viewing.AGGREGATE_SELECTION_CHANGED_EVENT,e=>{
//...
})

最新更新