如何以编程方式显示 pointCloudMarkup?

Posted

技术标签:

【中文标题】如何以编程方式显示 pointCloudMarkup?【英文标题】:How to show pointCloudMarkup programmatically? 【发布时间】:2018-07-27 01:07:40 【问题描述】:

Forge RCDB URL 是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

因为我不使用 react 也不需要 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
)

但什么也没发生。

你能给我一些信息吗?

例如。

我想知道关于

的论点

构造函数() https://github.com/Autodesk-Forge/forge-rcdb.nodejs/blob/master/src/client/viewer.components/Viewer.Extensions.Dynamic/Viewing.Extension.PointCloudMarkup/PointCloudMarkup/PointCloudMarkup.js#L17

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

【问题讨论】:

【参考方案1】:

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)

【讨论】:

非常感谢。我会尝试创建扩展。 嗨菲利普,我最近从forge.autodesk.com/author/philippe-leefsma 看到了这个例子。都是杰出的例子!不幸的是,github链接现在不可用。你介意我请你帮忙吗?请更新链接。非常感谢! 不再在 adsk 工作,所以我无法控制那些损坏的链接。你可以从这个 repo 中找到大部分示例:github.com/Autodesk-Forge/forge-rcdb.nodejs。如有其他问题,请与支持人员联系。

以上是关于如何以编程方式显示 pointCloudMarkup?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式显示/隐藏导航抽屉

如何以编程方式显示 UISplitViewController Master?

如何以编程方式显示图像水平 UIscrollView

如何以编程方式显示/推送导航控制器

如何以编程方式向下滑动UITableView以显示底层的UIRefreshControl

如何在显示旋转时以编程方式更改布局约束