【问题标题】:Transform point from DWG model coordinates to autodesk forge viewer coordinates (new WGS.LmvMatrix4 undefined)从 DWG 模型坐标转换点到 Autodesk Forge 查看器坐标(新 WGS.LmvMatrix4 未定义)
【发布时间】:2022-11-01 17:09:59
【问题描述】:

我正在尝试在 Autodesk forge 查看器中显示的模型上显示一个点。但是我无法弄清楚如何转换这一点。我发现下一个问题似乎可以解决这个问题:

Transform point from DWG model coordinates to autodesk forge viewer coordinates

当我尝试使用这个问题的功能时:

var vpXform = viewer.model.getPageToModelTransform(viewportId).clone();
var invVpXform = new WGS.LmvMatrix4(true);

invVpXform.getInverse(vpXform, true);

var ptInCadX = ...;
var ptInCadY = ...;
var verticesInViewer = new THREE.Vector3().set(ptInCadX, ptInCadY, 0).applyMatrix4(invVpXform);

它显示下一个错误:未捕获的 ReferenceError:未定义 WGS

如果我在没有 WGS.LmvMatrix4 的情况下尝试它,它会显示以下错误:未捕获的 ReferenceError:未定义新的 LmvMatrix4

我正在使用最新版本的 Forge Viewer v7。有人可以帮我找出我做错了什么吗?

非常感谢。

【问题讨论】:

    标签: autodesk-forge autodesk-viewer


    【解决方案1】:

    这是 sn-p 的更新版本:

    // Start by getting a list of all viewports in your model
    let viewports = viewer.model.getData().viewports;
    // Choose a viewport you want to use for the design-to-viewer coordinate mapping (it must include a `transform` property);
    // in my case I'll just pick the first one
    let viewport = viewports[0];
    // Load the viewport transform into a three.js matrix
    let xform = new THREE.Matrix4().fromArray(viewport.transform);
    // Compute the inverse transxform
    let inverse = new THREE.Matrix4().getInverse(xform, true);
    // Use the inverse transform to convert design coordinates to paper coordinates
    let someX = 0, someY = 0;
    let viewerCoords = new THREE.Vector3().set(someX, someY, 0).applyMatrix4(inverse);
    

    【讨论】:

      猜你喜欢
      • 2018-11-08
      • 2018-02-16
      • 2018-10-03
      • 2021-10-16
      • 1970-01-01
      • 2021-06-27
      • 2021-07-08
      • 1970-01-01
      • 2018-08-23
      相关资源
      最近更新 更多