问题:
我一直在使用 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, quaternion
和position
- 尽管除了 fragId,这些属性都具有空值。
额外的:
我基于我在 AutoDesk 团队的这个 GitHub 教程中创建的扩展:
请注意第五步包括我正在讨论的 onSelect 事件的代码,如果您希望重新创建问题来帮助我解决这个问题。