Autodesk forge Markup 扩展标记位置与 x y z 值不匹配
Autodesk forge Markup extension markers position not matching x y z values
我正在使用可以在 https://github.com/wallabyway/markupExt 找到的标记扩展,除了将 this.size 设置为更大的值以使标记更容易找到之外,我没有更改扩展中的代码
点的实际渲染效果很好我似乎无法将它们放在模型的特定位置,它们只是漂浮在空的中间 space。
生成点的代码
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.getData().globalOffset
添加到命中测试交集值
来修复它
我正在使用可以在 https://github.com/wallabyway/markupExt 找到的标记扩展,除了将 this.size 设置为更大的值以使标记更容易找到之外,我没有更改扩展中的代码
点的实际渲染效果很好我似乎无法将它们放在模型的特定位置,它们只是漂浮在空的中间 space。
生成点的代码
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.getData().globalOffset
添加到命中测试交集值