X, Y, Z координаты объекта в кузнице - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь нарисовать точки svg / pointcloud на отдельных элементах в Autodesk Forge. Как получить (x, y, z) координаты элементов.

Есть ли способ извлечь позиции отдельного объекта, чтобы у нас был вектор положения в мировом пространстве.

Что я пробовал до сих пор:

  • Я не могу понять, как использовать массив положений, как описано в этом поток , используя frags = viewer.impl.getRenderProxy( viewer.model, fragId )

    positions = frags.geometry.vb

  • Autodesk.ADN.Viewing.Extension.MeshData.js дает мне вершины треугольников (ячеек / фрагментов), из которых состоит элемент.

1 Ответ

0 голосов
/ 12 сентября 2018

Я создал автономное расширение, которое вы можете добавить в программу просмотра, и показывает, как получить позицию компонента: enter image description here

Проверьте это репо и 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;
    }
...