向查看器添加自定义几何体

时间:2017-07-05 17:57:56

标签: autodesk-viewer

我有一个我希望细分的模型,通过在不同的部分上绘制半透明的盒子。

按照示例https://forge.autodesk.com/cloud_and_mobile/2016/02/custom-transparent-meshes-with-view-data-api.html我绘制了框并将它们添加到sceneAfter对象中。因此,他们半透明地绘制,模型按预期显示在其中。

我使用了bufferGeometry,它可以避免遗漏属性错误。

但是,我既不能选择框,也不能忽略这些框并选择其中的组件。该示例指出“另一种选择是以与查看者相同的方式创建自定义几何体,因此它可以参与选择”。是否有关于观察者如何创建几何图形的文档?

通过搜索来源,我可以看到dbIdfragId被分配到Mesh中的addSingleMesh,但作为模型合并的一部分。

我还不确定是否要选择方框或​​其中的项目,但由于观众知道忽略了幻影的组件,我希望这是一个相对简单的切换方式?

1 个答案:

答案 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

希望有所帮助