2017-12-15 11 views
1

選択したノードの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(); 

答えて

1

これら2つのイベントは、あなたのモデルが完全にロードされ、あなたのコードが安全にモデル階層にアクセスできることを、この記事が有用である可能性があることを確認する必要があります。Asynchronous viewer events notification

+0

それはカメラアングルが正しく非同期後に設定されているようです。これらの2つのイベントそれぞれについて、VRモードをクリックすると:document.getElementById( "toolbar-vrTool")。カメラはモデルから離れてジャンプし、同じカメラアングルを保持しません。 WebVR拡張機能をいつ使用する準備ができているか、何とか知ることができますか? –

+1

イベントAutodesk.Viewing.EXTENSION_LOADED_EVENTを試して、ロードするAutodesk.Viewing.WebVR拡張子を確認してください –

関連する問題