我试图在Autodesk Forge中的各个元素上绘制svg / pointcloud点。如何获得元素的(x,y,z)坐标。
有没有办法提取单个对象的位置,以便我们在世界空间中有位置向量。
到目前为止我尝试了什么:
frags = viewer.impl.getRenderProxy( viewer.model, fragId )
中描述的位置数组
positions = frags.geometry.vb
我创建了一个可以添加到查看器中的自包含扩展,并说明了如何获取组件位置:
检查this repo和TransformationExplorerExtension
负责提取变换矩阵的代码是:
getFragmentWorldMatrixByNodeId(nodeId) {
let result = {
fragId: [],
matrix: [],
};
let viewer = this.viewer;
this.tree.enumNodeFragments(nodeId, function (frag) {
let fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
let matrix = new THREE.Matrix4();
fragProxy.getWorldMatrix(matrix);
result.fragId.push(frag);
result.matrix.push(matrix);
});
return result;
}