温馨提示:本文翻译自stackoverflow.com,查看原文请点击:Forge Viewer - Markups
autodesk-forge autodesk-model-derivative autodesk-viewer autodesk-data-management

Forge Viewer - 标记

发布于 2020-04-13 11:38:37

我正在使用标记扩展名在查看器上进行绘制,在绘制之后,在选择标记事件时,能否获得其当前选择的中心坐标或其中的任何坐标?如果没有,至少我可以使dbId落后于当前选择吗?

提前致谢

查看更多

提问者
A DEv
被浏览
32
Eason Kang 2020-02-05 10:38

是的〜是这种情况,另请参见:

// Get the markup's position in browser pixel space. the (0,0) is top left
Markup#getClientPosition()
// Get the markup's bounding rect in browser pixel space.

Markup#getClientSize()
// get the markup's bounding rect in browser pixel space, including the stroke width

Markup#getBoundingRect()

顺便说一句,要获得标记边界内的dbId,可以执行以下操作:

  1. 在浏览器的像素空间中获取标记的BoundingRect
  2. 通过Viewer3D#clientToWorld将矩形的顶点坐标转换为查看器的3d空间
  3. 进行边界框碰撞以找出dbId的相交网格,请参见此处的示例:https ://forge.autodesk.com/blog/custom-window-selection-forge-viewer-simpler-extension