【问题标题】:Autodesk Forge Viewer get local position of fragmentAutodesk Forge Viewer 获取片段的本地位置
【发布时间】:2021-02-22 02:11:55
【问题描述】:
我正在使用 Autodesk Viewer v7 尝试获取已翻译 Revit .rvt 文件中片段的位置。由于 Revit 处理模型位置的方式,我无法使用 fragProxy.getWorldMatrix() 提取片段的世界位置。
那么有没有办法在翻译的 Revit 模型中获取片段的位置?或者如果不可能,一种获取片段本地位置的方法?
非常感谢。
【问题讨论】:
标签:
javascript
autodesk-forge
autodesk-viewer
autodesk
【解决方案1】:
正如other thread 中所解释的:如果您的 Forge 模型中的片段将位置烘焙到它们的顶点中(换句话说,如果每个片段的变换是一个单位矩阵),您可以尝试计算一个 " 近似值" 每个片段在世界坐标系中的位置,通过计算片段的边界框,然后检索其中心点:
function getApproximatePosition(model, fragid) {
const frags = model.getFragmentList();
let bbox = new THREE.Box3();
frags.getWorldBounds(fragid, bbox);
return bbox.center();
}