Загружать несколько моделей (агрегирование) в просмотрщик кузницы и загружать другие модели как скрытые по умолчанию, пока пользователь не выберет из браузера моделей - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь загрузить сразу несколько моделей (агрегацию) в просмотрщик кузниц (v.6.x) при загрузке, но я хочу показать только одну модель и другие модели как скрытые по умолчанию (может быть с призрачным представлением) ). Позже, когда пользователь нажимает на значок глаза в браузере модели, эта модель должна быть видимой / скрытой.

Я попытался вызвать viewer.hideModel (modelId) после загрузки модели. Но даже несмотря на то, что модель отображается в браузере модели, при нажатии на нее появляется сообщение об ошибке, что модель не загружена.

var showModel = false;
this.viewer.loadModel(url, {globalOffset: { x:0, y:0, z:0 }, modelNameOverride: modelName}, () => 
  {
    this.isModelLoaded = true;
    this.viewer.caller = this;
    this.addEventListenersToViewer();
    if(!showModel){
      this.viewer.hideModel(modelId); // This is to hide the model by default after loading.
    }
  },
errorMsg => {
  this.isModelLoaded = false;
  this.viewer.container.style.opacity = 0;
  this.modelLoadError(this.fetchTranslationByKey('getModelError'));
  }
);

Ожидаемое поведение - позволить пользователю выбирать из браузера моделей, какие модели отображать / скрывать в средстве просмотра среди всех моделей, загруженных изначально (связанные модели должны быть скрыты по умолчанию).

Текущий результат, который я получаю, это то, что связанные модели отображаются в браузере моделей, но когда я нажимаю на это, он говорит - Ошибка Модель не загружена

1 Ответ

0 голосов
/ 20 мая 2019

Несколько проблем здесь:

  • При использовании функции со стрелкой контекст, на который указывает this, отличается, поэтому будьте осторожны с этим

  • как вы получили modelId?Вместо использования произвольного счетчика лучше перебрать массив модели с помощью Viewer.impl.modelQueue()

  • Я не могу повторить ошибку не загруженной модели с браузером модели.Можете ли вы предоставить более подробную информацию или пример в реальном времени (jsfiddle / jsbin)?

...