Autodesk Forge Viewer 获取片段位置

Autodesk Forge Viewer getting fragment position

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

您检索片段转换的过程是正确的。或者,您可以使用这样的东西:

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

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