【问题标题】:X,Y,Z coordinates of an object in forge viewerForge 查看器中对象的 X、Y、Z 坐标
【发布时间】:2019-02-17 00:43:56
【问题描述】:

我正在尝试在 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】:

    我创建了一个独立的扩展程序,您可以将其添加到查看器中,并说明如何获取组件位置:

    检查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;
        }

    【讨论】:

    • 伟大的回购。谢谢你:)
    • @anahom 为什么不接受答案?
    猜你喜欢
    • 2021-12-24
    • 2020-09-19
    • 2020-10-04
    • 2020-06-07
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多