Как установить viewer.setThemingcolor на несколько экземпляров, не вызывая обновления загрузчика для каждого экземпляра? - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу установить цвет для материала, однако setThemingColor (dbId, color, model) заставляет моего зрителя обновляться каждый раз, когда я добавляю экземпляр.Это проблема, так как у меня много экземпляров, которые нужно установить.

Существуют ли какие-либо функции, которые я могу использовать, чтобы остановить перезагрузку средства просмотра, добавить весь список идентификаторов, которые я хочу установить в цвет, а затем выполнить обновление средства просмотра?

То есть со списком 2000 идентификаторов, которые должны иметь этот цвет, я получаю одно обновление вместо 2000.

1 Ответ

0 голосов
/ 15 февраля 2019

Вместо этого вы можете использовать Model#setThemingColor( dbId, color ), а затем сказать зрителю перезагрузить сцену после настройки всех цветов.Вот фрагмент кода для вас:

let selSet = viewer.getAggregateSelection();
for(let i=0; i<selSet.length; i++) {
    const model = selSet[i].model;
    const selection = selSet[i].selection;

    selection.forEach(( dbId ) => {
        model.setThemingColor( dbId, color );
    });
}

viewer.impl.invalidate(true); 
...