伪造观察器中对象的X,Y,Z坐标

问题描述 投票:0回答:1

我试图在Autodesk Forge中的各个元素上绘制svg / pointcloud点。如何获得元素的(x,y,z)坐标。

有没有办法提取单个对象的位置,以便我们在世界空间中有位置向量。

到目前为止我尝试了什么:

  • 我似乎无法理解如何使用thread这个frags = viewer.impl.getRenderProxy( viewer.model, fragId )中描述的位置数组 positions = frags.geometry.vb
  • Autodesk.ADN.Viewing.Extension.MeshData.js给了我元素由三角形构成的顶点(网格/片段)。
three.js autodesk-forge autodesk-viewer
1个回答
0
投票

我创建了一个可以添加到查看器中的自包含扩展,并说明了如何获取组件位置:enter image description here

检查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;
    }
© www.soinside.com 2019 - 2024. All rights reserved.