0

问题:

我一直在使用 AutoDesk View and Data API,我很想知道是否可以返回有关所选元素的几何信息。理想情况下,我想要选定元素的位置、大小、角度、形状类型等,以便我可以比较例如两条线。我不介意这些信息是如何表示的,只要可以比较两个形状即可。

客观的:

如果有一条线,这样(伪表示):

(x1=0,y1=0),(x2=10,y2=0),长度为10的二维直线;

和另一行,例如:

(x1=20,y1=20),(x2=30,y2=20),另一条长度为 10 的二维直线。

然后我可以说这两条线从这个信息中是相似的,并推断出它们的角度。显然还需要对所选择的实体类型进行一些指示。这是我的问题的预期结果。

我试过的:

到目前为止,我在 Viewer3d.js 中发现了几个有用的函数,但似乎没有一个函数返回有关单个选定形状的几何位置的任何数据:

Viewing.Extension.SomeExtension = function (viewer, options)
{
    ...

    var shapeRenderData = viewer.impl.getRenderProxy(viewer, dbId);
    var shapeFragmentData = viewer.impl.getFragmentProxy(viewer, dbId);
}

我已经了解如何包含 onSelect 事件,为了清楚问题而忽略了这一点。

这两个都返回一个 JSON 对象,其属性为fragId, scale, quaternionposition- 尽管除了 fragId,这些属性都具有空值。

额外的:

我基于我在 AutoDesk 团队的这个 GitHub 教程中创建的扩展:

https://github.com/Developer-Autodesk/tutorial-getting.started-view.and.data/blob/master/chapter-3.md#Step5

请注意第五步包括我正在讨论的 onSelect 事件的代码,如果您希望重新创建问题来帮助我解决这个问题。

4

1 回答 1

2

我写了一篇关于几何捕捉和选择命令的博客文章。我认为它应该为您的问题提供一些答案:

使用 View & Data API 的几何捕捉和选择命令

于 2015-10-05T10:11:54.143 回答