Положение маркеров расширения разметки в Autodesk не соответствует значениям xyz - PullRequest
0 голосов
/ 30 ноября 2018

Я использую расширение разметки, которое можно найти в https://github.com/wallabyway/markupExt, и не менял код в расширении, за исключением того, что установил this.size в большее значение, чтобы маркер легче было найти

фактическая отрисовка точек работает нормально. Кажется, я просто не могу поместить их в определенную позицию на модели, они просто кажутся плавающими в середине пустого пространства.

Код для генерации точки

var dummyData = [];

    dummyData.push({
        icon: Math.round(Math.random() * 3),
        x: 129597.054373,
        y: -27184.841094,
        z: 44514.362733
    });

    window.dispatchEvent(new CustomEvent('newData', { 'detail': dummyData }));

Я пытался подать значения, взятые прямо из свойств выбранных элементов, а также пытался подать значения, взятые из следующего кода (я пробовал с шагом номинализации и без него)

function onMouseClick(event) {
var screenPoint = {
    x: event.clientX,
    y: event.clientY
};

var n = normalizeCoords(screenPoint)


var hitTest = viewer.impl.hitTest(n.x, n.y, true);

if (hitTest) {

    alert(hitTest.intersectPoint.x + ' ' + ' ' + hitTest.intersectPoint.y + ' ' + hitTest.intersectPoint.z)

    }
}


function normalizeCoords(screenPoint) {

var viewport = viewer.navigation.getScreenViewport();

var n = {
    x: (screenPoint.x - viewport.left) / viewport.width,
    y: (screenPoint.y - viewport.top) / viewport.height
};

return n;
}

Точка перемещается, когда я изменяю значения XYZ, но никогда не туда, где я хочу их, и не уверен, где я иду не так

1 Ответ

0 голосов
/ 04 декабря 2018

Вместо кода, найденного в других расширениях, который использует область просмотра для смещения точки, которую я, кажется, исправил, добавив viewer.model.getData().globalOffset к значениям пересечения теста попадания

...