首页 > 解决方案 > Autodesk Forge Viewer 获取片段位置

问题描述

我正在尝试获取模型中单独网格的位置(从 revit 文件翻译)。我正在做的是获取fragmentProxy,然后使用getOriginalWorldMatrix() 来获取THREE.Matrix4()。然后从 Matrix4 中调用 getPosition() 来获取片段的 THREE.Vector3 世界位置。但是,每个网格都返回相同的位置值。那是因为模型最初是如何构建的吗?或者我必须使用不同的方法获取片段位置?

标签: autodesk-forgeforge

解决方案


您检索片段转换的过程是正确的。或者,您可以使用以下内容:

function getFragmentTransform(model, fragid) {
    const frags = model.getFragmentList();
    let xform = new THREE.Matrix4();
    frags.getOriginalWorldMatrix(fragid, xform);
    return xform;
}

恐怕您是对的,在某些情况下,变换可能会直接烘焙到网格顶点中。


推荐阅读