如何以编程方式显示pointCloudMarkup?

时间:2018-02-16 06:47:51

标签: autodesk-forge autodesk-viewer

Forge RCDB网址为https://forge-rcdb.autodesk.io/configurator?id=5a361b2b58144b5ed2936ddf

我是 仅使用

https://github.com/Autodesk-Forge/forge-rcdb.nodejs/blob/master/src/client/viewer.components/Viewer.Extensions.Dynamic/Viewing.Extension.PointCloudMarkup/PointCloudMarkup/PointCloudMarkup.js

https://github.com/Autodesk-Forge/forge-rcdb.nodejs/blob/master/src/client/viewer.components/Viewer.Extensions.Dynamic/Viewing.Extension.PointCloudMarkup/Viewing.Extension.PointCloudMarkup.js

因为我没有使用反应而且我不需要UI面板。

我的代码正在关注。

Autodesk.Viewing.theExtensionManager.registerExtension('pointCloudMarkup', PointCloudMarkup)
viewer.loadExtension('pointCloudMarkup')
pointCloudMarkup = viewer.getExtension('pointCloudMarkup')
pointCloudMarkup.addMarkup({
    fragId: 1445, # fragId of some dbid
    point: {x: -4507.00927734375, y: -2092.884033203125, z: 3426.5} # world vector of fragId:1445
})

但什么都没发生。

你能给我一些信息吗?

例如。

我想知道

的论据

1 个答案:

答案 0 :(得分:0)

PointCloudMarkup不是扩展程序,它是一个对象,因此您无法将其注册并加载它。您需要实现自己的扩展并在其中实例化一个实例,就像它在PointCloudMarkupExtension中完成的那样但没有特定的反应。有关编写简单扩展的更多详细信息,请查看此处:

How to write custom extensions for the Large Model Viewer

Loading External Extensions in the Forge Viewer

PointCloudMarkup构造函数采用以下参数:

constructor (viewer, options = {
    maxPoints: default is 10000,
    vertexShader: `vertexShaderImplementation` (optional),
    fragmentShader: `fragmentShaderImplementation` (optional),
    texture (optional),
    shaderParams, (optional)
}) {

here中提供了addMarkup的示例:

 const markupInfo = {
    fragId: hitTest.fragId,
    point: hitTest.point,
    dbId: hitTest.dbId
  }

  this.pointCloudMarkup.addMarkup(
    markupInfo)