0

複数のモデル (最大 20 モデル) があり、そこから一度に 2 つだけビューアーにロードしたいと考えています。新しいモデルをロードする前に、ビューアーをクリアするか、ロードされたモデルを削除する方法はありますか?

現在、最初にすべてのモデルを非表示にします。

function hideAllModels() {
  for (var i = 0; i < loadedModels.length; i++) {
    var instanceTree = loadedModels[i].getData().instanceTree;
    var rootId = instanceTree.getRootId();
    var vm = new Autodesk.Viewing.Private.VisibilityManager(viewer.impl, loadedModels[i]);
    vm.hide(rootId);
    vm.setNodeOff(rootId, true);
  }
}

次に、私が欲しいものを表示します。

var vm = new Autodesk.Viewing.Private.VisibilityManager(viewer.impl, viewer.model);
vm.setNodeOff(rootId, false);
vm.show(rootId);

この非表示と表示は、複数のモデルでは非常に遅くなります。また、読み込まれたモデルから個々のオブジェクトを検索するのも非常に遅くなります。2 つのモデルをロード/表示する前に常にビューアー全体を初期化する唯一の方法はありますか? getState() と restoreState() も使用してみましたが、これはビューを保存するだけです。ビューアからモデルをクリアしません。

4

1 に答える 1