我有一个我希望细分的模型,通过在不同的部分上绘制半透明的盒子。
按照示例https://forge.autodesk.com/cloud_and_mobile/2016/02/custom-transparent-meshes-with-view-data-api.html我绘制了框并将它们添加到sceneAfter对象中。因此,他们半透明地绘制,模型按预期显示在其中。
我使用了bufferGeometry,它可以避免遗漏属性错误。
但是,我既不能选择框,也不能忽略这些框并选择其中的组件。该示例指出“另一种选择是以与查看者相同的方式创建自定义几何体,因此它可以参与选择”。是否有关于观察者如何创建几何图形的文档?
通过搜索来源,我可以看到dbId
和fragId
被分配到Mesh
中的addSingleMesh
,但作为模型合并的一部分。
我还不确定是否要选择方框或其中的项目,但由于观众知道忽略了幻影的组件,我希望这是一个相对简单的切换方式?
答案 0 :(得分:0)
当您向场景添加自定义网格时,它将不参与查看器选择机制。据我所知,我们没有示例说明如何实现这一点,所以我向开发团队询问他们是否可以提供一些指示......
在此期间,您可以添加一些逻辑来处理您单独添加的网格的选择。这就是我在该博客文章引用的示例中所做的:Boolean Operations in the Forge Viewer。自定义选择执行there:
onClick (event) {
const pointer = event.pointers
? event.pointers[0]
: event
const rayCaster = this.pointerToRaycaster(
this.viewer.impl.canvas,
this.viewer.impl.camera,
pointer)
const intersectResults = rayCaster.intersectObjects(
this.intersectMeshes, true)
if (intersectResults.length) {
const mesh = intersectResults[0].object
this.panel.setVisible(false)
this.panel.setNodeProperties(mesh.dbId)
this.panel.setVisible(true)
}
}
您可能也对该文章感兴趣,该文章涉及过滤查看器原生选择:Controlling components selection in the Viewer。
希望有所帮助