问题:
我一直在使用AutoDesk View和Data API,我很想知道是否可以返回有关所选元素的几何信息。理想情况下,我想要所选元素的位置,大小,角度,形状类型等,以便我可以比较两行。我不介意如何表示这些信息,只要可以比较两种形状。
目的:
如果有一条线,那么(伪表示):
(x1 = 0,y1 = 0),(x2 = 10,y2 = 0),长度为10的2d直线;
和另一行,这样:
(x1 = 20,y1 = 20),(x2 = 30,y2 = 20),另一条长度为10的2d直线。
然后我可以说这两行与这些信息类似,并推断出它们的角度。显然需要对所选实体的类型有一些指示。这是我问题的理想结果。
我尝试过的事情:
到目前为止,我在Viewer3d.js中找到了几个有用的函数,但似乎都没有返回任何关于单个选定形状的几何位置的数据:
Viewing.Extension.SomeExtension = function (viewer, options)
{
...
var shapeRenderData = viewer.impl.getRenderProxy(viewer, dbId);
var shapeFragmentData = viewer.impl.getFragmentProxy(viewer, dbId);
}
我已经明白了如何包含onSelect事件,为了清楚起见,我们将其排除在外。
这两个都返回一个属性为fragId, scale, quaternion
和position
的JSON对象 - 虽然除了fragId,这些属性都有空值。
附加
我的基础是我从AutoDesk团队创建的GitHub教程中创建的扩展程序:
请注意第五步包括我讨论的onSelect活动的代码,如果您希望重新创建问题以帮助我解决此问题。
答案 0 :(得分:2)
我写过关于几何捕捉和选择命令的博客文章。我认为它应该为你的问题提供一些答案:
Geometry snapping and selection commands with View & Data API