Правильное событие для прослушивания перед обновлением камеры

Обновление камеры и цели на основе dbid выбранного узла. Я обновляю камеру и цель в соответствии с фрагментарной сеткой, полученной с помощью dbid, а затем перехожу в режим VR. В настоящее время у меня есть слушатели событий GEOMETRY_LOADED_EVENT и OBJECT_TREE_CREATED_EVENT. Есть ли какое-то другое событие, которое мне следует подождать, прежде чем запускать код или обновлять камеру?

const nav = viewer.navigation;
const cam = nav.getCamera();
const it = viewer.model.getData().instanceTree;

let xPos, yPos, zPos;
it.enumNodeFragments(nodeId, (frag) => {
    const mesh = viewer.impl.getRenderProxy(viewer.model, frag);
    xPos = mesh.matrixWorld.elements[12];
    yPos = mesh.matrixWorld.elements[13];
    zPos = mesh.matrixWorld.elements[14];
}, false);
cam.position.set(xPos, yPos, zPos);
cam.target.set(xPos, yPos + 10000, zPos);

viewer.impl.sceneUpdated();
viewer.navigation.updateCamera();
document.getElementById("toolbar-vrTool").click();

person Joni Turunen    schedule 15.12.2017    source источник


Ответы (1)


Эти два события должны гарантировать, что ваша модель полностью загружена и что ваш код может безопасно получить доступ к иерархии модели, эта статья может быть полезной: Уведомление о событиях асинхронного просмотра

person Philippe    schedule 15.12.2017
comment
Кажется, что угол камеры установлен правильно после async.each для этих двух событий, но при включении режима VR с помощью: document.getElementById (toolbar-vrTool) .click (); камера отскакивает от модели и не сохраняет тот же угол обзора. Могу ли я как-то узнать, когда расширение WebVR готово к использованию? - person Joni Turunen; 15.12.2017
comment
Попробуйте событие Autodesk.Viewing.EXTENSION_LOADED_EVENT и проверьте, загружается ли расширение Autodesk.Viewing.WebVR. - person Philippe; 15.12.2017