【问题标题】:Autodesk forge Markup extension markers position not matching x y z valuesAutodesk forge 标记扩展标记位置与 x y z 值不匹配
【发布时间】:2019-05-02 20:00:11
【问题描述】:

我正在使用可以在 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;
}

当我更改 x y z 值时,点会移动,但永远不会移动到我想要的位置,并且不确定我哪里出错了

【问题讨论】:

  • 标记位置应该在世界坐标系中。尝试获取整个模型的边界框(使用viewer.model.getBoundingBox())并使用其中的某些位置。

标签: autodesk-forge autodesk-viewer


【解决方案1】:

而不是在使用视口来偏移点的其他扩展中找到的代码,我似乎已经通过将viewer.model.getData().globalOffset 添加到命中测试交叉点值来修复它

【讨论】:

    猜你喜欢
    • 2021-06-16
    • 2021-01-30
    • 2020-05-20
    • 2020-06-03
    • 1970-01-01
    • 2020-10-04
    • 2019-02-19
    • 2019-11-18
    • 2019-11-14
    相关资源
    最近更新 更多