Autodesk Forge Viewer获取片段位置

问题描述

我试图获取模型中各个网格的位置(从revit文件转换)。 我正在做的是获取fragmentProxy,然后使用getoriginalWorldMatrix()获得THREE.Matrix4()。然后从Matrix4中,调用getPosition()以获取片段的THREE.Vector3世界位置。 但是,每个网格都返回相同的位置值。那是因为模型最初是如何构建的?还是我必须使用其他方法获取片段位置?

解决方法

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

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

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